如何让2个不同的XSD元素具有相同的值(如果它们存在的话)
问题描述:
我有一个XSD文件,它有两个独立的复杂类型元素(如elemOne
和elemTwo
),可以存储一个公共元素(比如elementRefer
) xs:string
。但是我希望我的XML将公共元素elementRefer
存储在两个复杂类型元素中的任一个中,或者两者都指向相同的值elementRefer
。如何让2个不同的XSD元素具有相同的值(如果它们存在的话)
如何在XSD中进行这种限制?可能有人请帮助我在这个..
<root>
<sample1>
<name>johnson</name>
<city>california</city> <!-- optional occurence element-->
</sample1>
<sample2>
<name>andrew</name>
<age>19</age>
<city>california</city> <!-- optional occurence element-->
</sample2>
</root>
现在我想创建XSD约束使得标签city
发生
下要么sample1
或sample2
或两者只要它们都具有相同的价值。
答
这是不可能的。
使用xs:key
和xs:keyref
你可以定义元素city
作为一个案件的关键,并作为其他的重要依据 - 迫使他们具有相同的值,但是这只有当关键要素是不可选的。