我有一个带有特定语言元素的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
,因为根元素声明支持这两种语言。
有可能在XMLSchema中表达这样的约束吗?我可以用不同的方式表达root
元素语言属性,例如lang-en="1" lang-fr="1"
(如果有帮助的话)。
在XSD 1.0中,不能表示这样的约束。
在XSD 1.1中,您可以使用xsd:assert
,但它必须处于root
级别。请参阅如何访问XSD断言XPath中的父元素获取如何使用every..in..satisfies
XPath 2.0表达式进行断言的示例。
另请参阅XML设计注意事项中的一般i18n:XML文档模式