繁体   English   中英

验证XML模式中的多个元素和值组合

[英]Validate multiple element and value combinations in XML Schema

我试图创建一个XML Schema 1.0来验证多个元素组合。

例如,

是否可以创建可能的元素列表-模式中的值组合? 喜欢,仅在以下情况下有效

  1. A = 1 && B = 2

  2. A = 2 && B = 4

通过示例

<Full>  
  <A>1</A>
  <B>2</B>      
</Full>  

<Full>
 <A>2</A>
 <B>4</B>
</Full>

失败示例

<Full>  
  <A>2</A>
  <B>2</B>      
</Full>  

<Full>
 <A>1</A>
 <B>4</B>
</Full>  

我还不能使用XML Schema 1.1。 有什么好的方法可以将这些逻辑放在一个模式中?

抱歉,我只是再次重写我的问题。

在此根据您的要求设置以下内容:-

minOccurs =“ 0” -出现次数为零或更多

minOccurs =“ 1” -至少出现一次或多次

maxOccurs =“ unbounded” :如果要使用无限次,请设置此项

maxOccurs =“ 1” :如果只想设置一次

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="FULL">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="A" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="B" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="C" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

更新:

假设您正在传递所有三个单独的XML(不是一个完整的XML)

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="FULL">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="A" type="xs:int" minOccurs="1" maxOccurs="1"/>
                <xs:element name="B" type="xs:int" minOccurs="0" maxOccurs="1"/>
                <xs:element name="C" type="xs:int" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

另一个更新:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="FULL">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="A" minOccurs="1" maxOccurs="1">
                    <xs:simpleType>
                        <xs:restriction base="xs:int">
                            <xs:pattern value="[1-2]"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="B" minOccurs="0">
                    <xs:simpleType>
                        <xs:restriction base="xs:int">
                            <xs:pattern value="2"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="C" type="xs:int" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM