XML * XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC * ANT * DIVERSES



XML / XML-Datenstrukturen / XML: Stark strukturierte Dokumente, sequenzielle Abfolge der Elemente

XML: Stark strukturierte Dokumente, sequenzielle Abfolge der Elemente

XML: Stark strukturierte Dokumente, sequenzielle Abfolge der Elemente

➪ Im folgenden Beispiel lassen sich Abhängigkeiten allein aus der sequenziellen Abfolge der Elemente herleiten.

pic/XML_Datenstruktur_semistrukturiert.png


<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified">
    <xs:element name="Orte">
        <xs:complexType>
            <xs:group 
                ref="grpOrte" 
                minOccurs="0" 
                maxOccurs="unbounded"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Ort">
        <xs:complexType>
            <xs:group ref="grpOrt"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Mensch">
        <xs:complexType>
            <xs:group ref="grpMensch"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Kauf">
        <xs:complexType>
            <xs:group ref="grpKauf"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="name"  type="xs:string"/>
    <xs:element name="vorname" type="xs:string"/>
    <xs:element name="beruf" type="xs:string"/>
    <xs:element name="hobby" type="xs:string"/>
    <xs:element name="Gehalt" type="xs:string"/>
    <xs:element name="anzahl" type="xs:int"/>
    <xs:element name="bez" type="xs:string"/>
    <xs:element name="preis" type="xs:decimal"/>
    <xs:element name="Gesamt" type="xs:decimal"/>
    <xs:group name="grpOrte">
        <xs:choice>
            <xs:element ref="Ort"/>
            <xs:element ref="Mensch"/>
            <xs:element ref="Kauf"/>
        </xs:choice>
    </xs:group>
    <xs:group name="grpOrt">
        <xs:sequence>
            <xs:element ref="name"/>            
        </xs:sequence>
    </xs:group>
    <xs:group name="grpMensch">
        <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="vorname"/>            
            <xs:element ref="Gehalt"/>
            <xs:group 
                ref="grpInfo" 
                minOccurs="0" 
                maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>
    <xs:group name="grpInfo">
        <xs:choice>
            <xs:element ref="beruf"/>
            <xs:element ref="hobby"/>
        </xs:choice>
    </xs:group>
    <xs:group name="grpKauf">
        <xs:sequence>
            <xs:element ref="anzahl"/>
            <xs:element ref="bez"/>
            <xs:element ref="preis"/>
            <xs:element ref="Gesamt"/>            
        </xs:sequence>
    </xs:group>    
</xs:schema>

Das XML-Beispieldokument

Das folgende XML-Dokument ist valide gegenüber dem vorstehenden XML-Schema, das intensiv mit arbeitet. Eindeutige gegenseitige Abhängigkeiten zwischen den Elementen, die sich durch gemeinsame Parentnodes oder durch Primär-/Sekundärschlüsselbeziehungen ergeben, fehlen völlig. Statt dessen ergeben sich im vorliegenden Fall die Zusammenhänge durch die sequenzielle Abfolge. Hinzu kommt, dass in <xs:group name="grpMensch"> auch die <xs:group name="grpInfo"> optional und mehrfach eingebunden wird, was die Auswertung über bzw. rekursive Implementierungslogik empfiehlt.


<?xml version="1.0" standalone="yes"?>
<Orte>
  <Ort>
    <name>Neustadt</name>
  </Ort>
  <Mensch>
    <name>Holzflos</name>
    <vorname>Hugo</vorname>
    <Gehalt>234.56</Gehalt>
    <hobby>Chillen</hobby>
    <beruf>Informatiker</beruf>
    <hobby>Pizza</hobby>
  </Mensch>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>38.97</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>116.91</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>103.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>233.91</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>233.91</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>207.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>207.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>1209.84</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>1209.84</Gesamt>
  </Kauf>
  <Mensch>
    <name>Nixlos</name>
    <vorname>Nicole</vorname>
    <Gehalt>1234.56</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>207.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>181.92999999999998</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>155.94</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>129.95</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>103.96</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>103.96</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>77.97</Gesamt>
  </Kauf>
  <Mensch>
    <name>Sprachlos</name>
    <vorname>Stefan</vorname>
    <Gehalt>5430</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>11</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>142.89000000000002</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>22</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>285.78000000000003</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>33</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>428.67</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>33</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>857.67</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>44</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>1143.56</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>55</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>1429.4499999999998</Gesamt>
  </Kauf>
  <Mensch>
    <name>Sagblos</name>
    <vorname>Stefan</vorname>
    <Gehalt>321.45</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>90.93</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>181.92999999999998</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>181.92999999999998</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>181.92999999999998</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>1058.61</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>1058.61</Gesamt>
  </Kauf>
  <Mensch>
    <name>Sorglos</name>
    <vorname>Siggi</vorname>
    <Gehalt>987.58</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>2</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>25.98</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>103.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>51.96</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>233.91</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>77.97</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>907.37999999999988</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>756.15</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>2</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>302.46</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>1</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>151.23</Gesamt>
  </Kauf>
  <Mensch>
    <name>Herzlos</name>
    <vorname>Heini</vorname>
    <Gehalt>654.21</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>90.93</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>116.91</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>207.92</Gesamt>
  </Kauf>
  <Ort>
    <name>Darmstadt</name>
  </Ort>
  <Mensch>
    <name>Rhodos</name>
    <vorname>Rudi</vorname>
    <Gehalt>333.33</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>38.97</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>129.95</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>22</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>571.78</Gesamt>
  </Kauf>
  <Mensch>
    <name>Kolos</name>
    <vorname>Karl</vorname>
    <Gehalt>456</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>2</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>25.98</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>155.94</Gesamt>
  </Kauf>
  <Mensch>
    <name>Sinnlos</name>
    <vorname>Simone</vorname>
    <Gehalt>876.54</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>155.94</Gesamt>
  </Kauf>
  <Mensch>
    <name>Zeitlos</name>
    <vorname>Horst</vorname>
    <Gehalt>546.77</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>38.97</Gesamt>
  </Kauf>
  <Mensch>
    <name>Wunschlos</name>
    <vorname>Werner</vorname>
    <Gehalt>777.77</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>103.96</Gesamt>
  </Kauf>
  <Mensch>
    <name>Lustlos</name>
    <vorname>Ludwig</vorname>
    <Gehalt>357</Gehalt>
  </Mensch>
  <Ort>
    <name>Kapstadt</name>
  </Ort>
  <Mensch>
    <name>Wasistlos</name>
    <vorname>Willi</vorname>
    <Gehalt>6789</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>51.96</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>44</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>571.56000000000006</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>77.97</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>129.95</Gesamt>
  </Kauf>
  <Mensch>
    <name>Ruhelos</name>
    <vorname>Rita</vorname>
    <Gehalt>234</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>51.96</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>1</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>151.23</Gesamt>
  </Kauf>
  <Mensch>
    <name>Schlaflos</name>
    <vorname>Susi</vorname>
    <Gehalt>321</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>2</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>51.98</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>756.15</Gesamt>
  </Kauf>
  <Mensch>
    <name>Rielos</name>
    <vorname>Lotte</vorname>
    <Gehalt>456</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>3</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>38.97</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>155.94</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>9</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>1361.07</Gesamt>
  </Kauf>
  <Mensch>
    <name>Bodenlos</name>
    <vorname>Betty</vorname>
    <Gehalt>3450</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>6</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>77.94</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>64.95</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>181.92999999999998</Gesamt>
  </Kauf>
  <Mensch>
    <name>Muehelos</name>
    <vorname>Martin</vorname>
    <Gehalt>222</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>7</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>90.93</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>4</anzahl>
    <bez>Hemd</bez>
    <preis>12.99</preis>
    <Gesamt>51.96</Gesamt>
  </Kauf>
  <Mensch>
    <name>Leinenlos</name>
    <vorname>Liane</vorname>
    <Gehalt>135</Gehalt>
  </Mensch>
  <Kauf>
    <anzahl>8</anzahl>
    <bez>Hose</bez>
    <preis>25.99</preis>
    <Gesamt>207.92</Gesamt>
  </Kauf>
  <Kauf>
    <anzahl>5</anzahl>
    <bez>Schuhe</bez>
    <preis>151.23</preis>
    <Gesamt>756.15</Gesamt>
  </Kauf>
</Orte>

wg / 3. April 2020



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



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

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

www.wilfried-grupe.de/XML_Strukturalternativen5.html