XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung...
-
Upload
bonifaz-giedd -
Category
Documents
-
view
118 -
download
0
Transcript of XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung...
XML EinführungAndreas Leicht
1
Einführung XML
XML EinführungAndreas Leicht
2
Gliederung
• Geschichte
• Einordnung
• Grundlagen– XML– DTD– XSL
XML EinführungAndreas Leicht
3
Geschichte
• Grundidee „generic coding“ - Trennung Information/Form
• formal definierter Dokumenttyp
• verschachtelte Strukturen
• Hypertext
XML EinführungAndreas Leicht
4
Was ist XML ?
• XML = EXtensible Markup Language
• Spezifikation zur Sprachentwicklung
• entwickelt um Daten zu beschreiben
• Tags im Vergleich zu HTML nicht vordefiniert „Design“ von eigenen
• XML ist Teilmenge von SGML
• Standard ist frei und erweiterbar
XML EinführungAndreas Leicht
5
Wozu XML ?
• Um Informationen zu– strukturieren– speichern– senden
• Datenaustausch im Web (auch B2B)
• Daten werden „nützlicher“
• zukünftiges universelles Datenformat
XML EinführungAndreas Leicht
6
XML Dokument
• Im Sinne der Spezifikation wohlgeformte Daten XML Dokument
• gültig, falls DTD vorliegt und Dokument dieser entspricht
• physikalischer Aufbau aus Entities
• logischer Aufbau aus Deklarationen, Elementen, Kommentaren, ...
XML EinführungAndreas Leicht
7
XML Syntax
• Ein Beispiel
<?xml version="1.0"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
XML EinführungAndreas Leicht
8
XML Elemente
• Erweiterbar und in Beziehung untereinander
• XML Element = alles zwischen Start- und Endtag inklusive dieser
• Namensregeln– Buchstaben, Zahlen und andere Zeichen– nicht Zahl, „_“ bzw. „xml“ am Anfang– keine Leerzeichen
XML EinführungAndreas Leicht
9
XML Attribute
• Im Starttag (z.B.: <note date="12/11/99">)
• eingeschlossen zwischen ‚‘ oder „“
• Elemente oder Attribute ?<person sex="female">
<firstname>Anna</firstname> <lastname>Smith</lastname>
</person>
oder<sex>female</sex>
XML EinführungAndreas Leicht
10
XML Namespaces
• Elementnamenkonflikte vermeiden
• Präfix (kein Namespace)<prefix:element>
• Namespace <element xmlns:namespace-prefix="namespace">
• alternative: Default Namespace<element xmlns="namespace">
• Attributwert "namespace" sollte URI sein
XML EinführungAndreas Leicht
11
XML PCDATA und CDATA
• XML Parser behandeln alle Daten außer CDATA-Blöcke als PCDATA
• ungültige Zeichen „<“ und „&“
• Zeichenersetzungen:< < less than > > greater than
& & ampersand ' ' apostrophe
" " quotation mark
• CDATA Abschnitt: <![CDATA[ ... ]]>
XML EinführungAndreas Leicht
12
Was fehlt ?
• Kommentare <!-- ... -->• Processing Instructions <? ... ?>
• leere Elemente (2 Varianten)<img src="foto.jpg"/>
<img src="foto.jpg"></img>
• Multimedia (in DTD definiert)<!ENTITY bild SYSTEM "foto.jpg" NDATA JPEG>
• als Instanz verwendet: &bild;
XML EinführungAndreas Leicht
13
Was ist eine DTD ?
• Document Type Definition
• beschreibt XML Struktur XML-Dokument gültig ?
• 2 Möglichkeiten diese einzubinden– interne DOCTYPE Deklaration
<!DOCTYPE root-element [element-declarations]>
– externe DOCTYPE Deklaration<!DOCTYPE root-element SYSTEM "filename">
XML EinführungAndreas Leicht
14
Wozu eine DTD ?
• XML auch ohne DTD möglich
• Vorteile der DTD– Gültigkeitsprüfung (Struktur)
• eigene Daten• fremde Daten (aus Web ?)
– Beschreibung zur XML wird mitgeliefert– einfacherer Datenaustausch
XML EinführungAndreas Leicht
15
DTD Beispiel (intern)
<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]><note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body></note>
XML EinführungAndreas Leicht
16
DTD Beispiel (extern)
• Externe DTD zu XML Beispiel (note)<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>
• Einbindung in note.xml<!DOCTYPE note SYSTEM "note.dtd">
XML EinführungAndreas Leicht
17
DTD Elemente (1)
• Sequenz-Operator<!ELEMENT element-name (child1,child2)>
• Oder-Operator<!ELEMENT element-name (child1|child2)>
• optionales Element (child?)• mindestens ein Vorkommen (child+)• beliebig oft (child*)• nur Text <!ELEMENT element-name (#PCDATA)>
XML EinführungAndreas Leicht
18
DTD Elemente (2)
• Gemischter Inhalt<!ELEMENT element-name (#PCDATA|child)*>
• 2 reservierte Schlüsselwörter– ANY<!ELEMENT element-name ANY>
– EMPTY<!ELEMENT element-name EMPTY>
XML EinführungAndreas Leicht
19
DTD Attribute (1)
• mit !ATTLIST definiert (Default)<!ATTLIST ename aname atype adefault-value>e = element
a = attribute
• Beispiel
<!ELEMENT payment (#PCDATA)> <!ATTLIST payment type CDATA "check">
• Anwendung in XML<payment type="check">100 €</payment>
XML EinführungAndreas Leicht
20
DTD Attribute (2)
• nicht explizit benötigt (implied)<!ATTLIST ename aname atype #IMPLIED>
• notwendig (required)<!ATTLIST ename aname atype #REQIRED>
• festgelegt (fixed)<!ATTLIST ename aname atype #FIXED default>
• Auswahlliste<!ATTLIST ename aname (en1|en2|...) default>
XML EinführungAndreas Leicht
21
DTD Entities
• Variablen
• in XML gültig
• Deklaration– intern <!ENTITY entity-name "entity-value">
– extern<!ENTITY entity-name SYSTEM "URI/URL">
• in XML: &entity-name;
XML EinführungAndreas Leicht
22
DTD PEReference
• Parameter Entity Reference
• innerhalb DTD
• Deklaration– intern <!ENTITY % entity-name "entity-value">
– extern<!ENTITY % entity-name SYSTEM "URI/URL">
• in DTD: %entity-name;
XML EinführungAndreas Leicht
23
DTD Notation
• Definition von z.B. Grafikformaten
• Entity<!ENTITY bild SYSTEM "foto.jpg" NDATA JPEG>
• zugehörige Notation<!NOTATION JPEG PUBLIC
"ISO/IEC 10918:1993//NOTATION Digital Compression and Coding of Continuous-tone Still Images (JPEG)//EN">
<!--Internationaler JPEG-Standard-->
XML EinführungAndreas Leicht
24
Was ist XSL ?
• eXtensible Stylesheet Language
• Stylesheet Sprache für XML
• ausgeklügelter als CSS
• aber auch CSS verwendbar
• 3 Teile– XSLT, Xpath, XSL Formatting Objects– größte Bedeutung XSLT
XML EinführungAndreas Leicht
25
Quellen
• World Wide Web Consortium (W3C)(http://www.w3.org)
• W3Schools (http://www.w3schools.com)
• XML in der Praxis (Henning Behme, Stefan Minert)(http://www.mintert.com/xml/buch)