В валидации схемы XSD 1.0 любая опция, доступная для проверки элемента, имеет какие-либо атрибуты?
В файле XSD для элемента несколько атрибутов задаются как необязательные. Необходимо проверить, если какой-либо из перечисленных атрибутов доступен во входном XML-файле.
1 ответ
Решение
В XSD 1.0 вы можете использовать xs:key, чтобы гарантировать, что элемент имеет хотя бы один атрибут. Пример:
<xs:element name="elem">
<xs:complexType>
<xs:attribute name="a" type="xs:int" use="optional" />
<xs:attribute name="b" type="xs:int" use="optional" />
<xs:attribute name="c" type="xs:int" use="optional" />
<xs:attribute name="d" type="xs:int" use="optional" />
</xs:complexType>
<xs:key name="attributePresent">
<xs:selector xpath="." />
<xs:field xpath="@*" />
</xs:key>
</xs:element>
Например, если вы хотите гарантировать, что хотя бы один из атрибутов b или c присутствует в элементе, который вы можете использовать
<xs:field xpath="@b | @c" />