如何为以下xml编写xsd?
问题描述:
<?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吗?提前致谢。如何为以下xml编写xsd?
答
只要运行xsd.exe
实用程序(见:MSDN XML Schema Definition Tool)在这个XML文件,你会得到你的答案:
<?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将包含什么,但在某些情况下,它只需做出一些假设,所得到的XSD可能或可能不是你所需要的,并且它肯定可以写得更好/更有效,如果您还有其他关于XML结构的知识。例如。如果你知道,总是会有一个单一的<table>
元素,你可以让事情变得更容易。