加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – xsd:具有可选属性的唯一

发布时间:2020-12-16 00:01:35 所属栏目:百科 来源:网络整理
导读:我有这个Xml文件: objects object name="ID1" / object name="ID2" / object name="ID2" color="green" / object name="ID3" color="green" /objects 我想针对XSD架构验证这一点,以便名称和颜色之间的组合在文档中是唯一的. 问题是,如果我使用: xs:unique
我有这个Xml文件:
<objects>
  <object name="ID1" />
  <object name="ID2" />
  <object name="ID2" color="green" />
  <object name="ID3" color="green" />
<objects>

我想针对XSD架构验证这一点,以便名称和颜色之间的组合在文档中是唯一的.

问题是,如果我使用:

<xs:unique name="UniqueObjectNameColor">
  <xs:selector xpath="./object" />
  <xs:field xpath="@name" />
  <xs:field xpath="@color" />
</xs:unique>

…规则将忽略没有可选颜色属性的对象元素.以下验证正确,但不应该.

<object name="ID2" />
  <object name="ID2" />

您能告诉我如何指定强制使用唯一名称和颜色组合的规则,并且当元素对象中不存在颜色属性时,它会检查名称吗?

使用use和default,有或没有像这样的值:

<element name="objects">
        <complexType>
            <sequence>
                <element name="object" maxOccurs="unbounded">
                    <complexType>
                        <attribute name="name" type="string" />
                        <attribute name="color" type="string" use="optional" default="noColor" />
                    </complexType>
                </element>
            </sequence>
        </complexType>
        <unique name="UniqueObjectNameColor">
            <selector xpath="tns:object" />
            <field xpath="@name" />
            <field xpath="@color" />
        </unique>
    </element>

</schema>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读