我已将名为Classroom的属性插入名为Lecture的元素中。这里的XML模式:为什么我的XSD允许在我的XML中使用禁止的属性?
<xsd:attribute name="Classroom" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="7"/>
</xsd:restriction>
</xsd:simpleType>
.
.
.
<xsd:complexType name="labType">
<xsd:complexContent>
<xsd:restriction base="eventType">
<xsd:sequence>
<xsd:element name="Title" type="xsd:string"/>
<xsd:element name="Lecture" maxOccurs="10" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="Clasroom" use="prohibited"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
.
.
.
<xsd:element name="Lab" substitutionGroup="Event" type="labType"/>
我遇到的问题是,这种模式并不适用于该属性的限制。 我试图验证此XML代码:
<Lab>
<Title>Artificial Intelligence</Title>
<Lecture Classroom="BA">
<Day>Friday</Day>
<Time>17:00-18:00</Time>
</Lecture>
</Lab>
我的问题是,这个XML报告为有效,即使它使用属性“课堂”(它不应该是能够做到)。 我是新来的XML,所以请不要苛刻。 提前谢谢!
“禁止”(+ 1)的好结果。原来的标题提到了“限制”,但您可能是正确的,OP在想,为什么限制泛型意义上的属性,包括'use ='禁止',对XML没有影响。我认为,根本原因是未能为'讲座'指定一种类型。 – kjhughes