xml traduce IDREFS в схеме xml
Мне нужно знать, есть ли способ создать в XML-схеме нечто подобное, но более надежное, чем IDREFS, без использования типа IDREFS. Мне нужен атрибут, который является списком ключевых ссылок.
- Я определяю ключ
- Я определяю ключевую ссылку
- Как действовать сейчас? Мне нужно определить атрибут, который является своего рода списком ключевых ссылок
Пример:
myAttribute = "keyref1 keyref2 keyref3 ..." and so on
Помните: с IDREFS я не могу создать список ссылочных элементов.
1 ответ
Нет, к сожалению, 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>