У меня есть эта часть моего 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>
Все эти типы элементов (тип текстового поля, тип числового поля, тип кнопки) расширяют общий тип 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>
Теперь я хочу создать ключ, который является уникальным среди всех элементов непосредственно внутри FieldGroup
- независимо от того, каким элементом они на самом деле являются, и иметь возможность ссылаться на них из некоторых элементов в FieldValidationGroup
. * 1010.*
Или: как я могу определить ключ на field-type
, чтобы он выводился для всех других элементов, расширяющих тип поля?
Как вы можете видеть, у меня в настоящее время есть идентификатор, ноидентификатор также уникален среди всех других элементов, не входящих в группу полей, и это может привести к неправильным ссылкам.
Как этого добиться?