Mit einem Attribut und einer Einschränkung für ein Element im XML-Schema

Ich versuche zu schreiben, ein xml-schema validieren wird dieses Stück xml:

<date isodate="2007-03-14">14 march 2007</date>

Dem Attribut isodatum sollte es Typ xs:date und der Inhalt sollte max 50 Zeichen lang sein.

Frage ich mich, ob es möglich ist, zu schreiben, die xml-schema-definition in einem block, so etwas vielleicht:

<xs:element name="date" minOccurs="0" maxOccurs="1">  
  <xs:complexType>  
    <xs:simpleContent>  
      <xs:restriction base="xs:string">  
        <xs:minLength value="0"/>  
        <xs:maxLength value="50"/>  
      </xs:restriction>  
      <xs:attribute name="isodate" type="xs:date" use="required"/>  
    </xs:simpleContent>  
  </xs:complexType>  
</xs:element>

Den code oben nicht funktioniert, und ich kann nicht wirklich herausfinden, warum. Einzige Lösung die ich gefunden habe, ist die Pause, die für die Einschränkung Teil in einen separaten Typ, und link, wie diese:

<xs:simpleType name="reviewDate">  
    <xs:restriction base="xs:string">  
        <xs:minLength value="0"/>  
        <xs:maxLength value="50"/>  
    </xs:restriction>  
</xs:simpleType>

<xs:element name="date" minOccurs="0" maxOccurs="1">  
    <xs:complexType>  
        <xs:simpleContent>  
            <xs:extension base="reviewDate">  
                <xs:attribute name="isodate" type="xs:date" use="required"/>  
            </xs:extension>  
        </xs:simpleContent>  
    </xs:complexType>  
</xs:element>

Die Frage, die ich habe, ist, wie Sie schreiben, die definition in einem block, so dass das schema ist ein wenig besser lesbar, und nicht auf Typen, die in anderen teilen des Schemas.

InformationsquelleAutor der Frage Alexander Kjäll | 2009-08-26

Schreibe einen Kommentar