<!-- Listing zum Artikel "Schnelle Tabelle",
                 iX 7/2004, S. 136
-->

!!! Listing 1: XML Schema einer Buchbestellung

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
    <xsd:documentation xml:lang="DE">
        Buchbestellung Schema für Example.com.
        Copyright 2001 Example.com. Alle Rechte vorbehalten.
    </xsd:documentation>
</xsd:annotation>

<xsd:element name="Bestellung" type="BestellungTyp"/>

<xsd:element name="Kommentar" type="xsd:string"/>

<xsd:complexType name="BestellungTyp">
    <xsd:sequence>
        <xsd:element name="Lieferadresse" type="DeAdresse"/>
        <xsd:element name="Rechnungsadresse" type="DeAdresse"/>
        <xsd:element ref="Kommentar" minOccurs="0"/>
        <xsd:element name="Waren" type="WarenTyp"/>
    </xsd:sequence>
    <xsd:attribute name="bestelldatum" type="xsd:date"/>
</xsd:complexType>

<xsd:complexType name="DeAdresse">
    <xsd:sequence>
    <xsd:element name="Name" type="xsd:string"/>
    <xsd:element name="Straße"  type="xsd:string"/>
    <xsd:element name="Ort" type="xsd:string"/>
    <xsd:element name="PLZ" type="xsd:decimal"/>
    </xsd:sequence>
    <xsd:attribute name="land" type="xsd:NMTOKEN" fixed="DE"/>
</xsd:complexType>

<xsd:complexType name="WarenTyp">
    <xsd:sequence>
    <xsd:element name="Buch" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
            <xsd:sequence>
            <xsd:element name="Titel" type="xsd:string"/>
            <xsd:element name="Anzahl">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:positiveInteger">
                        <xsd:maxExclusive value="100"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="PreisEUR" type="xsd:decimal"/>
            <xsd:element ref="Kommentar" minOccurs="0"/>
            <xsd:element name="Lieferdatum" type="xsd:date" minOccurs="0"/>
            </xsd:sequence>
            <xsd:attribute name="ISBN" type="ISBNTyp" use="required"/>  
        </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="ISBNTyp">
    <xsd:restriction base="xsd:string">
    <xsd:pattern value="\d{9}[0-9X]"/>
    <!-- 9 Ziffern gefolgt von einer Prüfziffer im Bereich zwischen 0 und 10
          (10 wird als X dargestellt) -->
    </xsd:restriction>
</xsd:simpleType>

</xsd:schema>

!!! Listing 2: Aus Excel exportiertes XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Bestellung bestelldatum="2004-05-22">
	<Lieferadresse land="DE">
		<Name>Redaktion iX</Name>
		<StraÃŸe> Helstorfer StraÃŸe 7</StraÃŸe>
		<Ort>Hannover</Ort>
		<PLZ>30625</PLZ>
	</Lieferadresse>
	<Rechnungsadresse land="DE">
		<Name>wie oben</Name>
		<StraÃŸe>wie oben</StraÃŸe>
		<Ort>wie oben</Ort>
		<PLZ>wie oben</PLZ>
	</Rechnungsadresse>
	<Waren>
		<Buch ISBN="3821835699">
			<Titel>Atlas der Erlebniswelten</Titel>
			<Anzahl>2</Anzahl>
			<PreisEUR>19.95</PreisEUR>
			<Lieferdatum>2004-05-24</Lieferdatum>
		</Buch>
		<Buch ISBN="379200030X">
			<Titel>Wind, Sand und Sterne</Titel>
			<Anzahl>1</Anzahl>
			<PreisEUR>8.9</PreisEUR>
			<Lieferdatum>2004-05-24</Lieferdatum>
		</Buch>
	</Waren>
</Bestellung>

!!! Listing 3: Einfache Bilanzdaten in XML

<?xml version="1.0" encoding="iso-8859-1"?>
<bilanz jahr="2003">
	<monat monat="Januar">
		<umsatz>120000</umsatz>
		<gewinn>10000</gewinn>
	</monat>
	<monat monat="Februar">
		<umsatz>115000</umsatz>
		<gewinn>9000</gewinn>
	</monat>
        <!-- weitere Monate ... -->
	<monat monat="Dezember">
		<umsatz>141000</umsatz>
		<gewinn>19000</gewinn>
	</monat>
</bilanz>

!!! Listing 4: Excel-Daten als XML

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40"
 xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml">

!!! Linie ziehen

 <Worksheet ss:Name="Tabelle1">
  <Names>
   <NamedRange ss:Name="_FilterDatabase" ss:RefersTo="=Tabelle1!R1C1:R13C4"
    ss:Hidden="1"/>
  </Names>
  <Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="17" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="60">
   <Column ss:AutoFitWidth="0" ss:Width="38.25"/>
   <Column ss:AutoFitWidth="0" ss:Width="52.5"/>
   <Column ss:AutoFitWidth="0" ss:Width="111.75"/>
   <Column ss:AutoFitWidth="0" ss:Width="96.75"/>
   <Row>
    <Cell ss:StyleID="s21"><Data ss:Type="String">Jahr</Data><NamedCell
      ss:Name="_FilterDatabase"/></Cell>
    <Cell ss:StyleID="s21"><Data ss:Type="String">Monat</Data><NamedCell
      ss:Name="_FilterDatabase"/></Cell>
    <Cell ss:StyleID="s21"><Data ss:Type="String">Umsatz</Data><NamedCell
      ss:Name="_FilterDatabase"/></Cell>
    <Cell ss:StyleID="s21"><Data ss:Type="String">Gewinn</Data><NamedCell
      ss:Name="_FilterDatabase"/></Cell>
   </Row>
