Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XML Schema 1.1

XML Schema 1.0 erlaubt im Wesentlichen eine Definition der Element- und Attribut-Struktur sowie der Datentypen, selbstverständlich auch in Kombination mit Namespaces.

XML Schema 1.1 erlaubt mit den Konzepten von Assertions (<assert> für komplexe Datentypen, <assertion> für simple Datentypen), bedingte Typisierungen, schemaweiten Attributen, <openContent> bzw. <defaultOpenContent> weitere Spezifizierungen. Ein einfaches Beispiel: "ungeraderTyp" überprüft, ob der Integer-Wert eine ungerade Zahl ist.

<xs:simpleType name="ungeraderTyp">
  <xs:restriction base="xs:integer">
  <xs:minInclusive value="0" />
  <xs:maxInclusive value="100" />
  <xs:assertion test="$value mod 2 = 1" />
  </xs:restriction>
</xs:simpleType>

Die Assertions kommen beispielsweise bei den XML-Schema-1.1-Deklarationen für XSLT 3.0 häufig zum Einsatz; hier nehme ich lediglich das Element xsl:for-each als Beispiel:

<xs:element name="for-each" substitutionGroup="xsl:instruction">
  <xs:complexType mixed="true">
    <xs:complexContent>
      <xs:extension base="xsl:versioned-element-type">
        <xs:sequence>
          <xs:element ref="xsl:sort" 
                      minOccurs="0" maxOccurs="unbounded"/>
          <xs:group ref="xsl:sequence-constructor-group" 
                      minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="select" type="xsl:expression"/>
        <xs:attribute name="_select" type="xs:string"/>
        <xs:assert test="every $e in subsequence(xsl:sort, 2) 
                         satisfies empty($e/(@stable | @_stable))"/>
        <xs:assert test="exists(@select | @_select)"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

qrpic/XSD3_8.jpg

wg / 30. September 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de