0
   <?xml version="1.0"?>
   <datatype xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"             
         xs:noNamespaceSchemaLocation="sampletype.xsd">
    <table name="emp">
      <columns>
       <column>
          <name>emp_id</name>
          <data_type>int(200) </data_type>
       </column>
      </columns>
     </table>
    </datatype>

在这里,我为上面的 xml 生成 xsd,但它不正确。你能帮我为xml生成xsd吗?提前致谢。

4

1 回答 1

2

只需在此 XML 文件上运行xsd.exe实用程序(请参阅: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有什么不正确的呢?猜测您的 XML 将包含什么的xsd.exe尝试,但在某些情况下,它只需要做出一些假设,因此生成的 XSD 可能会或可能不会完全符合您的需要,并且如果您可以将它写得更好/更有效对 XML 的结构有更多的了解。例如,如果您知道总是只有一个<table>元素,您可以使事情变得容易得多。

于 2010-12-22T07:50:01.800 回答