Entwickler-Ecke
IO, XML und Registry - XML Schema zur Laufzeit einlesen / dynamisch Klassen erzeuge
Heimwerkerking - Mo 13.08.07 16:38
Titel: XML Schema zur Laufzeit einlesen / dynamisch Klassen erzeuge
Hallo,
ich habe ein ziemlich komplexes Problem zu lösen. Ich soll eine Art XSD/XML Editor programmieren.
Das XSD-Schema soll dynamisch zur Laufzeit eingelesen werden, daraus entsprechende Klassen erstellt werden. Dass soll auch die XML-File eingelesen werden und die Attribute in die Klassen eingetragenm werden.
Könnte das mit der XSD.exe funktionieren? Damit kann man ja .cs Dateien erzeugen, wo die Klasse drinn ist. Kann man diese .cs Datei dann auch zur Laufzeitkompilieren? Die xml File kann man dann mittels Serializer einlesen.
Oder bin ich da total auf dem Holzweg.
Die andere Möglichkeit wäre, dass ich das Schema direkt "von Hand" einlese und die Klasse erzeuge, was aber doch ziemlich aufwändig ist.
Könnt ihr mir ein paar Tipps geben, wie ich da am besten ran gehen sollte.
Vielen Dank schon mal im vorraus.
Heimwerkerking
Marco D. - Mo 13.08.07 16:42
Ich kann dir nicht helfen, aber ich habe eine Frage:
Was soll das bedeuten: "daraus entsprechende Klassen erstellt werden" ?
Kannst du mal ein kurzes Beispielschema mit entsprechender Klasse posten? Damit ich weiß, was du meinst.
Heimwerkerking - Mo 13.08.07 17:24
Hallo Marco,
man kann mittels dem Framwork-Tool xsd.exe aus Schema-Files klassen erzeugen,
und das für C#, VB, J#. Man muss dann die Sprache angeben
Hier der Befehl für das Beispiel im Anhang:
xsd bezirke.xsd /classes /language:cs
Damit hab ich aus der Bezirke.xsd die Bezirke.cs erzeugt.
Schade, dass du mir nicht helfen kannst, aber vielleicht konnte ich dir helfen.
Gruß
Heimwerkerking
Heimwerkerking - Di 14.08.07 16:00
Sodele,
meine Aufgabenstellung ist nun etwas klarer geworden.
Das eingelesene Schema soll doch nicht veränderbar sein. Das macht die Sache deutlich einfacher. Es soll nur immer eine andere XSD-Datei einlesbar sein.
Ich werde XML und XSD jeweils in einen XML-Baum einlesen.
Wenn Daten im XML editiert werden, wird im XSD-Baum nach den entsprechenden Beschränkungen (Typ, min, max, ...) gesucht und diese berücksichtigt.
So spare ich mir das komplette Einlesen in dynamische Variablen/Objekte.
Was meint ihr dazu? Habt ihr noch irgendwelche Vorschläge oder Tipps?
Gruß
Heimwerkerking
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!