xsd.exe
この XML ファイルに対してユーティリティ ( MSDN XML Schema Definition Toolを参照) を実行するだけで、答えが得られます。
<?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>
では、この XSD の何が正しくないのでしょうか?? xsd.exe
XML に何が含まれるかを推測しようとしますが、いくつかのケースでは、いくつかの仮定を行う必要があるだけです。XML の構造に関する追加のノウハウがあります。たとえば、要素が常に 1 つだけであることがわかっ<table>
ている場合は、作業がずっと簡単になります。