XML DTD
XML-TechnologieSyntaxNamensräumeXML-Integration in SoftwareWeb ServicesXML-Integration in DatenbankenElemente und AttributeEntitätenSchlüssel und VerweiseBedingte Abschnitte
Inhalte
Grundlegende SyntaxArchitekturStandardsSyntaxWohlgeformtheit und GültigkeitEntitätenCDATAStandard-AttributeSpracheLeeraumbehandlung
XML-Technologie
XML-Technologie: Grundlegende Syntax
<parentElement> <element attribute=“value“>text node</element> <emptyElement attribute=“value“ /></parentElement>
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.
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/
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.
Syntax
Das Beispiel zeigt verschiedene Knotentypen in einem XML-Dokument und ihre Namen/Funktionen.
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.
Syntax Entitäten
Die folgenden Zeichen sind in XML verboten und müssen durch Entitäten ersetzt warden:
< Kleiner-als-Zeichen (<)
> Größer-als-Zeichen (>)
& Ampersand (&)
' Apostroph (’)
" Anführungszeichen (“ “)
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>
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>
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.
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).
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.
Namensräume
Namensräume
Namensräume
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.
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.
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.
XML-Integration in Software: XML Schema-Bindung
XML-Integration in Software: XML Schema-Bindung
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.
Web Services
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.
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.
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.
XML-Integration in Datenbanken: XML-Erstellung und Austausch
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.
XML-Integration in Datenbanken: Speichertypen
Elemente und Attribute
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.
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
Elemente: Inhaltsmodelle
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.
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
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.
Entitäten
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.
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.
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.
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]]>
Fragen & Antworten