• Keine Ergebnisse gefunden

Einführung XML

N/A
N/A
Protected

Academic year: 2022

Aktie "Einführung XML"

Copied!
25
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung XML

(2)

Gliederung

• Geschichte

• Einordnung

• Grundlagen

– XML – DTD – XSL

(3)

Geschichte

• Grundidee „generic coding“ - Trennung Information/Form

• formal definierter Dokumenttyp

• verschachtelte Strukturen

• Hypertext

(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

(5)

Wozu XML ?

• Um Informationen zu

– strukturieren – speichern

– senden

• Datenaustausch im Web (auch B2B)

• Daten werden „nützlicher“

• zukünftiges universelles Datenformat

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

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

(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

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

(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

(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[ ... ]]>

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

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

(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

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

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

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

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

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

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

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

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

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

(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

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

Referenzen

ÄHNLICHE DOKUMENTE

&lt;!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)&gt;.. &lt;!ELEMENT

Element Node: price NodeList Text Node: 11.95 NodeList. Element

alle Zeichen erlaubt, die nicht ausdrücklich verboten.

&lt;!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)&gt;. &lt;!ELEMENT

Wer hat Kontrolle über das Parsen: die Anwendung oder der

• Sobald der Parser eine syntaktische Einheit analysiert hat, benachrichtigt er die Anwendung und übergibt die entsprechende Analyse.. • Beachte: „Push” bezieht sich wiederum

ƒ verallgemeinerte Auszeichnungssprache (generalized markup language): keine Tags vorgegeben, beliebige Tags möglich. ƒ Vorteil: beliebige

o Benutzung über Java, C++ oder Perl o Plattform: Java, Windows, Unix Voraussetzung..  Betriebssystem mit Java-, C++- oder