我已將名爲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