我一直在萎缩,但在this链接中找不到Microsoft提供的有关XML Schema的任何教程或资源。它看起来像:
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name='studentID' dt:type='string' required='yes'/>
<ElementType name='name' content='textOnly'/>
<ElementType name='GPA' content='textOnly' dt:type='float'/>
<ElementType name='student' content='mixed'>
<attribute type='studentID'/>
<element type='name'/>
<element type='GPA'/>
</ElementType>
<ElementType name='class' content='eltOnly'>
<element type='student'/>
</ElementType>
</Schema>
我知道这不是W3C推荐的XSD格式......我很难知道如何阅读并制作标准格式的XSD。我也希望从中生成C#类。
任何帮助将不胜感激。它确实混淆了我对XML模式的理解。
答案 0 :(得分:2)
这是一个XDR架构。如果要在安装了.NET框架或Visual Studio SDK的Windows上将该文件转换为W3C XML架构,可以使用xsd.exe
命令行工具,即xsd.exe schema.xdr
将创建相应的schema.xsd
文件。然后,您可以在xsd.exe
上应用schema.xsd
来创建C#或VB.NET中的类文件,以便与System.Xml.Serialization.XmlSerializer
一起使用。
当我在您的示例上运行VS 2012的xsd.exe
时,它会创建以下W3C XSD架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="class">
<xs:complexType>
<xs:sequence>
<xs:element name="student" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="GPA" type="xs:double" minOccurs="0" msdata:Ordinal="2" />
</xs:sequence>
<xs:attribute name="studentID" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>