按值具有不同子元素的xml架构限制列表
我喜欢创建一个元素,该元素根据其中一个元素的值具有不同的子元素。我想知道我是否以及如何才能做到这一点(最好的解决方案)。 因此,如果按值具有不同子元素的xml架构限制列表,xml,xsd,Xml,Xsd,我喜欢创建一个元素,该元素根据其中一个元素的值具有不同的子元素。我想知道我是否以及如何才能做到这一点(最好的解决方案)。 因此,如果类型是工件,则必须有重量元素。如果类型为千克或克或。。。它不需要它 <?xml version="1.0" encoding="UTF-8"?> <Amounts> <Amount> <Type>piece</Type> <
类型
是工件
,则必须有重量
元素。如果类型
为千克
或克
或。。。它不需要它
<?xml version="1.0" encoding="UTF-8"?>
<Amounts>
<Amount>
<Type>piece</Type>
<Value>6</Value>
<Weight>
<Value>1.5</Value>
<Type>liter</Type>
</Weight>
</Amount>
<Amount>
<Type>kilogram</Type>
<Value>0.610</Value>
</Amount>
</Amounts>
“:Type和”“:Type(或替换后的元素
组)违反“唯一粒子属性”。在验证期间
在这种模式下,这两种模式会产生歧义
粒子。
-cos元素一致:类型“#AnonType_Amount”出错。模型中出现多个名为“Value”的元素,其类型不同
小组
如果你做的是“类型”“一个属性而不是一个元素,那么您可以在XSD 1.1中使用条件类型赋值来完成它。否则,很抱歉,你就不走运了。Hmm好的,你能举一个在XSD 1.1中如何做到这一点的简短示例吗?我稍后会尝试一下,然后检查你的答案。Priscilla Walmsley这里有许多条件类型赋值的示例:(如果你想正确理解它们,请买她的书!)
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.test.org/amount"
xmlns:amount="http://www.test.org/amount" elementFormDefault='qualified'>
<element name="Amount">
<complexType>
<choice>
<group ref="amount:kilogram" />
<group ref="amount:piece" />
</choice>
</complexType>
</element>
<group name="kilogram">
<sequence>
<element name="Type" fixed="kilogram" />
<element name="Value" type="float" />
</sequence>
</group>
<group name="piece">
<sequence>
<element name="Type" fixed="piece" />
<element name="Value" type="int" />
<element name="Weight">
<complexType>
<sequence>
<element name="Type" type="amount:amountType" />
<element name="Value" type="float" />
</sequence>
</complexType>
</element>
</sequence>
</group>
<simpleType name="amountType">
<restriction base="string">
<enumeration value="kg" />
<enumeration value="g" />
<enumeration value="mg" />
<enumeration value="lb" />
</restriction>
</simpleType>
</schema>