我需要知道是否有一种方法可以在XML模式中创建类似但更强大的IDREFS而不使用IDREFS类型。我需要一个属性,它是keyref的列表。
示例:
myAttribute = "keyref1 keyref2 keyref3 ..." and so on
请记住:使用IDREFS,我无法创建引用项列表。
答案 0 :(得分:0)
不,遗憾的是,keyrefs只能选择节点,而不能选择节点值内的标记。
要实现此类约束,您可以使用XSD 1.1断言:
<xs:element name="employees">
<xs:complexType>
<xs:sequence>
<xs:element name="employee" maxOccurs="unbounded"/>
</xs:sequence>
<xs:assert test="every $id in employee/direct-reports/tokenize(., ' ')
satisfies exists(employee[id=$id])"/>
</xs:complexType>
</xs:element>