您刚刚错过了序列的minOuccur和maxoccure属性,对于验证XML的XSD模式——在您的序列中,您需要提到minOccur和maxoccure属性——例如在您的示例中
演示文稿和名称可以按顺序出现-因此添加
minOccurs="1" maxOccurs="unbounded">
关于姓名顺序和演示顺序,请查看更改并告诉我是否有用
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="jon:presentations"
xmlns:prs="jon:presentations">
<xs:element name = "presentations">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name = "presentation">
<xs:complexType>
<xs:sequence>
<xs:element name = "topic">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="genre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Art"/>
<xs:enumeration value="Music"/>
<xs:enumeration value="Science"/>
<xs:enumeration value="Technology"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="presenters">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="name">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="first" type="xs:string"
minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="middle" type="xs:string"
minOccurs="0" maxOccurs="1"/>
<xs:element name="last" type="xs:string"/>
</xs:sequence>
<xs:attribute name="title" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Mr."/>
<xs:enumeration value="Mrs."/>
<xs:enumeration value="Ms."/>
<xs:enumeration value="Miss"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="id">
<xs:simpleType>
<xs:restriction base="xs:ID">
<xs:pattern value="[X-Y][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="date" type="xs:date">
</xs:attribute>
<xs:attribute name="length" type="xs:duration">
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>