如果某个元素仅限发生一次,如果您使用全局xml:lang
属性,是否仍然可以使用多种语言?
一方面,我知道你是否能做到。另一方面,它只是用不同的语言提供相同的信息。因此,如果lang属性不同,能够多次使用该元素将会很有帮助。
否则你必须将其设置为unbounded
,这不是我想要的。那个案子有解决方案吗?
答案 0 :(得分:1)
允许元素重复的简单方法当且仅当它们具有不同的xml:lang值时才会重复:
在父元素的内容模型中(称之为P),允许孩子重复:
<xsd:complexType name="parent">
<xsd:sequence>
...
<xsl:element ref="tns:C"
minOccurs="0" maxOccurs="unbounded"/>
...
</
</
在P的元素声明中,对tns:C / @ xml:lang施加唯一性约束。
<xsd:element name="P" type="tns:parent">
<xsd:unique name="unique-lang-for-C">
<xsd:selector xpath="tns:C"/>
<xsd:field xpath="@xml:lang"/>
</
</
最终结果:您可以拥有多个C元素,只要它们具有xml:lang的不同值。
如果您的心脏被设置为使用maxOccurs =“1”引用C,那么允许多种语言的一种简单方法是使C成为语言特定信息的包装器:
<C>
<en>Hi, mom.</en>
<fr>Bonjour, maman!</fr>
<es>¡Hola, mamacita!</es>
</C>