Ich habe ein Attribut namens Classroom in ein Element namens Lecture eingefügt. Hier ist das XML-Schema:Warum erlaubt meine XSD ein verbotenes Attribut in meinem 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"/>
Das Problem, das ich habe, ist, dass dieses Schema nicht die Beschränkung auf das Attribut gilt. Ich habe versucht, diesen XML-Code zu bestätigen:
<Lab>
<Title>Artificial Intelligence</Title>
<Lecture Classroom="BA">
<Day>Friday</Day>
<Time>17:00-18:00</Time>
</Lecture>
</Lab>
Mein Problem ist, dass diese XML als gültig gemeldet wird, obwohl es das Attribut „Klassenzimmer“ verwendet (was sie nicht tun sollen, können). Ich bin neu in XML, also bitte nicht hart sein. Vielen Dank im Voraus!
Guter Fang auf 'verboten' (+1). Der ursprüngliche Titel erwähnte "Beschränkung", aber Sie könnten Recht haben, dass OP sich wunderte, warum die Beschränkung auf das Attribut im generischen Sinne, einschließlich "verwenden =" verboten "", keine Auswirkungen auf das XML hatte. Die Hauptursache, behaupte ich, war das Versäumnis, einen Typ für "Vortrag" anzugeben. – kjhughes