Xml 如何验证XSD中的语言属性?
我有一个包含特定语言元素的XML文档,例如: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>
<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属性定义为可继承的,它就可以在树下更远处的元素上的条件类型赋值中使用。但是从细节上看,我不确定它对于这个用例是否足够灵活。