不允许使用XSD架构根元素maxOccurs

时间:2014-03-06 20:33:39

标签: xml xsd

这是我从头开始创建的第一个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教程,我似乎无法找到问题。

0 个答案:

没有答案