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>

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念