В валидации схемы 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" />
Другие вопросы по тегам