Demo: Schema – Rootelement

Lernziel

In der folgenden Übungsserie wird in aufeinanderfolgenden Schritten eine Schemadatei für das Adress-XML-Beispiel entwickelt. Sie haben damit den direkten Vergleich zur schon vorhandenen DTD.

Handlungsanweisungen

Aufgaben
  1. Erstellen Sie das Grundgerüst mit dem Wurzelelement.

  2. Erzeugen Sie eine xml-Datei basierend auf der neuen Schema-Datei.

Die DTD als Vorlage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT adressdb (adresse+)>
<!ENTITY % sichtbarkeit "einsicht (privat|public|proteced) #REQUIRED">
<!ELEMENT adresse (anrede, name, strasse, postanschrift, email?, bild)>
<!ELEMENT anrede (#PCDATA)>
<!ELEMENT name (nachname, vorname)>
<!ELEMENT postanschrift (plz, wohnort)>
<!ELEMENT nachname (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
<!ELEMENT plz (#PCDATA)>
<!ELEMENT wohnort (#PCDATA)>
<!ELEMENT strasse (#PCDATA) >
<!ELEMENT email (#PCDATA)>
<!ATTLIST strasse %sichtbarkeit;>
<!ATTLIST postanschrift land
          (Deutschland | Schweiz | Oesterreich) #REQUIRED %sichtbarkeit; >
<!ATTLIST adresse nr CDATA #REQUIRED>
<!ELEMENT bild EMPTY>
<!ATTLIST bild bezeichnung CDATA #REQUIRED>
<!ENTITY email_default "keine E-Mail angegeben" %sichtbarkeit; >

Das Root-Element in der DTD

<!ELEMENT adressdb (adresse+)>

Das Root-Element in einem Schema

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="adressdb">
    <xs:annotation>
      <xs:documentation>
         Comment describing your root element
      </xs:documentation>
    </xs:annotation>
  </xs:element>
</xs:schema>

Kommentare

Kommentare werden wie im XML Standard verwendet, für die Dokumentation haben Sie zusätzlich die Möglichkeit die Elemente xs:annotation und xs:documentation zu verwenden.

Elemente definieren

Die Elementdefinition selbst erfolgt mit:

<xs:element name="adressdb">
...
</xs:element>

Das fertige XML-Dokument

Wenn Sie nun mit der XSD-Datei ein neues XML-Dokument anlegen, können Sie den folgenden Inhalt erzeugen (achten Sie auf den Namen der XSD-Datei hier, art01.xsd):

<?xml version="1.0" encoding="UTF-8"?>
<adressdb xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="art01.xsd">
</adressdb>