我正在尝试创建一个验证多个元素组合的XML Schema 1.0。
例如,是否可以在模式中创建一个可能的元素-值组合列表?就像,仅当
有效= 1,,B = 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>
标题>标题>