XML Schema基于另一个来限制一个字段

我有以下架构,我用它来确保一个人的PhoneNumber和PhoneNumberType(Home,Work等)不超过10个字符.但是,我想改进此架构,以便在未提供PhoneNumber时不需要PhoneNumberType,但如果提供了PhoneNumber则需要PhoneNumberType.有没有办法在
XML Schema 1.0中执行此操作?

我知道这可以使用< xs:assert />在XML Schema 1.1中完成,但不幸的是我坚持使用XML Schema 1.0.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PhoneNumber">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="PhoneNumberType">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xsd:schema>

最佳答案 抱歉,XML Schema无法做到这一点.

一些类似的问题:

> can the length of two xml lists be defined as being required to be equal?
> Restrict Element Values Based on Attribute
> How to use attribute value as a discriminator for XML polymorphic type selection?
> How to Validate in XSD the xml node value against it’s neighbor xml node value

点赞