Skip to content
  • Alex Normand's avatar
    Add Support for XSD Extensions · 5fd092fb
    Alex Normand authored
    
    
    Adds support for two cases of xsd extensions:
    - Extending a built-in type
    - Extending a complex type
    
    The supported languages for the extension support are Java, Typescript, Rust and Go.
    C is not yet supported.
    
    Details on each implentation:
    
    * Go: The generated code uses struct embedding. the base64 example has been modified to include both supported extension cases and the tests were modified to show the new expected output.
    * Rust: Children types extending a parent type declare a field of that parent type with serde(flatten).
    * Java: Uses classic inheritance.
    * TypeScript: Similar as the Java version, it uses inheritance.
    
    To make development easier, parser tests were updated to assert on the content of the expected output rather than just the length. This made it easier to view the differences and I actually started with what the desired expected output should be before the implementation. In order to make the tests stable, the generation was updated to sort members and make that unstable part of the generation now be stable.
    
    Fixes issue #7.
    
    Signed-off-by: default avatarAlex Normand <alexandre.normand@gmail.com>
    5fd092fb
After you've reviewed these contribution guidelines, you'll be all set to contribute to this project.