微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XSD:如何根据某些标签的值验证XML文件?

我试图验证这个 XML文件……
如果

>< tag1>是“Y”然后< tag2>必须出现
> if< tag1>是“N”然后< tag2>一定不要出现..

<parent>
  <a>
    <tag1>Y</tag1>
    <tag2>sometext</tag2>
  </a>
  <a>
    <tag1>N</tag1>
  </a>
</parent>

我试过< choice>标签,但似乎没有工作.. :(我得出结论,这个功能在XSD中不可用..

你能指导我至少实现这个的替代方案吗?顺便说一句,我使用的是Visual Studio 2005 ..

众所周知,这是XML模式的一个回顾.但我很感激你尝试< choice>的方法.标签.如果您的条件是这样的话,它可能会成功:

>如果< tag1>是必需的,然后首先出现< tag2>不是必需的(并显示为第二个标签)
>如果< tag2>是必需的,然后首先出现< tag1>不是必需的(并显示为第二)

代码是:

<xs:element name="parent">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="a" maxOccurs="unbounded">
        <xs:complexType>
          <xs:choice>
            <xs:sequence>
              <xs:element name="tag1" type="xs:boolean" />
              <xs:element name="tag2" type="xs:string" minOccurs="0" />
            </xs:sequence>
            <xs:sequence>
              <xs:element name="tag2" type="xs:string" />
              <xs:element name="tag1" type="xs:boolean" minOccurs="0" />
            </xs:sequence>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。