-
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:
Alex Normand <alexandre.normand@gmail.com>
5fd092fb
After you've reviewed these contribution guidelines, you'll be all set to
contribute to this project.