Xsd 约束固定属性,使其只能出现在一个元素上

Xsd 约束固定属性,使其只能出现在一个元素上,xsd,Xsd,我使用XSD在XML模式领域迈出了第一步,我试图弄清楚如何添加约束,使属性(用固定值定义)只能出现在无限元素集中的一个元素上 这里有一个例子 <Object> <Element>Value1</Element> <Element>Value2</Element> <Element Default="true">Value3</Element> <Element>Valu

我使用XSD在XML模式领域迈出了第一步,我试图弄清楚如何添加约束,使属性(用固定值定义)只能出现在无限元素集中的一个元素上

这里有一个例子

<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>