Parsing af XSD-fil
Hej.Jeg skal have parset en XSD fil så den overholder OIO-standarden. Det vil sige, at alle simple typer skal trækkes ud og lægges i separate filer. Derudover skal de komplekse typer også lægges i separate filer og samtidigt referere til de simple typer som også bliver oprettet.
Det er naturligvis i sig selv et problem at få lavet mekanikken der kan tage en vilkårlig XSD-fil og så parse den fra A-Z. Undervejs vil den jo støde på elementer som allerede er oprettet som reference types. Et andet problem er når en kompleks type indeholder andre komplekse typer...
Alt dette skal jeg nok hitte ud af (håber jeg) men jeg mangler imidlertid et godt værktøj - altså kodemæssigt - til at bladre min XSD fil igennem. Jeg bruger XPath og regner med at lave en løsning der bruger recursion til at parse i dybden (jeg kender ikke på forhånd dybden af XSD-filens elementer). For at bruge recursion skal jeg sende Child-elements med ser det ud til.
Jeg starter ud med:
---
XPathDocument xpDocument = new XPathDocument(@"C:\XmlParserSource.xsd");
XPathNavigator xpNavigator = xpDocument.CreateNavigator();
XmlNamespaceManager xNamespaceManager = new XmlNamespaceManager(xpNavigator.NameTable);
xNamespaceManager.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
XPathNodeIterator xpNodeIterator = xpNavigator.Select("/*/xs:element", xNamespaceManager);
---
Så burde jeg være klar til at bladre min Iterator igennem med MoveNext og xpNodeIterator.Current etc. Jeg mangler blot lidt hjælp til at komme i gang... En tutorial på området ville være super, men jeg har ikke kunnet finde en eneste der omhandlede emnet. Det specielle ved det jeg skal have udført er, at de forskellige typer skal extractes og puttes i separate filer. Og naturligvis problematikken omkring korrekt gennemløb af Children...