Supongamos que tenemos el siguiente esquema:Restringir referencias de identificación a un grupo determinado elemento
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="a_elements">
<xs:complexType>
<xs:sequence>
<xs:element name="a_element" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="b_elements">
<xs:complexType>
<xs:sequence>
<xs:element name="b_element" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="c_elements">
<xs:complexType>
<xs:sequence>
<xs:element name="c_element" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
y aquí está el archivo XML de ejemplo:
<root>
<a_elements>
<a_element id="id1"/>
<a_element id="id2"/>
</a_elements>
<b_elements>
<b_element id="id3"/>
<b_element id="id4"/>
</b_elements>
<c_elements>
<c_element id="id5" ref="id1"/>
<c_element id="id6" ref="id2"/>
</c_elements>
</root>
Para que c_elements pueden hacer referencia a a_elements y b_elements por id. ¿Es posible restringir de algún modo el atributo ref para que solo acepte referencias a elementos de un grupo, digamos a_elementos?
Esto parece ser lo que estaba buscando. ¡Gracias! – Max