HTML und Verarbeitung, XML - AG Netzbasierte Informationssysteme

Transcription

HTML und Verarbeitung, XML - AG Netzbasierte Informationssysteme
3
2
6
7
!
$ %&
( ) *
+&
&
.
%
/ -0
0
111
%
8
"!
4
!
!5
$
" !$
" !$
,
#
'
&
2
,
$
*=
#
-
!
'
;
!
:;<&
&
"!
9
7
*:0
5
4
6
;
$
,
$
$
$
9
!
; 4
/
&
=
=
)
&>
4
/
&
<
;4 4?
@ <& >@
/
4?
A ( ) , B
B
&
:
=
,
4
/
)
<
A
4
/
,!
4
/<
&
,
,
!&
!:
!
%
1
/
$
1
&/
G
4
A
4
/
1
0
@
$
)
-
!
&
$
$
=6<-
9
9
0
4
/
4
/>E/ F@
E0
/ F E F14
/ E0 F?
4
/>E F14
/ E0F?
1
4
/!
,
9
>
4
/
/
= ?
!
C
'
H
'
/
/
/
/
/
/
I
/
/
:
!
; 4
/
@
!
K
>1
:
?
G
;
*
4
/
,
+
@
@
E FE / PQ
/ -0
0
111
@
/E0F E0F
>
?
J
@
0
EL
$M< N#@
!#( !
&
<%0
0
=6<0
0
$$
!7 O
0
0
@F
E/ F
E/ F
E
F'(%
-&
+&
E0 F
E
/ PQ
/ -0
0
111
%
Q
F
E0
/ F
E
,
F
E FE / PQ
/ -0
0
111 %
0
Q
F' ( ) R
S
E0FE F
E / PQ
/ -0
0
111
/ %
0
Q
F' 4
/
4
/ /
&
E0FE0F
E/ F&
R
S&
E0
/F
?
9
D
9
/
/
8
:
/
/
%
0
9
T / Q
F
!
0
2
!Y @
E
/ PQ Q 4 PQ
/ -0
0
111
4 0 4
/Q
F
E / PQ
/ -0
0
111
Q
FG
E0F%;
4
/E
FE
P2F
E
, P 9
PV P 8
9
/P288 ) PQ
Q
F
E0 FE0 F
E
, P/
P
4
/) PQ
%
Q
F
E
, P/
P
) PQ
%
Q
F
!"#$%
:
$
!"#$% &"'( $)*(+!
, - !
" &"'( ./0 "
1
K$
1
/* &
1
K &/
%
;
;
F
E0
/2F
'
W E / P
0
X 404
/4
/
E0F
*4
/
O
/*
/*
2),*
A
%:
!Y @
;
(
B
;
3 +
45
+ 4
7
C
;4
/
&/
6
;
7
+8*
0,9: 0,: ;;,<
4
, = > %?
"
:. 8
:00: 00300300 @'"
6
6
/
@
B
;4
/
#
7
+G
4
/
6
/*
7
-
1
1
L
E0F
!Y @
F
4
/
!"#$%1
W / Q
F
&
) 4
/
;
U
E F$ '
Q
/ -0
0
111
%
;4
/4
/
1 1
;
E0 ,
F
E0
/ F
E
;
;
4
6
7 B 7
6
=
4
/
7
7
6
'
7
4
>
)A(
;4
/
CK
4
4
2
E0
E/2F:
+;
!Y @
3
+
/
4
/;
!Y @
;
D
'
:
4
8+C% F
C4
7
>
?
?
76=
+
=
7
7
/
4
/;
!
4
/
:
.
: E6
7
+
E
4
&A%2
,
&A%2
3
"
7
4
&A%2
?/
/
&A%2
*
6
BBB/
(
/4 ,
>
G
/
7
7
7
,
4
?/
&A%2
3
BBB/
/4 ,
/
4
?/
!Y @
+
/
7
4
6
2
4
/;
4
!Y @
'
4
7
7
7
?
4
>
7
I %'J
K<;;9
I2A2J
DK;;<;L
7 ,
4 /7
@%"
>
E'% ?
E()%
8+C%
"#$%
E()%
$
'
0
4
4
/
>$@ ?
U88 6
4
/>' '?
D 88U8J
8
:
6
E!"+
'%"&
%)A
7
2
4
-H
D
7
7
7
+&
!Y @
9$
&/
&
!
%;
@4
/
,
;
MW
9 1 4
,
,
/
< 1
@4
/
4
W4
$
##
,9
,
+
@4
/
&
&/
@9
) ;
!
% 9
&
MC
-
F E
F?
4
4
&
)A+
+
N
3
+ 4
6
?/ /7
#
-;
=
?
/
&/
9 /
>Q
#
>E
'
OC
G
+ 4
>
Q 4?
F E/ZF
4?
4?
J
H
-
>E
-
5
'+
)
5
)
I
!
!
1
4
I
;4
<#0
($#
# '# 4
!5
&
#
(!
<
5
: ,
4
B)
)
&/
$
!
4
+ & /
$M
U
I
4
/
!
2O
1
,
:
+
W)9 1
#
#
W)9 1
+
!
+4
/
&
9/
9/
FE/
W)
ZS
W)9 1
W)9 1
/*
:
4
!
-
#
E/
-:
<
<
/
*/
W) ZS
W)9 1
9 ZS
9/
9/
ZS
ZS
9
!
@
A #
<
4]
S
4
/
FE
F
!;
E0
F
4) /
<
^^S
;
>
!
4) /
> PP
!
;,
@
>
!
!
?]
> <
?S
4) /
<
^^S
;
>
:
;
?]
_
/
;
>
!
@
;
:
/
;
@:$?
>
!
9
-/
@
@
:
/
@
>
!
9>[
!;
\O?
!?
-:
& !
@?
/
*/
!
:
)
;
)
@
)
9/
/
%
!
@
?]
;
/
#
@
/
;
>
A #
!
:
;
!
>
@
)
A
)
<
4
;
?
?
%
>
!
:
? ]_
;
_
W)9 1
4
4)
>;
)
?]
,] 0
0( !/
(!
P 1( !
> )O ?S
(!
<
4 4
4 P
<
4 >?S
4
4 4
4>?S
>4
4
<
, >?
= />Q 90
/ Q
?? ]
0
0
!& / ; C
4
&
;
P4
4
&
;
>?S
&
;
P 1&
;
> ?S
P 1
> ?S
<
<
P 1
<
>?S
0
0#
#
$
P 1#
$
>?S
>
<
?S
_
_44
/ >@9
4
_
?]
_
_
2
@
;
:
/
-
22
@
;
:
/
4
/
>E F?
/
<
>4
/
>EL
%%
%%F?
/
9>4
/
9
;
?
?
?
27
26
_
4
!
;
4) /
>> PP
!
> PP
!
> PP
!
;,
;,
)
!
9
!
@
A #
<
4]
;
>
!
:
;
#? `
`
?`
`> PP
!
2? `
`> PP
!
7? `
`> PP
!
8? `
`> PP
!
>?S
0
0!
:
>?S
-(
4)
!
?`
`> PP
!
;
>Q
ZZQ
?S
0
0 ) /
M G? `
`> PP
> PP
;,
;,
6? `
`
D?? ]
!
?]
M G? `
`> PP
@ ?? ]
FW)
'(%
!
;
-&
'
( )
3
4
/ -0
0
111
+ &
)
/
9>4
/
>
?S 0
0@
4
/
?]
9
ZZ% :
' 4
/
&
!
W)9 1
%
)1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
;
/
R!/
ZZA
ZZ% G 4
/* +/
ZZ; )4ZZ% ;
4
/
I
+ $
ZZ% ;
;
:
4
/
;
4
/ 4
;
4
/
#+
'
#+
/
4
/
ZZ% # )
;
*
A
5
+/
)
!/ )
4
/
:
&
%
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
9/
!
:
:$$ @;;
:##!
@
: @:
:;@
:;@'M
&G
!
M<AH(M @
M$N
<:# &M
<@ @
<& @
<M$@
#
2J
ZZ!/ ZZ% ;
!/ )
)*
@ ?? ]
*
ZZ:
?]
I
28
-(
ZZ!
?]
>?S 0
0
>?S
;
_
!
_
_
ZZG
!
2D
@
>
!
?`
`> PP
!
;
>Q
ZZQ
?S
0
0 ) /
!
!
_
_
4)
;,
/
!
>
:
_
_
4)
>> PP
;,
;
?]
_
>> PP
;,
/
)
2
-(
4
&
:
9
) :
!
@
A #
<
4]
4) /
;
>
!
:
> PP
!
& G? ]
M W4
P
:
>
!:
:! ?S
>
PP
?]
;,
>Q
ZZ :
/
^Q+ Q
^
:
>
;,
>Q
5 /
:
-Q
?S
>@
P
:
>?S
/
@
>?S? ]
M W4 P
9@
>?S
;,
> ^Q = Q
?S
;,
>
:
> ??S
_
_
;
Q
^
!:
FW) & :
ZZ :
/ -0
0
N4
:
5 /
:
)
=
=
/ /
=
1 /
=
4 =
/ -0
0
N4
:
?]
; <??S
/
) :
-0
0
111
%
/
7O U +
4 0a P:<B6 81B
# 9
!
NH J5
b$@':(!
O
4
0a P:<B6 81B
# 9
!
NH J5
2U
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
!:
:< &M
:!
&G
:!
& A
:!
: < &5@
:<AG M( $
G<M!
M
M $@
<@!
!
#:$$& G
<@!
!
;#:<& G
< @<A@$
<!
:;;
<!
:;;&$
<!
@:
<M$@
<M$@ :;@
<M$@ N#@
<M!
M
<M!
;
$
6
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
9/
62
W)9 1
6O
_
_
$
:
:
4
/
=
#
-
4
+
<U>Robert Tolksdorf</U>
<ADDRESS>
TU Berlin<BR>
FR 6-10<BR>
Franklinstr. 28/29<BR>
D-10578 Berlin<BR>
</ADDRESS>
;
'
*:0
5
4
/
4
/
9/
!
-
*;
$
4
/
!
:;<&&
"!
9
4
/
:
A
4
/
)
4
/
:
"!
4
/
!@ 14
;G !
C 4
/
*
+K
4
/ A
*
1
G
+ 1
-
4
/
$
*
*
:
+K
4
/
4
/
!
!2 O
"
4
/
C
!
"!
= !
;5G
<ORT><PLZ>...</PLZ><ORTSNAME>...</ORTSNAME></ORT>
</ADRESSE>
4
/ :
!6 O
!7
+K
<ADRESSE>...</ADRESSE>
<ADRESSE><STRASSE>...</STRASSE><ORT>...</ORT>
</ADRESSE>
<ADRESSE>
<STRASSE>...</STRASSE>
-: 1
!6 2
"!
%@$&
< !
6D
)
68
:
@
4
/
a
:
:
:
67
)
66
/
" ! HR:
" !a
$ @9
(
:
4
/
!
) ;G !
4
/
= /
"#
$ "%
4
/
;
=6<
4
/
"!
$
=
=
$'
</
!
;5G
=
!
"# /
4
/:
4
/
'M
4
/
$M
) " !%
4
/ a
C 4
/$
4
/
6J
;
$
5
$$
@
"!
#
"!
@
Lernziele
• Wie ist ein XML-Dokument aufgebaut?
• Was sind Elemente und was sind Attribute?
• Wann sollten Attribute und wann Elemente verwendet
werden?
"!$
'
-A
;4
/
&
6U
5
4
/
/!
" !a
:1
=
:
4
/
"!
;4
/
"!
;, /
" !a
"!
A
=
$
4
/
4
/
© Klaus Schild, XML Clearinghouse 2003
6
=
:
:
A
Elemente
Inhalt von Elementen
<first> ist ein Anfangs-Tag
(engl. start tag).
</first> ist das dazugehörige
End-Tag.
<first>John</first> wird
Element und „first“
Elementname genannt.
„John“ wird auch Inhalt des
Elementes genannt.
1. Elemente können aus einfachem Text bestehen:
<first>John</first>
Der Inhalt wird dann auch als parsed character data
(PCDATA) bezeichnet.
2. Elemente können auch weitere Elemente enthalten:
<name>
<first>John</first>
<last>Doe</last>
</name>
Wird auch als strukturierter Inhalt bezeichnet
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Inhalt von Elementen
Inhalt von Elementen
3. Elemente können gleichzeitig Text (PCDATA) und
Elemente enthalten:
4. Elemente können auch leer sein:
<section>
Text
<subsection> … </subsection>
Text
</section>
Wird auch als gemischter Inhalt (engl. mixed content)
bezeichnet
© Klaus Schild, XML Clearinghouse 2003
<name>
<first>John</first>
<middle></middle>
<last>Doe</last>
</name>
Beachte Unterschied zu nicht vorhandenen Element!
Leeres Element <tag-name></tag-name> kann mit <tagname/> abgekürzt werden:
<name>
<first>John</first>
<middle/>
<last>Doe</last>
</name>
© Klaus Schild, XML Clearinghouse 2003
PCDATA
CDATA
• Für XML reservierte Symbole wie < und & dürfen
nicht in PCDATA verwendet werden.
•
• Statt dessen &lt bzw. &amp verwenden.
• &lt und &amp werden auch entity references genannt.
• In XML gibt es insgesamt fünf entity refences:
• &amp
für
• &lt für
<
• &gtfür
>
• &apos
für
'
• &quot
für
"
•
•
Text mit vielen reservierten Symbolen besser als sog. character
data (CDATA) darstellen.
XML-Parser betrachtet dann den entsprechenden Text als
einfachen String und parst den Inhalt nicht.
XML-Parser sucht ]]> und analysiert die Zeichenkette bis dahin
nicht.
&
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Regeln für wohlgeformte Dokumente
Regel 1: Anfangs- und End-Tags
1. Jedes Anfangs-Tag muss ein zugehöriges End-Tag
haben.
2. Elemente dürfen sich nicht überlappen.
3. XML-Dokumente haben genau ein Wurzel-Element.
4. Elementnamen müssen den Namenskonventionen von
XML entsprechen.
5. XML beachtet grundsätzlich Groß- und Kleinschreibung.
6. XML belässt Formatierungen (white space) im Text.
• In XML muss jedes Anfangs-Tag ein zugehöriges
End-Tag haben.
• In HTML gilt diese Regel nicht:
<HTML>
<BODY>
<P>Text
<BR>More text in the same paragraph.
<P>Some text in another paragraph.</p>
</BODY>
</HTML>
• Wo endet das erste P-Element?
• Syntaktisch mehrdeutig
XML-Dokumente strukturierter
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Regel 2: Überlappung von Elementen
Regel 3: Wurzel-Elemente
•
In XML dürfen sich Elemente nicht überlappen.
•
In HTML dürfen sich Tags überlappen:
• Jedes XML-Dokumente hat genau ein WurzelElement.
<HTML>
<BODY>
<P>Some
<STRONG>formatted
<EM>text
</STRONG>, but
</EM>
no grammar no good!
</p>
</BODY>
</HTML>
•
semantisch mehrdeutig!
• Wurzel-Element entspricht dem Dokument-Typ.
• Also z.B. statt zweier Wurzel-Elemente
<name>John</name>
<name>Jane</name>
ein zusätzliches Element einführen:
<names>
<name>John</name>
<name>Jane</name>
</names>
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Regel 4: Namenskonventionen
Regel 4: Namenskonventionen
• Namen beginnen entweder mit einem Buchstaben
oder „_“: z.B. first, First oder _First
• <résumé>
• Nach dem ersten Zeichen sind zusätzlich Zahlen
sowie „-“ und „.“ erlaubt: z.B. _1st-name oder _1st.name
• <123>
nicht wohlgeformt: beginnt mit Zahl
• <fun=xml>
nicht wohlgeformt: enthält „=“
• <first name>
nicht wohlgeformt: enthält Leerzeichen
• Namen enthalten keine Leerzeichen.
• Namen enthalten kein „:“.
• <xml-tag> nicht wohlgeformt: beginnt mit „xml“
• Namen beginnen nicht mit „xml“, unabhängig davon,
ob die einzelnen Buchstaben groß- oder
kleingeschrieben sind.
• Diese Konventionen gelten für alle Namen, nicht nur
für Elementnamen.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Regel 5: Groß- und Kleinschreibung
Regel 6: White Space
• XML beachtet grundsätzlich Groß- und
Kleinschreibung.
• Beispiel:
• Im Gegensatz zu HTML unterscheidet XML also
z.B. zwischen <P> und <p>.
• Dennoch möglichst nicht gleichzeitig <First> und
<first> verwenden!
<P>This is a paragraph. It has a whole bunch
of space.</P>
• HTML reduziert alle Formatierungen (white spaces)
im Text auf ein einziges Leerzeichen :
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Regel 6: White Space
Attribute
•
•
XML belässt alle Formatierungen im Text.
Beispiel: Der Inhalt von
<paragraph>This is a paragraph.
of space.</paragraph>
•
•
•
Attribute sind Name-WertPaare der Form
name="wert" oder
name='wert'.
•
Der Wert eines Attributes ist
immer ein String.
•
Die Reihenfolge der
Attribute ist belanglos.
It has a whole bunch
Beachte: In Browsern wie dem IE 5 und IE 6 sind diese
Formatierungen allerdings nicht sichtbar.
Grund: XML-Dokumente werden zur Darstellung im Browser in
HTML umgewandelt.
© Klaus Schild, XML Clearinghouse 2003
Elemente können eine
beliebige Anzahl von
Attributen haben.
It has a whole bunch
ist also:
This is a paragraph.
of space.
•
© Klaus Schild, XML Clearinghouse 2003
Attribute
Element statt Attribut
•
•
Ein Element darf niemals zwei Attribute mit dem selben
Attribut-Namen haben:
Jedes Attribut kann auch als Kind-Element repräsentiert
werden:
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Attribut statt Element
Attribut oder Element?
•
Wann also Attribute und wann Elemente verwenden?
Jedes unstrukturierte Kind-Element kann auch als Attribut
dargestellt werden:
© Klaus Schild, XML Clearinghouse 2003
•
Ein Attribut kann nur einen String als Wert haben, ein Element
kann beliebig strukturiert werden.
•
Die Reihenfolge der Attribute ist belanglos, diejenige von
Elementen nicht.
•
Einheitliche Darstellung mit Elementen ist eleganter,
Darstellung mit Attributen kompakter.
•
Fazit: Attribute eigenen sich besonders für einfache,
unstrukturierte Metadaten.
© Klaus Schild, XML Clearinghouse 2003
Die XML-Deklaration
Attribut oder Element?
interner Schlüssel
des Datensatzes
•
Enthält Informationen für Parser, insbesondere die verwendete
XML-Version und Kodierung
•
Muss immer am Anfang der Datei erscheinen
•
Ist zwar optional, sollte aber dennoch immer vorhanden sein!
Erstellungsdatum
des Datensatzes
Beide Attribute stellen Meta-Information dar.
Reihenfolge ist egal.
Deshalb Repräsentation als Attribute
Problem: Datum "21.05.2003" ist unstrukturierter String.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Die XML-Deklaration
XML-Deklaration: Kodierung
•
•
•
•
version (obligatorisch): Verwendete XML-Version, aktuelle
Version ist "1.0".
standalone (optional): Gibt an, ob es eine zugehörige DokumentTyp-Definition gibt ("no") oder nicht ("yes").
encoding (optional): Verwendete Kodierung des XMLDokumentes
Die drei Attribute müssen immer in dieser Reihenfolge
erscheinen.
• ASCII (American Standard Code for Information) stellt
einzelne Zeichen entweder mit 7 oder 8 Bit dar.
• 7-Bit-ASCII deckt mit 128 Zeichen nur einen kleinen
Teil der weltweit verwendeten Zeichen ab.
• Es gibt verschiedene 8-Bit-ASCII-Versionen (u.a. ISO8859-1 und windows-1252).
• Nur die ersten 128 Zeichen der 8-Bit-ASCII-Versionen
sind bei allen 8-Bit-ASCII-Versionen identisch.
• Fazit: ASCII ist nur beschränkt zum weltweiten
Austausch von Textdateien geeignet.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
XML-Deklaration: Kodierung
XML-Deklaration: Kodierung
• Unicode deckt mit 65356 Zeichen alle weltweit
verwendeten Zeichen ab.
• Intern müssen alle XML-Parser mit Unicode arbeiten.
• Unicode gibt es auf Basis von 8 Bit (UTF-8) und 16 Bit
(UTF-16).
• Das Attribut encoding gibt an, welches
Kodierungsschema das betreffende XML-Dokument
verwendet.
• Sowohl UTF-8 als auch UTF-16 decken den
kompletten Unicode-Zeichensatz ab, UTF-8 benutzt
lediglich eine intelligentere Kodierung.
• Fehlt dieses Attribut in der XML-Deklaration, dann
wird angenommen, dass das Dokument entweder in
UTF-8 oder UTF-16 kodiert ist.
• 7-Bit-ASCII ist eine Teilmenge von UTF-8.
• Tipp: Das XML-Dokument in Unicode abspeichern.
Das Attribut encoding kann dann in der XMLDeklaration weggelassen werden.
• Textdateien, die größtenteils aus dem 7-Bit-ASCIIZeichensatz bestehen, können in UTF-8 kompakter
sein, alle anderen sind meist in UTF-16 kompakter.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Online-Test XML
Zusammenfassung
http://www.w3schools.com/xml/xml_quiz.asp
• Elemente bestehen aus einem Anfangs-Tag, einem
dazugehörigen End-Tag und dem dazwischen
eingeschlossenem Inhalt.
• Ein Element kann nur Text, nur Kind-Elemente oder
gleichzeitig Text und Kind-Elemente enthalten.
• Ein Element kann auch leer sein.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Zusammenfassung
Zusammenfassung
• Wohlgeformte XML-Dokumente müssen folgenden
syntaktischen Regeln entsprechen:
• XML beachtet grundsätzlich Groß- und
Kleinschreibung.
• Jedes Element kann eine beliebige Anzahl von
Attributen haben.
• Attribute sind Name-Wert-Paare.
• Der Wert eines Attributes ist immer ein einfacher
String.
• Die Reihenfolge der Attribute ist belanglos.
• Jedes Attribut kann auch als Kind-Element
repräsentiert werden.
• Umgekehrt kann jedes unstrukturierte Kind-Element
auch als Attribut dargestellt werden.
• Attribute eignen sich zur Darstellung von einfachen,
unstrukturierten Metadaten.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
• Jedes Anfangs-Tag muss ein zugehöriges End-Tag
haben.
• Elemente dürfen sich nicht überlappen.
• XML-Dokumente haben genau ein Wurzel-Element.
• Elementnamen müssen den Namenskonventionen
von XML entsprechen, müssen u.a. entweder mit
einem Buchstaben oder mit „_“ beginnen.
Lernziele
• Wie kann mit einer DTD der Aufbau von XMLDokumenten eines bestimmten Typs beschrieben
werden?
) $
'
-A
• Wie wird die Elementstruktur eines Dokumentes
deklariert?
,
;4
/
&
• Wie werden Attribute von Elementen deklariert?
• Was sind die Nachteile von DTDs?
J
$
© Klaus Schild, XML Clearinghouse 2003
Dokument-Typen
Deklaration der Elementstruktur
• Beschreiben den prinzipiellen Aufbau von
Dokumenten eines bestimmten Typs.
• Können mit DTDs (Document Typ Definitions)
spezifiziert werden.
• DTDs wurden von SGML übernommen.
• DTDs benutzen Syntax, die regulären Ausdrücken
ähnlich ist.
<!ELEMENTcatalog
catalog(CD
(CD| |cassette
cassette| |record
record| |MP3)*>
MP3)*>
<!ELEMENT
Klasse
Objekt
Objekt
Objekt
Deklariert Element catalog
* bedeutet n Wiederholung mit n
0.
| bedeutet Auswahl.
CD, cassette, record und MP3 sind jeweils Kind-Elemente.
DTD
XML-Dokument
XML-Dokument
XML-Dokument
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Deklaration der Elementstruktur
Deklaration der Elementstruktur
<!ELEMENTcatalog
catalog((EMPTY
EMPTY| |(catalog-item,
(catalog-item,catalog)
catalog))>
)>
<!ELEMENT
<!ELEMENTcatalog-item
catalog-item(CD
(CD| |cassette
cassette| |record
record| |MP3)>
MP3)>
<!ELEMENT
<!ELEMENTCD
CD(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
Deklariert Element „CD“
Rekursive Element-Deklarationen sind erlaubt.
+ bedeutet n Wiederholung mit n
EMPTY bedeutet leerer Element-Inhalt.
, bedeutet Sequenz: Aufeinanderfolge von Elementen
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
1.
Deklaration der Elementstruktur
<!ELEMENTcatalog
catalog(CD
(CD| |cassette
cassette| |record
record| |MP3)*>
MP3)*>
<!ELEMENT
<!ELEMENTCD
CD(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTcassette
cassette(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTrecord
record(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTMP3
MP3(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
Deklariert Elemente cassette,
record und MP3
Analog zur Deklaration von CD
Deklaration der Elementstruktur
<!ELEMENTartist
artist(#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENTtitle
title(#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENTgenre
genre(#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENTdate-released
date-released(#PCDATA)>
(#PCDATA)>
<!ELEMENT
Deklariert jeweils Elemente
artist, title, genre und dateresleased.
#PCDATA bedeutet
unstrukturierter Text ohne
reservierte Symbole wie „<“
oder „>“.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Deklaration der Elementstruktur
Deklaration der Elementstruktur
<!ELEMENTsong
song(title,
(title,length,
length,parody)>
parody)>
<!ELEMENT
<!ELEMENTlength
length(minutes,
(minutes,seconds)>
seconds)>
<!ELEMENT
<!ELEMENTminutes
minutes(#PCDATA)>
(#PCDATA)>
<!ELEMENT
title, length und parody sind
Kind-Elemente von song.
title, length und parody
erscheinen immer in dieser
Reihenfolge.
<!ELEMENTseconds
seconds(#PCDATA)>
(#PCDATA)>
<!ELEMENT
minutes und seconds werden
als unstrukturierten Text
deklariert.
Datentypen wie positiveInteger
oder Integer stehen in DTDs
nicht zur Verfügung.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Deklaration der Elementstruktur
Vermeidung von Wiederholungen
<!ELEMENTcatalog
catalog(CD
(CD| |cassette
cassette| |record
record| |MP3)*>
MP3)*>
<!ELEMENT
<!ELEMENTCD
CD(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTcatalog
catalog(CD
(CD| |cassette
cassette| |record
record| |MP3)*>
MP3)*>
<!ELEMENT
<!ENTITY%
%albumContentModel
albumContentModel"(artist,
"(artist,title,
title,genre,
genre,date-released,
date-released,song+)">
song+)">
<!ENTITY
<!ELEMENTcassette
cassette(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTrecord
record(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTCD
CD
%albumContentModel;>
<!ELEMENT
%albumContentModel;>
<!ELEMENTcassette
cassette %albumContentModel;>
%albumContentModel;>
<!ELEMENT
<!ELEMENTMP3
MP3(artist,
(artist,title,
title,genre,
genre,date-released,
date-released,song+)>
song+)>
<!ELEMENT
<!ELEMENTrecord
record
<!ELEMENT
<!ELEMENTMP3
MP3
<!ELEMENT
%albumContentModel;>
%albumContentModel;>
%albumContentModel;
%albumContentModel;
Struktur von CD, cassette, record und MP3 sind identisch.
Änderungen dieser Struktur müssen an mehreren
Stellen nachvollzogen werden.
%albumContentModel; ist ein Parameter.
Allerdings nur einfache textuelle Ersetzung, keine
Vererbungshierarchien.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Primitive Datentypen
Primitive Datentypen
Neben den komplexen Datentypen zur Strukturierung von
Element-Inhalten, stehen drei primitive Datentypen (engl.
built-in datatypes) zu Verfügung:
Beachte: Elementare Datentypen, wie sie von
Programmiersprachen bekannt sind, stehen in DTDs nicht
zur Verfügung.
#PCDATA: unstrukturierter Text ohne reservierte
Symbole.
<!ELEMENT minutes (INTEGER)>
EMPTY: Der Element-Inhalt ist leer. Das Element kann
allerdings Attribute haben.
<!ELEMENT br EMPTY>
<br/>
ANY: beliebige XML-Strukturen
<!ELEMENT title ANY>
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Zulässige Dokumente
Prüfung der Zulässigkeit
In einem XML-Dokument
kann ein Dokument-Typ
spezifiziert werden.
Das Wurzelelement des
Dokumentes muss genau der
Struktur dieses Elementes
entsprechen, wie sie im
Dokument-Typ festgelegt ist.
In diesem Fall bezeichnet
man das Dokument als
zulässig (engl. valid).
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Prüfung der Zulässigkeit
Deklaration von Attributen
<!ATTLISTcatalog
catalog
<!ATTLIST
versionCDATA
CDATA#IMPLIED
#IMPLIED"1.0">
"1.0">
version
Das Element catalog hat ein Attribut mit dem Namen
version.
Außer version hat catalog keine weiteren Attribute.
Das Attribut ist vom Typ String (CDATA).
#IMPLIED: Das Attribut ist optional.
"1.0" ist der Standard-Wert.
#REQUIRED: Das Attribut ist obligatorisch.
#FIXED: Das Attribut hat immer den gleichen Wert.
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Deklaration von Attributen
<!ATTLISTartist
artist
<!ATTLIST
gender(male
(male| |female)
female)"female">
"female">
gender
Das Element artist hat ein Attribut mit dem Namen
gender und keinen weiteren Atrribute.
Das Attribut hat entweder den Wert male oder female
(Aufzählungstyp).
"female" ist der Standard-Wert von gender.
Datentypen für Attribute
Neben Strings (CDATA) und Aufzählungstypen stehen im
wesentlichen folgende Datentypen zur Verfügung:
NMTOKEN: ein String, der den Namenskonventionen von
XML entspricht
NMTOKENS: ein Liste von solchen Namen, jeweils
getrennt durch ein Leerzeichen
ID: Bezeichner, der den Namenskonventionen von XML
entspricht und innerhalb des Dokumentes eindeutig ist.
IDREF: eine Referenz auf einen eindeutigen Bezeichner
IDREFS: eine Liste von solchen Referenzen
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
Ein Nachteil von DTDs
Weitere Nachteile von DTDs
Reihenfolge von Kind-Elementen ist festgelegt:
<!ELEMENT song (title, length)>
Dadurch sehr starre Struktur in XML-Dokumenten!
Um Reihenfolgeunabhängigkeit zu garantieren, müssen
alle Permutationen explizit aufgezählt werden:
<!ELEMENT song ((title, length) | (title, length))>
Für n Element gibt es n! verschiedene Permutationen.
© Klaus Schild, XML Clearinghouse 2003
keine XML-Syntax, daher eigene Parser nötig
kaum primitive Datentypen, insbesondere für ElementInhalte
keine eigenen Datentypen definierbar
keine Namensräume: Bereits existierende DTDs können
nur dann kombiniert werden, wenn es keine
Namenskonflikte gibt!
keine Vererbungshierarchien, nicht objekt-orientiert
© Klaus Schild, XML Clearinghouse 2003
Zusammenfassung
Zusammenfassung
Dokument-Typen beschreiben den prinzipiellen Aufbau
von Dokumenten eines bestimmten Typs.
Dokument-Typen können mit DTDs (Document Typ
Definitions) spezifiziert werden.
Dokument-Typen können mit Klassen und XMLDokumente mit Objekten verglichen werden.
DTDs wurden von SGML übernommen.
In einem XML-Dokument kann ein bestimmter DokumentTyp spezifiziert werden.
keine XML-Syntax, daher eigene Parser nötig
DTDs haben entscheidende Nachteile:
kaum elementare Datentypen, insbesondere für ElementInhalte
Das Wurzelelement des Dokumentes muss dann genau
der Struktur dieses Elementes entsprechen, wie sie im
Dokument-Typ festgelegt ist.
keine eigenen Datentypen definierbar
keine Namensräume: DTDs können nur kombiniert
werden, wenn es keine Namenskonflikte gibt.
In diesem Fall bezeichnet man das Dokument als zulässig
(engl. valid).
keine Vererbungshierarchien, nicht objekt-orientiert
© Klaus Schild, XML Clearinghouse 2003
© Klaus Schild, XML Clearinghouse 2003
3
4
!
2
6
@
@
@
2
I
6
7
8
6
U8
8
#
;1
@
$
" !$
" !$
1
#
%
/* <
:
4%#
,
UD
2
7
4
/
@ *
!5
2
6
4
/:
4
/
>
?:
+
;
G
&/
&
A
9 &/
!
!
$ ) S<
A S
$9 </ "!
" !;4
/
;M:# ";!
$M
;:"2O
2
2OO = 9#
% D OO%88U%
@
5
/
UJ
/
1
;
-/ 00111 W4
&
)"!
%A
"!
%
0)
09 0
/ 00111 )
U
$)
> ?
!7O ; 4 4
=6<
4
27$ 4
UUU
/ 00111 16 0 0/ 7
"
!
!%
; 4
/
=
)
8 :
2OO2 &
; 6% U D7% 88%7
;
+ ;@!
'
!/ 00111
/
0