也许我的词汇在某种程度上是错误的:
我想创建一个xsd,它定义了许多'自定义类型之一'对于元素。
我的xml应该具有相同的根源#some; someInfo'然后是一种元素
CustomTypeA或CustomTypeB。
XML应如下所示:
<xml>
<someInfo>whatever is important</someInfo>
<info type="CustomTypeA">
<CustomTypeA-1>F1</CustomTypeA-1>
<CustomTypeA-2>F2</CustomTypeA-2>
</info>
</xml>
或在其他情况下,其中info应该是其他CustomType:
<xml>
<someInfo>whatever is important in an other case</someInfo>
<info type="CustomTypeB">
<CustomTypeB-1 attr1="someAttribute">F1</CustomTypeB-1>
</info>
</xml>
答案 0 :(得分:1)
如果您希望元素的类型依赖于其中一个属性的值,您有两个选择:
(a)使用&#34; xsi:type&#34;作为属性名称,其值是架构中类型的名称
(b)使用XSD 1.1和条件类型赋值的新功能。如果您能够使用XSD 1.1作为最佳解决方案,但并非所有人都支持它。
答案 1 :(得分:0)
昨天我做了一些条件类型赋值here。有关条件类型分配的更多信息,请参阅at the last example here。