Einfache Datentypen II#
Lernziel#
Aus dem Element adresse wird ein komplexer Datentyp, der als Container dient.
Handlungsanweisungen#
- Aufgaben:
Erweitern Sie das Schema aus der vorherigen Station
Alle Kindelemente aus Adresse sollen als einfache Datentypen definiert werden.
Die DTD als Vorlage#
Siehe: Zeile 4
1<?xml version="1.0" encoding="UTF-8"?>
2<!ELEMENT adressdb (adresse+)>
3<!ENTITY % sichtbarkeit "einsicht (privat|public|proteced) #REQUIRED">
4<!ELEMENT adresse (anrede, name, strasse, postanschrift, email?, bild)>
5<!ELEMENT anrede (#PCDATA)>
6<!ELEMENT name (nachname, vorname)>
7<!ELEMENT postanschrift (plz, wohnort)>
8<!ELEMENT nachname (#PCDATA)>
9<!ELEMENT vorname (#PCDATA)>
10<!ELEMENT plz (#PCDATA)>
11<!ELEMENT wohnort (#PCDATA)>
12<!ELEMENT strasse (#PCDATA) >
13<!ELEMENT email (#PCDATA)>
14<!ATTLIST strasse %sichtbarkeit;>
15<!ATTLIST postanschrift land
16 (Deutschland | Schweiz | Oesterreich) #REQUIRED %sichtbarkeit; >
17<!ATTLIST adresse nr CDATA #REQUIRED>
18<!ELEMENT bild EMPTY>
19<!ATTLIST bild bezeichnung CDATA #REQUIRED>
20<!ENTITY email_default "keine E-Mail angegeben" %sichtbarkeit; >
Kind-Element in der DTD#
<!ELEMENT adresse (anrede, name, strasse, postanschrift, email?, bild)>
ComplexType als Container#
Siehe Zeile: 6
1<?xml version="1.0" encoding="UTF-8"?>
2 <xs:element name="adressdb">
3 <xs:annotation>
4 <xs:documentation>Meine Adressammlung</xs:documentation>
5 </xs:annotation>
6 <xs:complexType>
7 <xs:sequence>
8 <xs:element ref="adresse" minOccurs="1" maxOccurs="unbounded"/>
9 </xs:sequence>
10 </xs:complexType>
11 </xs:element>
12 <xs:element name="adresse">
13 <xs:complexType>
14 <xs:sequence>
15 <xs:element ref="anrede" minOccurs="1"/>
16 <xs:element ref="name" minOccurs="1"/>
17 <xs:element ref="strasse" minOccurs="1"/>
18 <xs:element ref="postanschrift" minOccurs="1"/>
19 <xs:element ref="email" minOccurs="0"/>
20 <xs:element ref="bild" minOccurs="1"/>
21 </xs:sequence>
22 </xs:complexType>
23 </xs:element>
24 <xs:element name="anrede" type="xs:string"/>
25 <xs:element name="name" type="xs:string"/>
26 <xs:element name="strasse" type="xs:string"/>
27 <xs:element name="postanschrift" type="xs:string"/>
28 <xs:element name="email" type="xs:string"/>
29 <xs:element name="bild" type="xs:string"/>
30</xs:schema>
Das fertige XML-Dokument#
<?xml version="1.0" encoding="UTF-8"?>
<adressdb xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="art03.xsd">
<adresse>
<anrede />
<name />
<strasse />
<postanschrift />
<email/>
<bild/>
</adresse>
</adressdb>