我试图验证这个
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>