属性を必須指定/指定禁止にする
属性を指定する際にとくに指定しない限り、属性は任意指定になります。つまり、XML文書内にその属性を指定しなくても問題はありません。必要であれば、その属性を必須指定または指定禁止にすることもできます。必須指定にするには use="required" を、指定禁止にするには use="prohibited" を使います。
1. 属性の定義中に use= と入力します。
2. "required" と入力します。
これは、属性を指定しないと文書がスキーマに対して有効とみなされないことを示します。
3. 必要であれば、value="must" と入力します。
mustの部分には、属性に指定できる唯一の値を入力します。
1. 属性の定義中に use="prohibited" と入力します。
これは、属性を指定しない場合にだけ文書がスキーマに対して有効とみなされることを示します。
XSDコード <xsd:element name="source">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="xsd:anyType" />
<xsd:attribute name="sectionid" type="xsd:string" use="required" / >
<xsd:attribute name="topicid" type="xsd:string" / >
</xsd:extension>
</xsd:complexContent >
</xsd:complexType>
</xsd:element>属性の規定値はoptionalなので、必須指定にしたい場合は required を指定しなければなりません。
XMLコード <source sectionid="010100" ></source>
XMLコード <source sectionid="010100" topicid="21"></source>
必須指定なのはsectionid要素だけなので、これらのsource要素はどちらもスキーマに対して有効です。とくにrequiredが指定されていない属性は任意指定です。
・属性定義に use="optical" を追加することもできますが、これは規定値なのでわざわざ入力する必要もありません。