Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何验证XSD中的语言属性?_Xml_Xsd_Xsd Validation_Xml Validation - Fatal编程技术网

Xml 如何验证XSD中的语言属性?

Xml 如何验证XSD中的语言属性?,xml,xsd,xsd-validation,xml-validation,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>

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

英文标题
法文标题
2.
日期
英文字段标签
法国现场标签
另一个英文标题
另一个法文头衔
1.
在顶部,根元素用于声明文档定义了英语和法语信息

文档中的某些元素需要以英文和法文提供,例如
title
label
,因为根元素声明支持这两种语言


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

在XSD 1.0中,不能表示这样的约束

在XSD1.1中,您可以使用
XSD:assert
,但它必须位于
根目录下。有关如何使用
every..in..expressions
XPath 2.0表达式进行断言的示例,请参见


另请参见XML设计注意事项中的一般i18n:

在XSD 1.0中,不能表示这样的约束

在XSD1.1中,您可以使用
XSD:assert
,但它必须位于
根目录下。有关如何使用
every..in..expressions
XPath 2.0表达式进行断言的示例,请参见

另请参见XML设计中的一般i18n注意事项:

您可能(只是)能够在此处使用XSD 1.1可继承属性。通过将root/@lang属性定义为可继承的,它就可以在树下更远处的元素上的条件类型赋值中使用。但是从细节上看,我不确定它对于这个用例是否足够灵活。通过将root/@lang属性定义为可继承的,它就可以在树下更远处的元素上的条件类型赋值中使用。但是从细节上看,我不确定它对于这个用例是否足够灵活。