2010-12-22 50 views
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吗?提前致谢。如何为以下xml编写xsd?

回答

2

只要运行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>元素,你可以让事情变得更容易。