XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung...

25
XML Einführung Andreas Leicht 1 Einführung XML

Transcript of XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung...

Page 1: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

XML EinführungAndreas Leicht

1

Einführung XML

Page 2: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

XML EinführungAndreas Leicht

2

Gliederung

• Geschichte

• Einordnung

• Grundlagen– XML– DTD– XSL

Page 3: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas 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

Page 4: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 5: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 6: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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, ...

Page 7: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 8: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 9: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 10: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 11: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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:&lt; < less than &gt; > greater than

&amp; & ampersand &apos; ' apostrophe

&quot; " quotation mark

• CDATA Abschnitt: <![CDATA[ ... ]]>

Page 12: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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;

Page 13: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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">

Page 14: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 15: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 16: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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">

Page 17: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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)>

Page 18: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 19: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 20: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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>

Page 21: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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;

Page 22: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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;

Page 23: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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-->

Page 24: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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

Page 25: XML Einführung Andreas Leicht 1 Einführung XML. XML Einführung Andreas Leicht 2 Gliederung Geschichte Einordnung Grundlagen –XML –DTD –XSL.

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)