私は私のxsdのこの部分を持っています:
<!-- FIELDGROUP - groups all available field types -->
<xsd:group name="FieldGroup">
<xsd:choice id="fieldset-fields">
<xsd:element name="TextField" type="textfield-type" maxOccurs="unbounded" />
<xsd:element name="NumberField" type="numberfield-type" maxOccurs="unbounded" />
<xsd:element name="Button" type="button-type" maxOccurs="unbounded" />
</xsd:choice>
</xsd:group>
これらの要素タイプ (textfield-type、numberfield-type、button-type) はすべて共通のタイプを拡張しますfield-type
:
<!-- Fieldset -> FIELD-TYPE: the base type of all possible field elements -->
<xsd:complexType id="field-type" name="field-type" abstract="true" mixed="false">
<xsd:sequence>
<xsd:element name="Label" type="label-type" minOccurs="0" maxOccurs="1" />
<xsd:group ref="FieldValidationGroup" />
</xsd:sequence>
<xsd:attribute id="field-type-id" name="id" type="id-type" use="required" />
<xsd:attribute id="field-type-css-class" name="css-class" use="optional" type="css-class-type" />
</xsd:complexType>
私は今、すべての要素間で一意の Key を直接作成したいと考えていますFieldGroup
- それらが実際にどの要素であるかに関係なく、FieldValidationGroup
.
field-type
または:フィールドタイプを拡張する他のすべての要素に派生するように、キーを定義するにはどうすればよいですか?
ご覧のとおり、私は現在そこに ID を持っていますが、ID はフィールド グループにない他のすべての要素間でも一意であり、間違った参照につながる可能性があります。
どうすればこれを達成できますか?