XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services...

44
XML DTD

Transcript of XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services...

Page 1: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML DTD

Page 2: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-TechnologieSyntaxNamensräumeXML-Integration in SoftwareWeb ServicesXML-Integration in DatenbankenElemente und AttributeEntitätenSchlüssel und VerweiseBedingte Abschnitte

Inhalte

Page 3: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Grundlegende SyntaxArchitekturStandardsSyntaxWohlgeformtheit und GültigkeitEntitätenCDATAStandard-AttributeSpracheLeeraumbehandlung

XML-Technologie

Page 4: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Technologie: Grundlegende Syntax

<parentElement> <element attribute=“value“>text node</element> <emptyElement attribute=“value“ /></parentElement>

Page 5: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Technologie: Architektur

• XML kann aus Software (direkte Datenerfassung über ein Formular oder Erzeugung über Programm-Logik) generiert oder auch aus einer Datenbank extrahiert werden. Diese XML-Daten können dann gegen eine DTD (Document Type Definition) oder ein XML Schema validiert werden.

• XML-Daten können in einer Zeichenkettenvariable, in einem Objektmodell wie dem standardisierten Document Object Model (DOM) oder in benutzerdefinierten Objekten (typischerweise über XML Schema-Bindung) oder in einer XML-Datei gespeichert werden.

• Nach dem Validierungsschritt oder unmittelbar nach der Erzeugung, können XML-Daten im Verarbeitungsschritt verwendet werden. Hier kann man XML abfragen oder in andere (Text-) Formate transformieren.

Page 6: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Technologie: Architektur

Wichtige W3C-Standards:• Extensible Markup Language (XML) 1.1 - http://www.w3.org/TR/xml11 • XML Schema Part 1: Structures - http://www.w3.org/TR/xmlschema-1/• XML Path Language - http://www.w3.org/TR/xpath20/• XSL Transformations (XSLT) - http://www.w3.org/TR/xslt20/• XHTML 1.0 - http://www.w3.org/TR/xhtml1/

Page 7: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Technologie: Standards

Die Illustration gruppiert verschiedene XML-Standards nach ihrer Primärfunktion wie Modellierung/Validierung oder Umwandlung. Die Standards in Grau sind durch das W3C (World Wide Web Consortium) spezifiziert, während die anderen durch verschiedene Typen von Organisationen vorgeschlagen und betreut werden.

W3C Standards sind grau hinterlegt.

Page 8: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax

Das Beispiel zeigt verschiedene Knotentypen in einem XML-Dokument und ihre Namen/Funktionen.

Page 9: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax Wohlgeformtheit und Gültigkeit

Ein XML Dokument muss wohlgeformt sein und kann im Validierungsschritt auf Gültigkeit für eine DTD oder eine andere Schema-Datei (XML Schema oder RelaxNG) geprüft werden.

• Wohlgeformtes XML: Ein XML Dokument ist wohlgeformt, wenn es den grundsätzlichen Grammatik-/Syntax-Regeln von XML entspricht. Beispiele: Korrekte Bezeichner, paarweise Verschachtelung von Ebenen, keine doppelten Attribute in einem Element, Attributwerte in Anführungszeichen.

• Gültiges XML: Ein Dokument ist gültig, wenn es den Einschränkungen einer DTD oder eines XML Schema-Dokuments folgt. Es wird dann eine Instanz dieses Datenmodells genannt.

Page 10: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax Entitäten

Die folgenden Zeichen sind in XML verboten und müssen durch Entitäten ersetzt warden:

&lt; Kleiner-als-Zeichen (<)

&gt; Größer-als-Zeichen (>)

&amp; Ampersand (&)

&apos; Apostroph (’)

&quot; Anführungszeichen (“ “)

Page 11: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax CDATA

Ein CDATA-Abschnitt ist Text, in dem eine Auszeichnung (Markup) auftritt, der nicht als solcher verarbeitet und interpretiert werden soll.

Er wird dann mit Fluchtzeichen versehen, sodass XML oder XML-ähnliche Daten als Text in einem XML-Dokument gespeichert werden können.

<Comment> <![CDATA[<greeting>Hello World!</greeting>]]></Comment>

Page 12: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax Standard-Attribute

Name Beschreibungxml:lang Sprache des Textknotens eines XML-Elements

xml:space Leerraumbehandlung durch den Parser

id Eindeutiger Schlüsselxmlns und xmlns:präfix Namensraum-Deklaration

<Comment id=“2“ xml:lang=“en“ xmlns=“http://example.org“>Hello World! </Comment>

Page 13: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax Standard-Attribute

Sprache

Das Attribut xml:lang gibt die Sprache des Elementinhalts und der Attributwerte an.

Es muss deklariert werden, wenn es genutzt wird. Die Sprachangabe ist gültig für die Kindelemente, solange kein überschreibendes xml:lang-Attribut (leer oder mit Sprachangabe) vorhanden ist.

Die Sprachangaben sind bspw. en, en-GB, en-US oder de, fr, es, it, etc.

Page 14: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Syntax Standard-Attribute

Leeraumbehandlung

Das Attribut xml:space kontrolliert die Leerraumbehandlung.

Es muss deklariert werden, wenn es genutzt wird.

Die erlaubten Werte sind default (die Standard-Leerraumbehandlung der Anwendung soll genutzt werden – typischerweise Entfernung von Leerraum) oder preserve (Überschreibung des Standardverhaltens, sodass Leerraum beibehalten wird).

Page 15: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Namensräume

Namensraumdeklaration mit dem xmlns-Attribut mit den folgenden Eigenschaften:

URI-Angabe, die innerhalb der Anwendung einzigartig ist, typischerweise Web-Adressen, die aber nicht existieren müssen.

Optionaler Präfix, der im qualifizierten Namen als Referenz auf den Namensraum verwendet wird.

Page 16: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Namensräume

Page 17: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Namensräume

Page 18: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Namensräume

Page 19: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Software

XML kann in Software als Input/Output-Format von gelesenen oder geschriebenen Daten genutzt werden.

Komplexe Konfigurationsdaten oder semantisch angereicherte Datenmodelle stellen fortgeschrittene Szenarien dar.

Page 20: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Software: Standards und Technologien

Die Illustration gruppiert Standards nach ihrem allgemeinen Typ und zeigt die Beziehungen untereinander an.

Die W3C Standards können fast überall in Software-Technologien verwendet werden, wobei jede Programmiersprache eine eigene Funktions-/Klassen-Bibliothek für die Verarbeitung von XML hat.

Quasi-Standards wie SAX und Technologien wie streamorientierten XML-Zugriff oder XML Schema/Klassen-Bindung sind in einigen, aber nicht allen Sprachen verfügbar.

Page 21: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Software: XML Schema-Bindung

Java (JAXB: Java Architecture for XML Binding) und .NET (XML Schema Definition Language Elements Binding Support) bieten einen Mechanismus für die direkte Bindung von XML Schema an Klassen und umgekehrt.

Dies erlaubt es, die Unterschiede zwischen XML und einer Objektstruktur zu vernachlässigen und bietet somit eine vereinfachte Integration von XML und eine De-/Serialisierung (un-/marshalling) von Objekten und XML.

Durch die Anwendung dieser Techniken wird XML nicht mehr als reines Dokument genutzt.

Page 22: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Software: XML Schema-Bindung

Page 23: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Software: XML Schema-Bindung

Page 24: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Web ServicesWeb Services sind eine Möglichkeit, Anwendungen zu integrieren, die auf verschiedenen Servern bereit gestellt oder in verschiedenen Programmiersprachen entwickelt wurden.

So baut man eine Service-Orientierte Architektur (SOA). Typische Web Services tauschen anwendungs-/servicebezogene XML-Nachrichten aus, die als XML SOAP-Nachricht verpackt und durch XML Schema beschrieben sind.

Der Service selbst wird durch WSDL (Web Services Description Language) beschrieben, wobei dieses Dokument entweder automatisch generiert oder tatsächlich bei der Anwendungsentwicklung manuell erstellt wird.

Neben dieser typischen und idealisierten Architektur gibt es viele verschiedene Varianten.

Page 25: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Web Services

Page 26: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Web ServicesDie XML-Nachrichten können direkt durch die entwickelte Software erzeugt oder automatisch durch ein Web Services-Framework bspw. aus einer Objektstruktur generiert werden. Diese greifen auf Klassendefinitionen oder XML Schema zurück, die dann Quelltext generieren, der bei Verwendung die Tatsache verbirgt, dass XML verwendet wird und der auch die XML-Nachrichten aus Objekten erstellt und umgekehrt. Verschiedene Ansätze sind hier vorhanden und hängen von der Plattform und Programmiersprache ab.

Page 27: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Datenbanken

Moderne relationale und objektrelationale Datenbanksysteme bieten XML-spezifische Fähigkeiten für die Speicherung, Abfragen und Manipulation von XML-Daten an.

Page 28: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Datenbanken: XML-Erstellung und Austausch

Import und Export von XML-Daten ist möglich durch:

Formulare von Web- oder Desktop-Anwendungen, die direkt die Datenbank über Technologien wie ADO.NET oder JDBC ansprechen, oder die indirekte Techniken wie Web Services anwenden.

FTP oder andere Technologien, die gesicherte öffentliche Ordner für Dateispeicherung/-übertragung anbieten, typischerweise in Kombination mit zusätzlicher Übertragungssoftware.

DB-Objekte wie Prozeduren/Funktionen oder Abfragen/Sichten, die XML-spezifische oder zumindest als Zeichenkette oder Binärdaten typisierte Parameter besitzen.

Page 29: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Datenbanken: XML-Erstellung und Austausch

Page 30: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Datenbanken: Speichertypen

Fünf typische Speichermodelle zur Integration von XML in relationale Datenbanken:

1. XML wird gar nicht direkt in der DB gespeichert, sondern nur Referenzen auf XML-Dateien, die dann wieder im Dateisystem liegen.

2. XML-Daten sind vollständig zerlegt und jedes Feld (ein Element mit Textknoten oder ein Attribut) wird einem DB-Feld zugeordnet.

3. Unabhängig von der relationalen Zuordnung können XML-Daten auch objektrelationalen Strukturen wie Objekttypen, die Unter-Felder und Sammlungen/Arrays von Objekten oder primitiv typisierten Feldern enthalten, zugeordnet werden.

4. XML-Daten werden in nicht-zerlegte Form in einem DB-spezifischen XML-Datentyp gespeichert. Zusätzliche Felder (bspw. Schlüssel) können optional in der gleichen Reihe für leichteren relationalen Zugriff gespeichert werden.

5. XML wird in Tabellen gespeichert, die nur aus dem DB-spezifischen XML-Datentyp gebildet werden.

Page 31: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

XML-Integration in Datenbanken: Speichertypen

Page 32: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Elemente und Attribute

Page 33: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Elemente: Kardinalität

Kindelemente können genau einmal, mindestens einmal oder beliebig oft nacheinander auftreten. Sie können auch optional sein.

Symbol Bedeutung Beschreibung+ 1..n Element tritt einmal oder beliebig häufig auf.? 0..1 Element tritt genau einmal oder nie (Element

optional) auf .* 0..n Element tritt niemals oder beliebig oft auf.Nichts   Element tritt genau einmal auf.

Page 34: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Elemente: Inhaltsmodelle

Ein Inhaltsmodell definiert den Inhalt eines Elements. Es kann andere Elemente und/oder Attribute, Textknoten oder Elemente und Textknoten (genannt „gemischter Inhalt“) enthalten. Ein Element kann leer sein oder beliebigen Inhalt besitzen.

Inhalt BeschreibungEin oder mehrere Elementnamen

Das Element enthält die Kindelemente mit einer Kardinalitätsangabe für jedes einzelne Kind.

#PCDATA Textknoten ohne genaue Datentyp-Angabe (in DTD keine Datentypen vorhanden).

#EMPTY Leeres Element wie <Phone />#ANY Beliebiger Inhalt

Page 35: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Elemente: Inhaltsmodelle

Page 36: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Attribute: Verwendung und Wert

Attribute können optional oder verpflichtend sein. Ihr Wert kann aus beliebigen Zeichenkettendaten bestehen oder auf einige Werte begrenzt sein. Der Wert kann auch fest sein oder einen Standardwert darstellen.

Schlüsselwort / Inhalt

Beschreibung

wert Die Wertangabe legt einen Standardwert fest, der dann gilt, wenn das Attribut fehlt.

#IMPLIED Keine explizite Angabe und kein Wert erforderlich.#REQUIRED Keine explizite Angabe, aber ein Wert erforderlich.#FIXED wert Fester Wert, der immer gilt.

Page 37: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Attribute: Verwendung und Wert

DatentypenDer Wert eines Attributs kann durch einen Datentyp beschränkt sein. Diese ent-sprechen allerdings nicht den üblichen Datentypen wie Zeichenkette, Zahl usw.

Typ BeschreibungCDATA Textinhalt ohne besondere Eigenschaften oder Einschränkungen.ENTITY In der DTD definierte Entität ENTITIES Leerzeichen-getrennte Liste aus EntitätenWerteliste Feste Menge an Tokens (zulässige Werte), die in einem Klammerausdruck

definiert werdenID Gültige XML-Bezeichner, die als Schlüssel fungieren (Primärschlüssel)IDREF Schlüssel-Verweis auf einen gültigen XML-Namen/Schlüsselwert, der in

einem id-Attribut gespeichert ist (Fremdschlüssel)IDREFS Leerzeichen-getrennte Liste an Schlüsselverweisen (mehrere

Fremdschlüssel)NMTOKEN Gültige XML-Bezeichner (kein Leeraum etc.) NMTOKENS Leerzeichen-getrennte Liste, die nur aus NMTOKEN-s bestehtNOTATION Notationsverweis z. B. Name einer Bilddatei

Page 38: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Entitäten

Interne Entitäten werden in der DTD deklariert und als Textbausteine im XML-Dokument benutzt.

Externe Entitäten werden ebenfalls in der DTD definiert, aber ihr Inhalt entstammt einer externen Datei. Sie enthalten die Schlüsselwörter SYSTEM (Referenz in das Dateisystem) oder PUBLIC (öffentliche Referenz) und einen URI.

Parameter-Entitäten funktionieren wie interne Entitäten, aber sie werden in der DTD für die Wiederverwendung von Definitionen benutzt.

Page 39: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Entitäten

Page 40: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Schlüssel und Verweise

Die DTD bietet verschiedene Datentypen für die Abbildung von Schlüsseln und Verweisen an. Sie gelten nur für Attribute.

ID: Schlüsselwert in einem Attribut

IDREF: Referenz auf einen existierenden Schlüssel in einem Attribut

IDREFS: Liste aus Schlüsseln (Token-Liste) in einem Attribut

Einschränkungen

Der Wert eines Schlüssels muss den lexikalischen Anforderungen eines unqualifizierten XML-Bezeichners entsprechen. Beispiele: kein Leerraum, keine Zahl als erster Buchstabe.

Der Schlüssel muss absolut eindeutig im gesamten Dokument sein. Weder das gleiche noch ein anderes Attribut darf denselben Schlüsselwert besitzen.

Page 41: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Schlüssel und VerweiseEin Schlüssel identifiziert ein Element in einem Dokument, während ein Schlüsselverweis auf einen solchen Schlüssel zeigt.

Im Beispiel sind Verweise als Pfeile von der Referenz (IDREF) zum Schlüssel (ID) dargestellt.

Page 42: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Schlüssel und Verweise

Eine Liste aus Schlüsselverweisen (IDREFS) enthält Referenzen auf jeden einzelnen Fremdschlüssel der Liste.

Die Referenzen in der markierten Liste im Beispiel zeigen auf die beiden Schlüssel im Dokument.

Page 43: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Bedingte Abschnitte

Deklarationen in IGNORE-Abschnitten sind von der Verwendung bei der Validierung ausgenommen, während INCLUDE-Abschnitte sehr wohl verwendet werden. In Kombination mit Parameter-Entitäten können so Deklarationen als bedingt angegeben werden, d. h. ein- und ausgeschaltet werden.

<![ IGNORE|INCLUDE [ declarations]]>

Page 44: XML DTD. XML-Technologie Syntax Namensräume XML-Integration in Software Web Services XML-Integration in Datenbanken Elemente und Attribute Entitäten Schlüssel.

Fragen & Antworten