Was sind die Optionen zum Generieren von .NET 4.0 C# Klassen (Entities) aus einer XSD-Datei unter Verwendung von Visual Studio 2010?
Tolle Antwort. Hat meiner Meinung nach viel besser funktioniert.
Was sind die Optionen zum Generieren von .NET 4.0 C# Klassen (Entities) aus einer XSD-Datei unter Verwendung von Visual Studio 2010?
Ich verwende XSD
in einem Batch-Skript, um direkt aus XML
eine .xsd
-Datei und Klassen zu generieren:
set XmlFilename=Dein_Xml_Hier
set WorkingFolder=Dein_Xml_Pfad_Hier
set XmlExtension=.xml
set XsdExtension=.xsd
set XSD="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1\Tools\xsd.exe"
set XmlFilePath=%WorkingFolder%%XmlFilename%%XmlExtension%
set XsdFilePath=%WorkingFolder%%XmlFilename%%XsdExtension%
%XSD% %XmlFilePath% /out:%WorkingFolder%
%XSD% %XsdFilePath% /c /out:%WorkingFolder%
Wenn Sie die Klasse mit automatischen Eigenschaften generieren möchten, konvertieren Sie das XSD in XML mit diesem, konvertieren Sie dann das XML in JSON mit diesem und kopieren Sie das Ergebnis in die Zwischenablage. Dann in VS, innerhalb der Datei, in der Ihre Klasse erstellt wird, gehen Sie zu Bearbeiten>Einfügen Spezial>Einfügen JSON als Klassen.
Ich habe xsd.exe
im Windows-Befehlsprompt verwendet.
Da meine XML-Datei jedoch auf mehrere Online-XML-Dateien verwies (in meinem Fall http://www.w3.org/1999/xlink.xsd
, die auf http://www.w3.org/2001/xml.xsd
verweist), musste ich auch diese Schemata herunterladen, sie in dasselbe Verzeichnis wie meine XSD-Datei legen und dann diese Dateien im Befehl angeben:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\xsd.exe" /classes /language:CS your.xsd xlink.xsd xml.xsd
Das wären wohl nicht zufällig die Amazon-Marktplatz XSDs, für die du gerade Klassen erstellst, oder? :-) Ich musste einmal damit arbeiten, nie wieder werde ich sie anfassen oder mit C# an Amazons XSD-Dateien arbeiten, sie sind so chaotisch, dass es unwirklich ist.
@shawty Ich habe mit GIS-Standards gearbeitet - WFS und WMS-, die durch große, kreisförmig miteinander verknüpfte XSD's definiert sind. Es war ein großes Durcheinander mit xsd.exe
, weil es keine zirkulären Verweise mag, aber am Ende war ich erfolgreich.
Die Antwort von Marc Gravells war für mich richtig, aber meine xsd hatte die Erweiterung .xml. Als ich das xsd Programm benutzte, gab es folgende Fehlermeldung:
- Die Tabelle (Amt) kann nicht die untergeordnete Tabelle in verschachtelten Beziehungen sein.
Basierend auf diesem KB325695 habe ich die Erweiterung von .xml auf .xsd umbenannt und es hat funktioniert.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
@drzaus Ich hatte das früher funktioniert, aber jetzt, wenn ich eins hinzufüge, wird es als DataSet-Klasse generiert anstelle der Klassen, die ich erwarten würde. Ich füge einfach ein vorhandenes Element hinzu und wähle die XSD-Datei aus.