这是我从头开始创建的第一个XSD / XML。我希望有人可以帮我弄清楚为什么我的XSD没有验证。
这是XSD架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="FieldName">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType name="DataType">
<xs:restriction base="xs:string">
<xs:enumeration value="Currency" />
<xs:enumeration value="Date" />
<xs:enumeration value="Fuzzy Date" />
<xs:enumeration value="Numeric" />
<xs:enumeration value="Text" />
<xs:enumeration value="Yes/No" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FieldPos">
<xs:restriction base="xs:integer" />
</xs:simpleType>
<xs:simpleType name="StartPos">
<xs:restriction base="xs:integer" />
</xs:simpleType>
<xs:simpleType name="Length">
<xs:restriction base="xs:integer" />
</xs:simpleType>
<xs:simpleType name="MinLen">
<xs:restriction base="xs:integer" />
</xs:simpleType>
<xs:simpleType name="CategoryName">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:complexType name="FIELD">
<xs:sequence>
<xs:element name="FieldName" type="FieldName" />
<xs:element name="DataType" type="DataType" />
<xs:element name="FieldPos" type="FieldPos" />
<xs:element name="StartPos" type="StartPos" />
<xs:element name="Length" type="Length" />
<xs:element name="MinLen" type="MinLen" />
</xs:sequence>
</xs:complexType>
<xs:element name="ALLOBJECTS" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="CATEGORY" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="CategoryName" type="CategoryName" maxOccurs="1" />
<xs:element name="FIELD" type="FIELD" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
以下是我希望XML文件看起来如何的示例:
<?xml version="1.0" encoding="utf-8"?>
<ALLOBJECTS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LayoutTest.xsd">
<CATEGORY>
<CategoryName>Standard</CategoryName>
<FIELD>
<FieldName>TestTitle</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>1</StartPos>
<Length>20</Length>
<MinLen>20</MinLen>
</FIELD>
<FIELD>
<FieldName>TestFirstName</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>21</StartPos>
<Length>40</Length>
<MinLen>40</MinLen>
</FIELD>
<FIELD>
<FieldName>TestMiddleName</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>41</StartPos>
<Length>40</Length>
<MinLen>40</MinLen>
</FIELD>
</CATEGORY>
<CATEGORY>
<CategoryName>Name</CategoryName>
<FIELD>
<FieldName>TestTitle</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>1</StartPos>
<Length>20</Length>
<MinLen>20</MinLen>
</FIELD>
<FIELD>
<FieldName>TestFirstName</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>21</StartPos>
<Length>40</Length>
<MinLen>40</MinLen>
</FIELD>
<FIELD>
<FieldName>TestMiddleName</FieldName>
<DataType>Text</DataType>
<FieldPos>1</FieldPos>
<StartPos>41</StartPos>
<Length>40</Length>
<MinLen>40</MinLen>
</FIELD>
</CATEGORY>
</ALLOBJECTS>
我已尝试对XSD和XML文件进行至少20次不同的编辑,以使其正常工作。我花了几个小时阅读xml教程,我似乎无法找到问题。