Navigatie

Archief

Categorieën

Blogroll

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Disclaimer
De inhoud van deze weblog betreft uitsluitend mijn persoonlijke mening, niet die van mijn werkgever. Mijn werkgever is niet verantwoordelijk voor de inhoud en sluit hierbij iedere aansprakelijkheid uit.

Sign In

Zoeken

 Saturday, May 13, 2006
Friday, May 12, 2006 11:18:49 PM (W. Europe Daylight Time, UTC+02:00) ( )

Afgelopen week moest ik een class genereren op basis van een redelijk complex XML Schema. Hiervoor wilde ik niet XSD.exe gebruiken. XSD.exe kent een aantal beperkingen. Het stoort me bijvoorbeeld dat ik in mijn implementatie gebruik moet maken van arrays, terwijl ik gebruik wil maken van collecties. De bekende vervanger XSDObjectGen hernoemt enumerations iets wat ik ook niet wil.

Uiteindelijk heb ik gekozen voor CodeXS. De output van CodeXS is schoon. Hij neem de output van xsd.exe als de basis. De uiteindelijke code wordt gegenereerd d.m.v. CodeDom. Wanneer een schema gebruik maakt van included schema’s kan je de locatie opgeven zodat deze ook worden meegenomen. Verder kan je de tool zelf uitbreiden d.m.v. het implementeren van de ICodeModifier  interface en het opgeven van je assembly locatie. Dit vereist wel overigens wel kennis van CodeDom. Een serializer wordt standaard mee gegenereerd.

Een tweetal issues dat ik tegenkwam:

  • Let wel op dat je de parameters goed specificeert want daarin is CodeXS wel wat foutgevoelig en de foutmeldingen worden standaard niet getoond.
  • Zorg ervoor dat de bin folder van ConsoleApp onderstaande bestanden bevat:
    - cxsc.Net.exe
    - CodeXS.Application.CommandLine.Net.dll
    - CodeXS.Schema.Net.dll
    - CodeXS.Schema.StandardCodeModifier.Net.dll
    - Refly.Net.dll
CodeXS is ook Online te gebruiken. De bestanden worden dan in een ZIP file geplaatst, welke te downloaden is via de site.

CodeXS is via deze url als Visual Studio project te downloaden en via deze url online te gebruiken.