У меня есть документ XML с языком конкретных элементов, например:Как проверить атрибуты языка в XSD?
<root lang="en fr">
<section>
<title lang="en">English Title</title>
<title lang="fr">French Title</title>
<sequence>2</sequence>
<field>
<type>date</type>
<label lang="en">English field label</label>
<label lang="fr">French field label</label>
</field>
</section>
<section>
<title lang="en">Another English Title</title>
<title lang="fr">Another French Title</title>
<sequence>1</sequence>
</section>
</root>
В верхней части, корневой элемент предназначен для объявления документ определяет как английский и французский информации.
В документе есть определенные элементы, которые должны быть представлены на английском и французском языках, например title
и label
, так как корневой элемент объявляет о поддержке обоих.
Можно ли выразить такое ограничение в XML-схеме? Я мог бы выразить атрибут языка элемента root
по-разному, например lang-en="1" lang-fr="1"
, если это поможет.
Вы можете (только) быть в состоянии использовать XSD 1.1 наследуемые атрибуты здесь. Определяя атрибут root/@ lang как наследуемый, он становится доступным для использования в условном назначении типа для элементов, расположенных далее по дереву. Но, глядя на детали, я не уверен, что он достаточно гибкий для этого случая использования. –