Home
Über mich
Veröffentlichungen

XML XML-Schema XPath XSL-T XSL-FO XQuery XProc SVG

XML / XML-Datenstrukturen / XML: Stark strukturierte Dokumente, hierarchischer Aufbau

XML: Stark strukturierte Dokumente, hierarchischer Aufbau

XML: Stark strukturierte Dokumente, hierarchischer Aufbau

➪ Stark strukturierte XML-Dokumente haben im Regelfall einen klaren hierarchischen Aufbau oder präzise definierte gegenseitige Abhängigkeiten.

Die systematische Auswertung solcher Dokumente mithilfe von XSLT, XQuery oder anderer Technologien bereitet im Regelfall keine Schwierigkeiten; hier empfiehlt sich vorzugsweise der Einsatz von xsl:for-each.

Diese komfortable hierarchische Struktur lässt sich gut mit XPath auswerten. Sie verdeutlicht das Zusammenspiel von XPath mit XSLT und deren jeweiligen Funktionen sehr gut. In diesem Beispiel lassen sich XPath-Statements wie


/Orte/Ort[name='Neustadt']/Mensch/Kauf[bez='Hemd']/Gesamt

auf einfache Weise nachvollziehen. Sie erbringt eine Elementliste sämtlicher Gesamt-Felder von Menschen, die in Neustadt wohnen und sich ein oder mehrere Hemden gekauft haben. Das XML-Dokument entspricht dem folgenden XML-Schema.

pic/XML_Datenstruktur_stark.png


<xs:schema 
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="Orte">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="Ort" 
                minOccurs="0" 
                maxOccurs="unbounded">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="id" type="xs:int"/>
       <xs:element name="name" type="xs:string"/>
       <xs:element name="Mensch" 
                   minOccurs="0" 
                   maxOccurs="unbounded">
        <xs:complexType>
         <xs:sequence>
          <xs:element name="id" type="xs:int"/>
          <xs:element name="name" type="xs:string"/>
          <xs:element name="vorname" type="xs:string"/>
          <xs:element name="Gehalt" type="xs:string"/>
          <xs:element name="idOrt" type="xs:int"/>
          <xs:element name="Kauf" 
                      minOccurs="0" 
                      maxOccurs="unbounded">
           <xs:complexType>
            <xs:sequence>
             <xs:element name="idMensch" type="xs:int"/>
             <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:sequence>
           </xs:complexType>
          </xs:element>
         </xs:sequence>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
  <xs:unique name="pk_Ort">
   <xs:selector xpath=".//Ort"/>
   <xs:field xpath="id"/>
  </xs:unique>
  <xs:unique name="pk_Mensch" >
   <xs:selector xpath=".//Mensch"/>
   <xs:field xpath="id"/>
  </xs:unique>
  <xs:keyref name="relationOrtMensch" refer="pk_Ort">
   <xs:selector xpath=".//Mensch"/>
   <xs:field xpath="idOrt"/>
  </xs:keyref>
  <xs:keyref name="relationMenschKauf" refer="pk_Mensch">
   <xs:selector xpath=".//Kauf"/>
   <xs:field xpath="idMensch"/>
  </xs:keyref>
 </xs:element>
</xs:schema>

Die hier deklarierten Elemente <id/>, <idOrt/> und <idMensch/> wären nicht zwingend notwendig, da sich die gegenseitigen Abhängigkeiten bereits durch den klaren hierarchischen Aufbau der jeweiligen Elemente vermuten lassen. In diesem Fall ziehen auch die Constraints (Beziehungen von Primär- und Fremdschlüsseln, hier: <xs:unique name="pk_Ort"> , <xs:unique name="pk_Mensch">, <xs:keyref name="relationOrtMensch" refer="pk_Ort"> und <xs:keyref name="relationMenschKauf" refer="pk_Mensch">) de facto eine mögliche Überbestimmung nach sich, die zu Konflikten führen kann.

Dennoch kann es sein, dass die Vermutung "eindeutige gegenseitige Abhängigkeiten durch hierarchischen Aufbau" nicht zutrifft und z.B. eine Abhängigkeit zu einem anderen <id>-Element hergestellt werden soll. Etwa so:


<Kauf>
   <idMensch>45</idMensch>
   ...
</Kauf>

Da es im XML-Dokument ein <Mensch><id>45</id> ... </Mensch> nicht gibt, kann der <Kauf> nicht eindeutig zugeordnet werden. Hier gewährleisten die Constraints zusätzliche Datenqualität.

Das XML-Beispiel-Dokument

Der einfachste Ansatz ist das folgende XML-Dokument: Ein Root-Element Orte hat mehrere Child-Elemente Ort (jeweils mit id und name); jeder Ort hat mehrere Child-Elemente Mensch (mit id, name, vorname, Gehalt und idOrt), und jeder Mensch kann darüber hinaus noch mehrere Child-Elemente Kauf haben (mit den Child-Elementen idMensch, anzahl, bez, preis und Gesamt, die jeweils nur einmal auftreten können).


<Orte>
  <Ort>
    <id>1</id>
    <name>Neustadt</name>
    <Mensch>
      <id>1</id>
      <name>Holzflos</name>
      <vorname>Hugo</vorname>
      <Gehalt>234.56</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>3</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>38.97</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>9</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>116.91</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>8</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>103.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>9</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>233.91</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>9</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>233.91</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>8</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>207.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>8</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>207.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>8</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>1209.84</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>1</idMensch>
        <anzahl>8</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>1209.84</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>4</id>
      <name>Nixlos</name>
      <vorname>Nicole</vorname>
      <Gehalt>1234.56</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>8</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>207.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>7</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>181.92999999999998</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>6</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>155.94</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>5</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>129.95</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>4</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>103.96</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>4</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>103.96</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>4</idMensch>
        <anzahl>3</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>77.97</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>9</id>
      <name>Sprachlos</name>
      <vorname>Stefan</vorname>
      <Gehalt>5430</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>11</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>142.89000000000002</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>22</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>285.78000000000003</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>33</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>428.67</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>33</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>857.67</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>44</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>1143.56</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>9</idMensch>
        <anzahl>55</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>1429.4499999999998</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>2</id>
      <name>Sagblos</name>
      <vorname>Stefan</vorname>
      <Gehalt>321.45</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>90.93</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>181.92999999999998</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>181.92999999999998</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>181.92999999999998</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>1058.61</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>2</idMensch>
        <anzahl>7</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>1058.61</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>3</id>
      <name>Sorglos</name>
      <vorname>Siggi</vorname>
      <Gehalt>987.58</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>2</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>25.98</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>8</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>103.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>4</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>51.96</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>9</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>233.91</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>3</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>77.97</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>6</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>907.37999999999988</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>5</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>756.15</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>2</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>302.46</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>3</idMensch>
        <anzahl>1</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>151.23</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>7</id>
      <name>Herzlos</name>
      <vorname>Heini</vorname>
      <Gehalt>654.21</Gehalt>
      <idOrt>1</idOrt>
      <Kauf>
        <idMensch>7</idMensch>
        <anzahl>7</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>90.93</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>7</idMensch>
        <anzahl>9</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>116.91</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>7</idMensch>
        <anzahl>8</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>207.92</Gesamt>
      </Kauf>
    </Mensch>
  </Ort>
  <Ort>
    <id>2</id>
    <name>Darmstadt</name>
    <Mensch>
      <id>8</id>
      <name>Rhodos</name>
      <vorname>Rudi</vorname>
      <Gehalt>333.33</Gehalt>
      <idOrt>2</idOrt>
      <Kauf>
        <idMensch>8</idMensch>
        <anzahl>3</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>38.97</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>8</idMensch>
        <anzahl>5</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>129.95</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>8</idMensch>
        <anzahl>22</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>571.78</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>15</id>
      <name>Kolos</name>
      <vorname>Karl</vorname>
      <Gehalt>456</Gehalt>
      <idOrt>2</idOrt>
      <Kauf>
        <idMensch>15</idMensch>
        <anzahl>2</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>25.98</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>15</idMensch>
        <anzahl>6</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>155.94</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>16</id>
      <name>Sinnlos</name>
      <vorname>Simone</vorname>
      <Gehalt>876.54</Gehalt>
      <idOrt>2</idOrt>
      <Kauf>
        <idMensch>16</idMensch>
        <anzahl>6</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>155.94</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>17</id>
      <name>Zeitlos</name>
      <vorname>Horst</vorname>
      <Gehalt>546.77</Gehalt>
      <idOrt>2</idOrt>
      <Kauf>
        <idMensch>17</idMensch>
        <anzahl>3</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>38.97</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>18</id>
      <name>Wunschlos</name>
      <vorname>Werner</vorname>
      <Gehalt>777.77</Gehalt>
      <idOrt>2</idOrt>
      <Kauf>
        <idMensch>18</idMensch>
        <anzahl>4</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>103.96</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>19</id>
      <name>Lustlos</name>
      <vorname>Ludwig</vorname>
      <Gehalt>357</Gehalt>
      <idOrt>2</idOrt>
    </Mensch>
  </Ort>
  <Ort>
    <id>3</id>
    <name>Kapstadt</name>
    <Mensch>
      <id>5</id>
      <name>Wasistlos</name>
      <vorname>Willi</vorname>
      <Gehalt>6789</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>5</idMensch>
        <anzahl>4</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>51.96</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>5</idMensch>
        <anzahl>44</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>571.56000000000006</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>5</idMensch>
        <anzahl>3</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>77.97</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>5</idMensch>
        <anzahl>5</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>129.95</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>10</id>
      <name>Ruhelos</name>
      <vorname>Rita</vorname>
      <Gehalt>234</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>10</idMensch>
        <anzahl>4</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>51.96</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>10</idMensch>
        <anzahl>1</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>151.23</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>11</id>
      <name>Schlaflos</name>
      <vorname>Susi</vorname>
      <Gehalt>321</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>11</idMensch>
        <anzahl>2</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>51.98</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>11</idMensch>
        <anzahl>5</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>756.15</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>12</id>
      <name>Rielos</name>
      <vorname>Lotte</vorname>
      <Gehalt>456</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>12</idMensch>
        <anzahl>3</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>38.97</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>12</idMensch>
        <anzahl>6</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>155.94</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>12</idMensch>
        <anzahl>9</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>1361.07</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>6</id>
      <name>Bodenlos</name>
      <vorname>Betty</vorname>
      <Gehalt>3450</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>6</idMensch>
        <anzahl>6</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>77.94</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>6</idMensch>
        <anzahl>5</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>64.95</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>6</idMensch>
        <anzahl>7</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>181.92999999999998</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>13</id>
      <name>Muehelos</name>
      <vorname>Martin</vorname>
      <Gehalt>222</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>13</idMensch>
        <anzahl>7</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>90.93</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>13</idMensch>
        <anzahl>4</anzahl>
        <bez>Hemd</bez>
        <preis>12.99</preis>
        <Gesamt>51.96</Gesamt>
      </Kauf>
    </Mensch>
    <Mensch>
      <id>14</id>
      <name>Leinenlos</name>
      <vorname>Liane</vorname>
      <Gehalt>135</Gehalt>
      <idOrt>3</idOrt>
      <Kauf>
        <idMensch>14</idMensch>
        <anzahl>8</anzahl>
        <bez>Hose</bez>
        <preis>25.99</preis>
        <Gesamt>207.92</Gesamt>
      </Kauf>
      <Kauf>
        <idMensch>14</idMensch>
        <anzahl>5</anzahl>
        <bez>Schuhe</bez>
        <preis>151.23</preis>
        <Gesamt>756.15</Gesamt>
      </Kauf>
    </Mensch>
  </Ort>
</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_Strukturalternativen2.html