xsd错误出现在以下位置:

xsd错误出现在以下位置:,xsd,Xsd,这是xml <?xml version="1.0" encoding="utf-8"?> <Modules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XSDQu3.xsd"> <Module code="CSE1246"> <Name shortName="ADSA"&g

这是xml

     <?xml version="1.0" encoding="utf-8"?>
    <Modules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XSDQu3.xsd">
        <Module code="CSE1246">
            <Name shortName="ADSA">Applied Data Structures and Algorithms</Name>
            <Level>1</Level>
            <ResourcePerson>
                <Name>Anwar</Name>
                <Surname>Chutoo</Surname>
            </ResourcePerson>
        </Module>
    <Module code="CSE2041">
    <Name shortName="Web 2">Web Technologies II</Name>
        <Level>2</Level>
        <ResourcePerson>
            <FullName>Shehzad Jaunbuccus</FullName>
        </ResourcePerson>
    </Module>

</Modules>

应用数据结构和算法
1.
安瓦尔
丘托
网络技术2
2.
谢扎德·扬布卡斯
我的名字有个错误。资源人员可以包含全名或姓名和姓氏。请帮忙。我做得对吗

这是xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:complexType name="NameNSurnameType">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Surname" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ResourcePersonType">
        <xs:sequence>
            <xs:choice>
                <xs:element name="NameNSurnameType" type="NameNSurnameType"/>
                <xs:element name="FullName" type="xs:string"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <xs:attribute name="code">
        <xs:simpleType>
            <xs:restriction base="xs:ID">
                <xs:pattern value="CSE(\d{4})"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>

    <xs:complexType name="nameType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="shortName" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:element name="Modules">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Module" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name" type="nameType"/>
                        <xs:element name="Level" type="xs:positiveInteger"/>
                        <xs:element name="ResourcePerson" type="ResourcePersonType"/>

                    </xs:sequence>
                    <xs:attribute ref="code" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    </xs:element>
  </xs:schema>

我能看出你的困惑;选择“选项”几乎可以是任何粒子;合成器(如
xs:sequence
或另一个
xs:choice
)将与描述匹配。您至少需要更改以下定义

<xs:complexType name="ResourcePersonType">
    <xs:sequence>
        <xs:choice>
            <xs:sequence>
                <xs:element name="Name" type="xs:string"/>
                <xs:element name="Surname" type="xs:string"/>
            </xs:sequence>
            <xs:element name="FullName" type="xs:string"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

如果您希望引用这个名称,就像您希望使用全局复杂类型那样,那么您可以创建一个组并引用它。以下是与上述场景一致的修改后的XSD:

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:group name="NameNSurnameType">
        <xs:sequence>
            <xs:element name="Name" type="xs:string"/>
            <xs:element name="Surname" type="xs:string"/>
        </xs:sequence>
    </xs:group>

    <xs:complexType name="ResourcePersonType">
        <xs:sequence>
            <xs:choice>
                <xs:group ref="NameNSurnameType"/>
                <xs:element name="FullName" type="xs:string"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>

    <xs:attribute name="code">
        <xs:simpleType>
            <xs:restriction base="xs:ID">
                <xs:pattern value="CSE(\d{4})"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>

    <xs:complexType name="nameType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="shortName" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:element name="Modules">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Module" minOccurs="1" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Name" type="nameType"/>
                            <xs:element name="Level" type="xs:positiveInteger"/>
                            <xs:element name="ResourcePerson" type="ResourcePersonType"/>

                        </xs:sequence>
                        <xs:attribute ref="code" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>