我有一个包含特定语言元素的XML文档,例如:
<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 Schema中表达这样的约束?我可以用不同的方式表达root
元素语言属性,例如lang-en="1" lang-fr="1"
如果有帮助的话。
答案 0 :(得分:0)
在XSD 1.0中,您无法表示此类约束。
在XSD 1.1中,您可以使用xsd:assert
,但它必须处于root
级别。有关如何使用every..in..satisfies
XPath 2.0表达式进行断言的示例,请参阅How to access parent element in XSD assertion XPath?。
另请参阅XML设计注意事项中的常规i18n:xml:lang in XML document schemas