Führen Sie einfach das xsd.exe
Dienstprogramm (siehe: MSDN XML Schema Definition Tool) über diese XML-Datei, und Sie Ihre Antwort erhalten:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="datatype" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="datatype" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element name="columns" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="column" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="data_type" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Also, was ist nicht korrekt über dieses XSD ?? Die xsd.exe
versucht zu erraten, was Ihr XML enthält, aber in einigen Fällen muss es nur einige Annahmen treffen, so dass diese resultierende XSD möglicherweise genau das ist, was Sie brauchen, und es könnte definitiv schöner/effizienter geschrieben werden, wenn Sie haben zusätzliches Know-how über die Struktur des XML. Z.B. Wenn Sie wissen, dass es immer nur ein einziges <table>
Element geben wird, könnten Sie die Dinge viel einfacher machen.