363 Stimmen

Wie generiere ich .NET 4.0 Klassen aus xsd?

Was sind die Optionen zum Generieren von .NET 4.0 C# Klassen (Entities) aus einer XSD-Datei unter Verwendung von Visual Studio 2010?

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.

5voto

hdoghmen Punkte 2735

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%

5voto

Melchia Punkte 19378

Der Befehl, der in meinem Fall funktionierte, war:

xsd /c deine.xsd

3voto

jcsilva87 Punkte 555

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.

0 Stimmen

Tolle Antwort. Hat meiner Meinung nach viel besser funktioniert.

2voto

Aske B. Punkte 6070

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

0 Stimmen

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.

0 Stimmen

@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.

0 Stimmen

Ja, das wäre wohl mein zweiter Gedanke gewesen. Ich habe die auch gesehen, aber die sind bei weitem nicht so schlimm wie die Sachen von Amazon... da bekomme ich Albträume, wenn ich daran denke erschauert

1voto

Igoris Azanovas Punkte 1600

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.com

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.

Powered by:

X