基于另一个标签的条件检查

时间:2013-11-12 07:15:39

标签: xml xsd xsd-validation

我有一个xml,它有一个结构:

<?xml version="1.0" encoding="utf-8" ?>
<XYZInquiry>
    <Source>ABC</Source>
    <Info>19991234</Info> 
<RawData>
        <EmailAddress>abc@email.com</EmailAddress>
</RawData>
</XYZInquiry>

和相应的XSD验证为:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="XYZInquiry" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="XYZInquiry">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="Source" minOccurs="1" maxOccurs="1" type="xsd:string" />
                <xsd:element name="Info" minOccurs="1" maxOccurs="1" type="xsd:string" />
<xsd:element name="RawData" minOccurs="0" maxOccurs="1">
<xsd:complexType>
                        <xsd:sequence>
                        <xsd:element name="EmailAddress" minOccurs="0" maxOccurs="1"/>
</xsd:element>
                    </xsd:sequence>
                </xsd:complexType>

我需要阅读Info Tag并根据前4位数字,我需要在RawData标签上放置条件。即如果“信息”值以1234开头,则允许使用RawData标签,否则为无效。 请建议。

1 个答案:

答案 0 :(得分:0)

您要求的是co-occurrence constraints。这在XSD 1.1(未广泛实施)和Scehmatron中是可能的。 在XSD 1.0

中无法实现
相关问题