Frage

Ich habe folgendes Schema, das ich verwende, um sicherzustellen, dass eine Person, die PhoneNumber und PhoneNumberType (Heim, Arbeit, etc.) nicht länger als 10 Zeichen. Allerdings mag ich dieses Schema zu verbessern, so dass PhoneNumberType nicht, wenn ein PhoneNumber erforderlich ist, ist nicht vorgesehen, sondern ist erforderlich, wenn der PhoneNumber vorgesehen ist. Gibt es eine Möglichkeit, dies in XML Schema 1.0 zu tun?

Ich bin mir bewusst, das 1.1 mit <xs:assert/> in XML-Schema erreicht werden könnte, aber leider bin ich mit XML Schema 1.0 stecken.

<?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>

Andere Tipps

Es scheint mir, dass dies eine „hat“ Beziehung.

Wenn Sie eine Telefonnummer Element haben, dann sollte es eine Eigenschaft hat, die vom Typ PhoneNumberType ist. Anstatt mit der Validierung und Einschränkungen Herumspielen, würde ich vorschlagen, dass Sie Phone in ein komplexes Element drehen und PhoneNumberType eine erforderliche Eigenschaft daraus machen.

Auch zu spät sein, aber man kann sich in der Gruppe setzen wie diese

<xs:group name="group">
<xs:sequence>
    <xs:element ref="PhoneNumber"/>
    <xs:element ref="PhoneNymberType" />
</xs:sequence>

Und machen diese Gruppe erforderlich ist oder nicht

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top