Xsd 约束固定属性,使其只能出现在一个元素上
我使用XSD在XML模式领域迈出了第一步,我试图弄清楚如何添加约束,使属性(用固定值定义)只能出现在无限元素集中的一个元素上 这里有一个例子Xsd 约束固定属性,使其只能出现在一个元素上,xsd,Xsd,我使用XSD在XML模式领域迈出了第一步,我试图弄清楚如何添加约束,使属性(用固定值定义)只能出现在无限元素集中的一个元素上 这里有一个例子 <Object> <Element>Value1</Element> <Element>Value2</Element> <Element Default="true">Value3</Element> <Element>Valu
<Object>
<Element>Value1</Element>
<Element>Value2</Element>
<Element Default="true">Value3</Element>
<Element>Value4</Element>
<Element>Value5</Element>
</Object>
我尝试过处理xs:unique
、xs:selector
和xs:field
,但没有得到有意义的结果,不确定这是否是正确的方法
谢谢 我尽力为您设计了一个xsd。实现该要求的可能方法是定义多个元素
元素
,但这在XSD下是不允许的,这会导致一个常见错误“试图使XSD不明确”
所以你的要求肯定是不可能实现的
我想建议定义不同的元素名称
示例::使用属性定义
defement
,不使用属性定义无界Element
s。这对你很有用。老问题,但看看这里:
有一个接近的解决方案(但不完整):将属性定义为一个值布尔值(仅为true)、可选、无默认值和唯一
(+)
-请检查是否只有一个默认值=“true”
-请检查是否只定义了一个默认属性
(-)
-不要检查是否至少定义了一个默认属性这个问题为我赢得了风滚草徽章,耶:)非常感谢你的努力:)我已经接受了答案,尽管它提供了一个替代解决方案。
<xs:element name="Object">
<xs:complexType>
<xs:element name="Element" maxOccurs="unbounded">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Default" fixed="true"/>
</xs:extension>
</xs:simpleContent>
</xs:element>
</xs:complexType>
</xs:element>