如何在XSD中验证语言属性?

时间:2016-07-26 11:26:34

标签: xml xsd xsd-validation xml-validation

我有一个包含特定语言元素的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>

在顶部,根元素旨在声明文档定义英语和法语信息。

文档中的某些元素需要以英语和法语提供,例如titlelabel,因为根元素声明支持两者。

是否有可能在XML Schema中表达这样的约束?我可以用不同的方式表达root元素语言属性,例如lang-en="1" lang-fr="1"如果有帮助的话。

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