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


Alternatives Schema-Design ComplexTypes

Schrittweise werden lokal definierte Typen als globale Typen deklariert. Beginnend mit simplen Datentypen wie stringmax, wo der Basistyp xs:string über Patterns und minLength bzw. maxLength auf eine Stringlänge von mindestens 2 und maximal 20 Stellen begrenzt wird, wobei das erste Zeichen aus der Zeichenmenge grosser Zahlen A-Z und alle weiteren Zeichen aus der Zeichenmenge a-z stammen müssen.

Ergänzend werden ComplexTypes deklariert, die intern wiederum ComplexTypes mit Elementsequenzen, Attributen, Choices oder anderen Anordnungen bilden. Bei der Typdefinition der einzelnen Elemente bzw. Attribute werden die anderen Simple- oder ComplexTypes herangezogen. Im Idealfall wird nur das Rootelement global definiert; die restlichen Abhängigkeiten ergeben sich aus dem gegenseitigen Aufbau der Complex- und SimpleTypes.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:simpleType name="stringmax20">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:pattern value="[A-Z][a-z]{1,19}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="CTPerson">
    <xs:sequence>
      <xs:element name="Name" type="stringmax20"/>
      <xs:element name="Vorname" 
                  type="stringmax20" 
                  maxOccurs="unbounded"/>
      <xs:element name="Alter" 
                  type="xs:nonNegativeInteger" 
                  minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Persons">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Person" 
                  type="CTPerson" 
                  maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

qrpic/XSD3_2.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