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(" file:///D:/activities/PAPERS/FH_XML/documents/hg.gif")"> <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 “Doppel-Quotes”.</p> Ist in der Anzeige: h_da WS 2014/2015 Das sind “Doppel-Quotes”. © © 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