只有在模式中的另一个元素具有特定值的情况下,是否可以在XSD架构中拥有一个元素?

时间:2017-01-11 11:11:51

标签: xml xsd schema restrictions

我的XML Schema看起来像 -

<element name="PurchaseOrderInformation">
    <complexType>
        <sequence>
            <element ref="pidx:PurchaseOrderNumber"/>
            <element ref="pidx:PurchaseOrderIssuedDate" minOccurs="0"/>
            <element ref="pidx:PurchaseOrderTypeCode" minOccurs="0"/>
            <element ref="pidx:ReleaseNumber" minOccurs="0"/>
            <element ref="pidx:SalesOrderNumber" minOccurs="0"/>
            <element ref="pidx:RevisionNumber" minOccurs="0"/>
        </sequence>
    </complexType>
</element>
<element name="PurchaseOrderIssuedDate" type="date"/>
<element name="PurchaseOrderLineItemNumber" type="string"/>

每当客户名称为&#34; ABC&#34; ,我需要在PurchaseOrderInformation复杂类型下有PurchaseOrderLineItemNumber元素。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

XSD 1.0

在XSD 1.0中无法基于其他元素约束元素的值。

XSD 1.1

XSD 1.1具有允许每个文档的每个值变化的约束的断言。如果XSD 1.1不是一个选项(因为它不适用于libxml,.NET等),那么这些检查必须在XSD之外执行。