私はLectureという要素にClassroomという属性を挿入しました。ここでは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がXMLに何の影響も与えていないという理由で、根本的な原因は、「講義」のタイプを指定しなかったことです。 – kjhughes