J'ai le schéma suivant, que j'utilise pour m'assurer que PhoneNumber
et PhoneNumberType
(Maison, Travail, etc.) ne dépasse pas 10 caractères. Cependant, je souhaite améliorer ce schéma afin que PhoneNumberType
ne soit pas requis si un PhoneNumber
n'est pas fourni, mais est requis si le PhoneNumber
est fourni. Existe-t-il un moyen de le faire dans XML Schema 1.0?Schéma XML pour limiter un champ basé sur un autre
Je suis conscient que cela pourrait être accompli dans XML Schema 1.1 en utilisant <xs:assert/>
, mais malheureusement je suis coincé avec 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>
Je ne peux pas changer la structure du document XML , car il provient d'une source externe. –