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



我正在尝试创建一个验证多个元素组合的XML Schema 1.0。

例如,

是否可以在模式中创建一个可能的元素-值组合列表?就像,仅当

有效
  1. = 1,,B = 2

  2. = 2,,B = 4

传递示例

<Full>  
  <A>1</A>
  <B>2</B>      
</Full>  
<Full>
 <A>2</A>
 <B>4</B>
</Full>
<<p> 失败例子/strong>
<Full>  
  <A>2</A>
  <B>2</B>      
</Full>  
<Full>
 <A>1</A>
 <B>4</B>
</Full>  

我还不能使用XML Schema 1.1。有没有什么好办法把这些逻辑放在一个模式里?

对不起,我把问题重新写了一遍

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

minOccurs="0" - 0次或大于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>

最新更新