XML

Transcription

XML
h_da WS 2014/2015
XML
Seite 1
XML Einführung
•
Beispiele und erste Definition
• Entwicklungsgeschichte – Kontext
• Spracheigenschaften
• Sprachelemente
• Sprachversionen XML 1.0 und XML 1.1
h_da WS 2014/2015
• XML-Sprachen (Auswahl)
Seite 2
XML – Beispiele und erste Definition
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2014
(http://www.altova.com)-->
<!DOCTYPE memo SYSTEM "D:\BACKUP\PAPERS\documents\example.dtd">
h_da WS 2014/2015
<memo id=“M050001“ confidential=“no“ >
<to>Müller</to>
<from>Maier</from>
<date>11.10.2014</date>
<subject>XML-Vorlesung</subject>
<para>Die nächste Vorlesung findet in einer Woche statt.</para>
<para> Wieder <![CDATA[< hier >]]> .</para>
</memo>
Seite 3
h_da WS 2014/2015
XML – Beispiele und erste Definition
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-16"/>
</head>
<body style="background-color:white; background-image:url(&quot;
file:///D:/activities/PAPERS/FH_XML/documents/hg.gif&quot;)">
<h1 style="border-color:RED; color:red; font-size:24pt; fontweight:bold">CSS
<span style="color:green; font-size:24.0pt; font-style:italic;
font-weight:bold">Beispiel</span>
<span style="color:red; font-size:24.0pt; font-weight:bold">
Seite</span>
</h1>
<p>
<span style="font-size:12.0pt">Saying What it Means: Semi-Automated
(News) Media Annotation</span>
</p>
</BODY>
Seite 4
</html>
XML – Beispiele und erste Definition
XML steht für “eXtensible Markup Language“.
Eine Auszeichnungssprache hat die Aufgabe:
•
die logischen Bestandteile (Elemente) und den strukturellen Aufbau eines
Dokuments zu beschreiben und Attribut-Werte-Paare der logischen Struktur
zuzuordnen. Der strukturelle Aufbau ist eine Baumhierarchie.
h_da WS 2014/2015
XML ist eine
•
Metasprache für Auszeichnungssprachen, d.h. eine Sprache mit der Sprachen
beschrieben werden können.
Seite 5
XML
Entwicklungsgeschichte – Kontext
Standardisierungsaktivitäten seit 1996.
Derzeit gültige Spezifikation vom Februar 1998, Version 1.0.
Extensible Markup Language (XML) 1.0 (Fifth Edition), 26 November 2008
XML 1.1 (second edition), W3C Recommendation, 16. August 2006 ,
h_da WS 2014/2015
XML 1.1 ist ein Update von XML , der
•
XML unabhängig von einer Unicode Version macht.
•
Bezieht Prüfung auf Normalisierung ein.
Seite 6
XML
Entwicklungsgeschichte – Kontext
Entwicklungen, die XML stark beeinflusst haben, sind SGML und HTML.
•
h_da WS 2014/2015
•
SGML: Standardized General Markup Language
HTML: HyperText Markup Language
Seite 7
XML - Entwicklungsgeschichte – Kontext: SGML
Hintergrund ist die Dokumenterstellung (Text-Dokumente) und die dabei auftretenden
Kompatibilitätsprobleme bei Austausch und gemeinsamer Bearbeitung.
Die Idee des “generalized markup”:
Markup soll die Struktur statt physische Eigenschaften beschreiben
Markup soll genau sein und unmissverständlich sein für Programme und
Menschen
(Goldfarb 1970)
Ausgangspunkt war DCF/GML von IBM (Document Composition Facility / Generalized
h_da WS 2014/2015
Markup Language)
Das Ergebnis (SGML) zeichnet sich durch
-
Funktionale Komplexität und
-
Syntaktische Komplexität aus
Seite 8
XML
Entwicklungsgeschichte – Kontext: HTML
h_da WS 2014/2015
Nachteile von HTML
-
Sehr viele “Layout”-Elemente in HTML (FONT, CENTER, BGCOLOR)
-
Sehr allgemeiner und beschränkter Satz von Elementen
-
Sehr wenig Strukturierungsmöglichkeiten
Seite 9
XML - Entwicklungsgeschichte – Kontext
Überwindung dieser Nachteile durch:
Trennung von Layout und Inhalts-Strukturierung
Als Sprache eine Vereinfachung von SGML
h_da WS 2014/2015
bessere Unterstützung von Link-Funktionalität (X-Link)
Formatierungssprache (XSL)
Seite 10
XML – Spracheigenschaften
XML ist:
• Einfach: Daten im XML-Format sind leicht lesbar, gut verständlich
• Offen: XML ist ein W3C-Standard
• Selbstbeschreibend: kein explizites Schema notwendig.
• Maschinell lesbare Kontextinformationen: Der Aufbau der Tags,
Attribute und Elemente bieten Kontextinformationen.
h_da WS 2014/2015
• Erweiterbar: Art und Anzahl der Tags sind nicht begrenzt.
Seite 11
XML – Spracheigenschaften
h_da WS 2014/2015
Der Begriff "erweiterbar" besagt, dass XML, im Gegensatz zu HTML,
nicht auf eine Dokumentstruktur festgelegt ist, sondern vielmehr die
Definition einer beliebigen hierarchischen Baumstruktur zulässt.
Seite 12
XML – Spracheigenschaften
Bei der Definition von Dokumenten soll es auch möglich sein,
Restriktionen der logischen Struktur festzulegen (z.B. welche
Elemente darf es geben)
h_da WS 2014/2015
Bei einem Dokumenttyp handelt es sich um einen Sammelbegriff für
Dokumente gleicher Struktur, ähnlich einer Klasse.
XML bietet die Grundlage für das Definieren verschiedenartiger
Dokumenttypen.
Seite 13
XML – Sprachelemente: grundlegende Syntax
Start- und End-Tags
Die hierarchische Struktur eines XML-Dokuments wird durch Tags
beschrieben.
Sie - wie auch in HTML - treten paarweise als Start- und End-Tags auf
und geben an, welche Rolle der dazwischen liegende Text hat.
h_da WS 2014/2015
Beispiel:
<xxx> ... Text ... </xxx>
Seite 14
XML – Sprachelemente: grundlegende Syntax
Im Gegensatz zu HTML ist XML „case-sensitive“, d.h. es wird
zwischen Groß- und Kleinschreibung unterschieden:
<xxx> und <Xxx> und <XXX> sind voneinander verschiedene Tags.
Wenn ein Tag als <xxx> definiert ist, dann darf man nicht stattdessen
<XXX> schreiben, und auch eine Kombination wie
h_da WS 2014/2015
<XXX> ... falsch ... </xxx>
ist syntaktisch nicht korrekt.
Seite 15
XML – Sprachelemente: grundlegende Syntax
Elemente können Attribute besitzen.
Sie werden im Start Tag nach dem Tag-Bezeichner als durch
„Whitespace“ getrennt Liste aufgeführt.
Werte von Attributen werden zwischen Quotes-Zeichen
eingeschlossen.
h_da WS 2014/2015
Dabei darf entweder das ASCII-Zeichen Double-Quotes " oder das
ASCII-Zeichen Apostroph ' verwendet werden (natürlich nur
paarweise, nicht vermischt).
<xxx yyy="zzz" AA ="1">
<xxx yyy='zzz' AA= '1'/>
Seite 16
XML - Sprachelemente
XML Bezeichner
•White Space Characters sind:
- Blank, Carriage Return, Newline, und Tab: (#x20 | #x9 | #xD | #xA)
h_da WS 2014/2015
Tag-Bezeichner und Attribut-Bezeichner sind Namen:
•
Name ::=
NameStartChar (NameChar)*
•
NameStartChar ::=":" | [A-Z] | "_" | [a-z] | “und sprachspezifische
Zeichen”
•
NameChar ::=NameStartChar | "-" | "." | [0-9]
Seite 17
XML – Sprachelemente: grundlegende Syntax
Start- und End-Tags
Alle Struktur-Elemente müssen durch paarweise Tags geklammert
werden. Ist kein Inhalt vorhanden, gibt es ein spezielles Tag für „leere“
Elemente:
h_da WS 2014/2015
<xxx/>
Seite 18
XML – Sprachelemente: Processing Instruction
<?
...
any text
...
beliebiger
Text
Die Processing Instruction darf nur Text enthalten
PIO
?>
PIC
Der Text wird von einem Verarbeitungssystem interpretiert
<? exec voice_recognition?>
h_da WS 2014/2015
<?xml version="1.0" encoding="UTF-8"?>
Processing Instructions können auch als Entities definiert werden.
Seite 19
XML – Sprachelemente: Kommentare
<!--
...
any text
CO
...
beliebiger Text
-->
CC
Beispiel für einen Kommentar:
<!-- declarations for <head> & <body> -->
Ein Kommentar darf nicht enden mit: --->.
h_da WS 2014/2015
Das Dokument ist in diesem Fall nicht well-formed.
<!-- B+, B, or B--->
Seite 20
XML – Sprachelemente: CDATA Sections
<![CDATA[ ...
any text
...
]]>
CDATA Sections: Syntax-Definition
[18] CDSect ::= CDStart CData CDEnd
[19] CDStart ::= '<![CDATA[‘
[20] CData ::= (Char* - (Char* ']]>' Char*))
h_da WS 2014/2015
[21] CDEnd ::= ']]>‘
Beispiel:
<![CDATA[<Hallo>Hello, world!</Hallo>]]>
Seite 21
XML – Sprachelemente: General Entity
<!ENTITY S
Name
S
EntityDef
GEO
S?
>
GEC
Beispiel für eine Entity Deklaration:
<!ENTITY Status "Das ist eine vorläufige Version">
h_da WS 2014/2015
Eine Entity Definition kann sein:
●
ein Literal (siehe Beispiel)
●
eine Entity Reference
Seite 22
XML – Sprachelemente: Entity Reference
& Name ;
Also, bezogen auf die vorhergehende Folie
&Status;
Ergibt an der referenzierenden Stelle wieder den Text
h_da WS 2014/2015
Das ist eine vorläufige Version
Seite 23
XML – Sprachelemente: Character Entity Reference
Character Entities sind eine Möglichkeit, beliebige Zeichen in XML
Dokumente einzufügen, indem man ihre UNICODE Nummer benutzt
anstatt sie direkt hinzuschreiben.
Beispiel:
<p> Das sind &#x201C;Doppel-Quotes&#x201D;.</p>
Ist in der Anzeige:
h_da WS 2014/2015
Das sind “Doppel-Quotes”.
&#xA9;
©
copyright
Seite 24
XML – Sprachelemente: External Entity (ungeparst)
<!ENTITY bild SYSTEM "/bilder/foto.jpg" NDATA jpeg>
EO
EC
bild: Name des Entities
SYSTEM / PUBLIC: Hinweis auf die Quelle des Entities
“ … “: Referenz auf den Inhalt des Entities
h_da WS 2014/2015
NDATA: Hinweis: Nicht interpretierbare Daten
jpeg: Name einer NOTATION-Anweisung (externe Anwendung)
Seite 25
XML – Sprachelemente: Notation
<!NOTATION S
Name
S
[SYSTEM|PUBLIC publicID]
resource S? >
NDO
NDC
Beispiel für eine Notation:
<!NOTATION jpeg SYSTEM "C:\\JPG">
h_da WS 2014/2015
Eine Notation ist ein Name für ein Format von Nicht-XML Daten.
Die Notation Deklaration stellt diesen Namen bereit.
Seite 26
XML – Sprachversionen XML 1.0 und XML 1.1
• XML 1.0 basiert auf Unicode 2.0, d.h. in Elementbezeichnern,
Attributnamen, Aufzählungswerten sind nur Zeichen aus Unicode 2.0
erlaubt.
• XML 1.1 ist unabhängig von Unicode-Versionen: Alle Zeichen in
Namen, die nicht verboten sind erlaubt.
h_da WS 2014/2015
• XML 1.0 hat die LineEnd Konventionen von Mainframe Computern
nicht unterstützt → Liste der LineEnd Zeichen wurde erweitert. (X85)
Seite 27
XML – Sprachversionen XML 1.0 und XML 1.1
XML 1.1 definiert Regeln für eine "full normalization". “Fully
normalized” Dokumente erlauben Identitätsvergleiche von Namen,
Attributwerten und Inhalt auf Binärbasis.
Text ist „fully-normalized“, wenn:
1. Ist in UTF-8, UTF-16 oder UTF-32 codiert, enthält keine Zeichen-
h_da WS 2014/2015
Escapes oder Includes, die diese Kodierung verletzen.
2. Ist der Text nicht Unicode codiert, und er wird transcodiert, erfüllt er
die Bedingung 1.
Seite 28
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
CC/PP
Description of capabilities and preferences
associated with a user and user agents. Servers
use this information to customize content.
CML
Chemical Markup Language
ebXML
Electronic Business XML. A standard for
electronic business.
FIXML
Financial Information Exchange XML for real time
security transactions.
Seite 29
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
ICE
Information and content exchange. Controlled
distribution of content to subscribers.
LOTP
Layered object transport protocol.
MathML
Mark up language for mathematical notation.
P3P
Platform for privacy preferences for websites that
gives users more control of their information on
websites.
Seite 30
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
RDF
Resource description framework for describing
object relationships to facilitate integration of a
variety of applications.
SCML
Service Creation Markup Language for scripting
next generation network services.
SMIL
XML for authoring interactive audiovisual
presentations.
SOAP
Simple object access protocol for accessing
objects and services on the web.
Seite 31
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
SVG
XML for describing two-dimensional vector and
mixed vector/raster graphics.
tML
Language for telecom network management.
UDDI
Language for registering and discovering services
on the Web
VoiceXML
Markup language for supporting telephone and
web speech applications.
Seite 32
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
WML
Wireless markup language designed for used with
the WAP protocol. It is intended for use primarily
with narrowband devices (low bandwidth
connectivity and small displays).
WSDL
Web Services Description Language.
WF-XML
Workflow interoperability specification language for
communicating data and workflow between
workflow applications.
WIDL
Web Interface Definition Language for automating
interactions with HTML/XML documents and
forms.
Seite 33
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
XHTML
XML based version of HTML.
LXML/EDI
XML for electronic data interchange.
XML Schemas (XSD)
Structure, content, and semantic definition of XML
documents.
XPath
Language for referring to parts of an XML
document (used in XLT, XQuery, …).
Seite 34
h_da WS 2014/2015
XML Sprachen
XML Dialekt
Beschreibung
XQuery
XML database query language.
XSL
Extensible style language for specifying how XML
documents should be viewed.
XMLP
Peer-to-peer communication.
Eine weitere Übersicht findet man unter:
http://de.wikipedia.org/wiki/Kategorie:XML-basierte_Sprache
Seite 35