• Keine Ergebnisse gefunden

Grundlagen von XML

N/A
N/A
Protected

Academic year: 2022

Aktie "Grundlagen von XML"

Copied!
29
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)
(2)

Geschichte

Grundidee „generic coding“ - Trennung Information/Form

formal definierter Dokumenttyp

verschachtelte Strukturen

Hypertext

Extensible Markup Language (XML): “Erweiterbares HTML”

Zusammenwachsen von SGML and HTML:

Stärke von SGML

(Dokumentenbeschreibungs- sprache)

plus Einfachheit von HTML

(3)

HTML vs. XML

HTML beschreibt das Aussehen eines Web-

Dokuments, nicht den Inhalt. Daraus resultieren Beschränkungen des WWW:

Austausch von Informationen

Transformation von Dokumentformaten

Suche nach Informationen

Idee von XML

„XML bridges the incompatibilities of computer

systems, allowing people to search for and exchange scientific data, commercial products and multilingual documents with greater ease and speed“

(Jon Bosak & Tim Bray, XML and the Second-

Generation Web, in: Scientific American, Mai 1999)

(4)

Was ist XML ?

XML = EXtensible Markup Language

zukünftiges universelles Datenformat (Teilmenge von SGML)

XML ist eine Meta-Sprache, also eine Sprache zur Definition von Sprachen

Tags im Vergleich zu HTML nicht vordefiniert 

„Design“ von eigenen Tags

Standard ist frei und erweiterbar

XML,um Informationen zu

strukturieren

speichern

senden

Datenaustausch im Web (auch B2B)

(5)

XML-Beispiel (Bücherliste)

<?XML version=“1.0” standalone=“yes”?>

<!DOCTYPE BOOKLIST SYSTEM “booklist.dtd”>

<BOOKLIST>

<BOOK genre=“Fiction”>

<AUTHOR>

<FIRST>Milan</FIRST><LAST>Kundera</LAST>

</AUTHOR>

<TITLE>Identity</TITLE>

<PUBLISHED>1998</PUBLISHED>

<BOOK genre=“Science” format=“Hardcover”>

<AUTHOR>

<FIRST>Richard</FIRST><LAST>Feynman</LAST>

</AUTHOR>

<TITLE>The Character of Physical Law</TITLE>

</BOOK></BOOKLIST>

(6)

XML-Grundbegriffe: Dokument

Dokument

XML-Dokument impliziert nicht Dokument im herkömmlichen Sinn

Ein XML-Dokument besteht aus

Prolog (optional)

DTD (optional)

dem Wurzelelement

Baum

Kommentare und Processing Instructions sind an fast allen Stellen möglich

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

Prolog

<?xml version=“1.0“ encoding=“UTF-8“ standalone=“yes“?>

(7)

XML-Grundbegriffe: Element

XML-Element

hat ein Start-Tag und ein End-Tag mit seinem Namen

kann Attribute und Inhalt haben (PCDATA oder Elemente)

<myElement myatt=“5“>Inhalt>/myElement>

<yourElement><x>y</x><x>5</x><Z>a</Z></yourElement>

Attribute optional

ein leeres Element hat keinen Inhalt

<emptyElement></emptyElement> kurz: <emptyElement/>

mixed Content: Inhalt besteht aus PCDATA und Elementen

<Vortrag>XML-Speicherung mit <Produkt>Oracle</Produkt> von

<Professor>Kudrass</Professor></Vortrag>

Namensregeln

Buchstaben, Zahlen und andere Zeichen

nicht Zahl, „_“ bzw. „xml“ am Anfang

keine Leerzeichen

(8)

XML-Grundbegriffe: Entity

Parameter Entity (nur in der DTD verwendet)

nur in der DTD verwendet: % entity-name;

<!ENTITY % children “(A, B, C)*“>

Referenz: <!ELEMENT parent %children;>

Character Entity (referenziert durch &#32; &#x0020;)

Predefined Entity (referenziert durch &lt; &gt; &qout;

&amp; &apos;)

Parsed (internal oder external) Entity

<!ENTITY entity-name "entity-value">

<!ENTITY Copyright “Copyright Oracle 2001">

<!ENTITY License SYSTEM “http://www.oracle.com/license.xml“>

Unparsed external Entity

<!ENTITY entity-name SYSTEM "URI/URL">

<!ENTITY Bild SYSTEM “../grafics/BuntesBild.gif“ NDATA gif>

Name als Attributwert verwendet

(9)

Weitere XML-Grundbegriffe

Kommentar

<!-- Dies ist ein Kommentar -->

kann (außerhalb von Markup) überall im Dokument vorkommen

nicht in DTD deklariert

Processing Instruction

<?xml:stylesheet type=“text/xsl“

href=“stylesheets/print/xsl“ ?>

kann (außerhalb von Markup) überall im Dokument vorkommen

nicht in DTD deklariert

(10)

XML Namespaces (Namensräume)

Konflikte zwischen Elementnamen vermeiden

Präfix (kein Namespace)

<prefix:element>

z.B. <meinEMailProgramm:web>

<meinEMailProgramm:email>

Problem: Präfixe nicht immer eindeutig

Präfixe für Namespaces

<element xmlns:namespace-prefix="namespace">

<eag:email xmlns:eag=“http://www.aol.com/EmailAppGuy“>

email@machine.com

<eag:email>

Default Namespaces

<element xmlns="namespace">

Attributwert "namespace" sollte URI sein

Zweck: weltweit eindeutige Zeichenkette (selbst wenn dort nicht vorhanden)

(11)

XML PCDATA

XML Parser behandeln alle Daten außer CDATA-Blöcke als PCDATA (Parsable Character Data)

ungültige Zeichen “<“ und “&“

Zeichenersetzungen:

&lt; > less than

&gt; > greater than

&amp; & ampersand

&apos; ' apostrophe

&quot; " quotation mark

(12)

CDATA-Abschnitte

CDATA Abschnitt:

<![CDATA[ ‘ Inhalt ‘]]>

Interpretation: “Hände weg! Das hier soll nicht interpretiert werden!“

Textabschnitt wird nicht als mit Markups durchsetzt interpretiert

Beispiel:

<![CDATA [

<HTML>

Dies ist ein Beispiel für HTML für Dummköpfe!

<p> Es kann mühsam sein, in HTML ein Buch über XML zu schreiben, aber in XML ist es ganz einfach!

</HTML>

]]>

(13)

DTD

Document Type Definition

schematische Beschreibung des XML-Dokuments

<!ELEMENT myElement (PCDATA)>

<!ELEMENT yourElement (x*,y)>

<!ATTLIST myElement myatt CDATA #REQUIRED>

und Definition von Entities

Elemente dürfen verschiedene Eltern haben

Schema kann auch rekursiv sein

<!ELEMENT A (B*)>

<!ELEMENT B (A*)>

“Offenes“ Schema ist möglich (Kinder müssen aber deklariert sein)

<!ELEMENT X (ANY)>

(14)

DTD (Forts.)

DTD kann

extern sein

<!DOCTYPE root-element SYSTEM "filename">

und/oder intern

externe Definitionen werden überschrieben

<!DOCTYPE root-element [element-declarations]>

oder fehlen

Gültig: Dokumente, für die eine DTD definiert ist, heißen gültig (valid), wenn sie der in der DTD definierten Struktur entsprechen

Wohlgeformt: Dokumente, die gemäß XML

Empfehlung syntaktisch korrekt sind, heißen

wohlgeformt (well-formed)

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

(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

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

Gemischter Inhalt

<!ELEMENT element-name (#PCDATA | child)*>

Beliebiger Inhalt (ANY)

<!ELEMENT element-name ANY>

Kein Inhalt (leeres Element)

(18)

DTD Attribute

mit !ATTLIST definiert (Default)

<!ATTLIST ename aname atype adefault-value>

e = element, a = attribute

Beispiel-Definition

<!ELEMENT payment (#PCDATA)>

<!ATTLIST payment type CDATA "check">

<payment type="check">100 €</payment>

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>

(19)

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

(20)

DTD Weiteres Beispiel

<!DOCTYPE BOOKLIST [

<!ELEMENT BOOKLIST (BOOK)*>

<!ELEMENT BOOK (AUTHOR, TITLE, PUBLISHED?)>

<!ELEMENT AUTHOR (FIRST, LAST)>

<!ELEMENT FIRST (#PCDATA)>

<!ELEMENT LAST (#PCDATA)>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT PUBLISHED (#PCDATA)>

<!ATTLIST BOOK genre (Science | Fiction) #REQUIRED>

<!ATTLIST BOOK format (Paperback | Hardcover) “Paperback”>

]>

(21)

XML-Parser

/

<tag>

data attr

data

<tag>

<tag>

XML-Parser XML-Dokument

(22)

Document Object Model (DOM)

HTML und XML

Plattform- und sprachunabhängig

Dynamischer Zugriff und Manipulation von

Inhalt

Struktur

Eigenes Strukturmodell

repräsentiert die Baumstruktur eines XML- Dokumentes

einschließlich Kommentaren und Processing Instructions

Schnittstelle

nicht Implementierung

(23)

Spezifische Markup-Sprachen

Entwicklung standardisierter DTDs für spezialisierte Domains erlaubt Datenaustausch zwischen

heterogenen Quellen

DTD definiert Markup-Sprache für branchen- und anwendungsspezifische Semantik

Beispiel: Mathematische Markup Language (MathML)

Mathematische Sachverhalte im Web

In HTML: <IMG SRC=“xysq.gif” ALT=“(x+y)^2”>

Nachteil: Mangelnde Flexibilität bei der Präsentation (Font- Größe, Hintergrund-Farbe)

In MathML Presentation Elements, Content Elements Beispiel:

<apply> <power/>

<apply> <plus/> <ci>x</ci> <ci>y</ci> </apply>

<cn>2</cn>

(24)

XML-basierte Markup-Sprachen

ECML - Electronic Commerce Modeling Language

FpML - Financial Products Markup Language

Chemical Markup Language (CML)

Music Markup Language (MusikML)

Weather Observation Definition Format

Encoded Archival Description (EAD)

Tutorial Markup Language (TML)

Channnel Definition Format (CDF)

WebDAV: Distributed Authoring and Versioning on the WWW

Wireless Application Protocol (WAP)

...

(25)

XML in Anwendungen

XML Standards, Sprachen und Anwendungen:

Web Publishing

Electronic Commerce

Application-to-Application (A2A)

Business-to-Business (B2B)

Business-to-Consumer (B2C)

Elektronic Data Interchange (EDI)

Enterprise Application Integration (EAI)

(26)

XML in Anwendungen

Vokabulare und Frameworks für XML-Entwicklung

Electronic Business XML (ebXML) http://wwww.ebxml.org

XML initiative (OASIS)

BizTalk (Microsoft)

http://www.biztalk.org

cXML (Ariba)

Rosetta Net

http://www.rosettanet.org

XML/EDI Group

http://www.xmledi.com

(27)

zum e-Commerce

Company to Company (Supply Chain)

• EDI

• Punkt-zu-Punkt Lösung

• hoher Investitionsaufwand

• für Mittelstand ungeeignet

• Ablösung durch XML

• Standardisierte DTDs

• Können auch unilateral erweitert werden

• Standardwerkzeuge

Kunde Lieferant

Order Tracking

(28)

Management

XML impliziert keine bestimmte Präsentationsform

Unterschiedliche Präsentationen von XML-Dokumenten wird durch Style-Sheets ermöglicht

Hohe Flexibilität

Generischer Ansatz

Kunde Lieferant

Internet Suche

CD/DVD Print on Demand

Katalog- Management

(29)

Was ist XSL ?

eXtensible Stylesheet Language

Stylesheet Sprache für XML, sieht aus wie XML!

ausgeklügelter als CSS (aber auch CSS verwendbar)

XSL noch im Entwicklungsstadium

2 Teile

Transformation von XML in eine andere Art von XML (Transformationssprache XSLT)

Vokabular für Formatierugsobjekte (Formatting Objects)

Formatierungsobjekte

aus Textverarbeitung bekannte Konstrukte

Blöcke, Grafiken, Linien, Tabellen

FOs formen einen Baum = “Formatierungsobjektbaum“ als XML- Dokument

Vokabular z. Zt. noch in Entwicklung

XPATH als Anfragesprache zum Zugriff auf Bestandteile

Referenzen

ÄHNLICHE DOKUMENTE

 Ist in die XML-Datei eine XSL-Datei eingebunden, wird diese auch ausgeführt, sodass man das transformierte Dokument sieht. HTTP und Darstellung

www.deutschlandradio.de/seewetter oder kann sie im Radio auf Deutschlandradio und NDR-Info-Spezial hören. a) Schreiben Sie ein XML-Dokument, das einige Zeilen der im

Beispieldatei aus

_ Sowohl das shipTo- als auch das billTo-Element enthält immer ein Attribut type aus dem Namensraum http://www.w3.org/2001/XMLSchema-instance, jeweils mit dem Werten

Zu HTML Tags werden definierte Attribute für Darstellungseigenschaften gesetzt. • CSS-Datei getrennt von

Second, in case that an automatic password management is not possible for a service (e.g. in case that users need to enter a CAPTCHA to change a password), a PPD provides

– Variablen dürfen beliebige Objekte oder Sequenzen zugewiesen werden – Variablen können nachträglich nicht mehr geändert werden. – Variablen können optional

(Recording the containment information is crucial for calculating the similarity at the category level.) The query is formulated on the basis of high-level categories, and although