Hochgeladen von Nutzer8794

Elektronisches-Publizieren_Summary

Werbung
Zusammenfassung Elektronisches
Publizieren
1 Intro
Besonderheiten klassischer Dokumente
•
•
•
Charakteristik:
o Hoher Anteil von freiem Text (ohne Kategorisierung, semantischer
Klassifizierung
o Bedarf nach speziellen Tools (Gliederung Navigation, Formatierung,
Volltextsuche…
Erheblicher Anteil von Wissen/Information steckt frei formuliert in (traditionellen)
Dokumenten und nicht formalisiert in Datenbanken (Wikipedia, wissenschaftliche
Literatur, …)
Uniforme Datenmodelle, Sprachen und Tools aus klassischer Dokumenten-Sicht und
aus Datensicht möglich: XML und XML-Technologie (XStack)
Nutzen von XML und XStack
•
•
•
•
Deskriptives Markup um klassische Dokumente und Daten einheitlich zu kodieren
(standardisiert durch W3C)
XML (eXtensible Markup Language) setzt deskriptives Markup standardisiert um
→ XML als Sprache zur Kodierung klassischer Dokumente und klassischer Daten sowie
aller Mischformen
→ XStack als Technologie zur Bearbeitung von XML-kodierten Dokumenten (lokal und
im Web)
Leistungen von XML:
o Kodierung von Dokumenten in XML
o Modellierung von XML Schema und anderen XML-basierten Schemasprachen
o Speicherung in XML-Datenbanken (verteilt möglich)
Leistungen des XStack:
o Aus Rohdaten generierte Visualisierung/Darstellung in Web-Browsern
o Bearbeitung mit XML-Technologie
2 Modellierung und Kodierung strukturierter Dokumente
2.1 Einordnung
Begriffe & Erklärungen im Zusammenhang mit XML
•
•
•
•
Document Engineering: Prinzipien und Praktiken zum Umgang mit Dokumenten, die
gewisse Qualitätskriterien sicherstellen
Freier Text/Fließtext: Textbestandteile, die keine eigene Kategorisierung oder
semantische Klassifizierung haben (text-orientierte Dokumente), stehen im Zentrum des
Document Engineering
XML als Sprache: Kodierung klassischer text-orientierter und daten-orientierter
Dokumente möglich
Eingebettetes Markup: Textbereiche werden mit den in den Text eingestreuten
Anfangs- und Endmarkierungen kategorisiert oder semantisch mittels Namen (->
Deskriptives Markup) markiert
1
•
Standardisierung/Plattformunabhängigkeit: XML und XStack ist standardisiert und
plattformunabhängig implementiert
2.2 Modell der strukturierten Dokumente und deskriptives Markup
Dokument Engineering aus zwei Domänen
•
•
Einfluss Publikationssysteme / technische Dokumentation:
o Anforderungen Flexibilität: Zugriffsmöglichkeiten, Verfügbarkeit, Single-Source
Publishing, Datenanalyse, Datenverarbeitung
o Strukturierte Dokumente als Ergebnis der Transformation von Struktur-Armut
zu reichhaltiger Struktur
Einfluss Datenbanksysteme:
o Anforderungen Flexibilität: Auflösung der Schema-Bindung
o Von strenger Strukturierung zu weicherer Strukturierung: semistrukturierte
Daten
Konzeptionelle/philosophische Sicht auf ein Dokument
•
•
Artefakt mit folgenden Charakteristika:
o Beliebiges Material (physisch/elektronisch, analog/digital, …)
o Hält und reproduziert (sprachliche) Information
o Lebenszyklus: unabhängig von Zeit und Ort
▪ Transportabel
▪ Dauerhaft
Im Document Engineering: Modell der strukturierten Dokumente
o Ursprünglich: Direkte Formatierung (z.B. kursiv) im Dokument
o Modell der strukturierten Dokumente:
▪ Markierung mit dem Grund direkt im Text (deskriptiv, logische Struktur)
▪ Tabelle mit Vorschriften zur Umsetzung der Markierungen (Stylesheet)
▪ Kombination von logischer Struktur und Stylesheet: Software für
Präsentation/Format
o Vorteile:
▪ Flexibilität
▪ Stabilität bei Veränderungen
▪ Konsistenz innerhalb eines Dokuments (nur 1 Regel je logischer Einheit
im Stylesheet)
▪ Konsistenz über Dokumente hinweg (1 Stylesheet für verschiedene
Dokumente
▪ Single Source (alternative Stylesheets für ein Dokument)
▪ Verarbeitbarkeit
Modell der strukturierten Dokumente
•
•
•
•
•
Prinzip: Trennung von Daten und Verwendungszwecken (wie Präsentation)
Ansatz: Ersetze im Dokument alle Information, die mit Verwendungszweck zu tun hat
o deskriptiv durch den inhaltlichen (semantischen) Kern dieser Information und
o durch (separierbare, wiederverwendbare) Vorschriften zu ihrer Bearbeitung
Besteht aus zwei Komponenten:
o (Text-) Inhalt, Inhaltstext
o Annotation / Markierung von Textbereichen mit semantisch bedeutsamer
(deskriptiver) Metainformation: (logische) Struktur
Kombinierbar mit separater, auswechselbarer Formatvorlage (Stylesheet)
Kombinierbar mit weiteren separaten, auswechselbaren und ausführbaren
Bearbeitungsvorschriften für Verarbeitung bis hin zu semantischer Interpretation
2
Umsetzung mit deskriptivem Markup
Anreichern von Fließtext / Rohdaten mit Markierungen für die Rolle / Bedeutung / Semantik
• Text-basiertes Format, mit eingebetteten Markierungen (Markup)
• Markierungen deskriptiv (mit Bedeutung)
• Selbstbeschreibung durch eingebettete Markierungen
• Freie, nicht durch Schema vorgegebene Strukturierung
• Integration von feien Textinhalten
• Trennen von Daten und Erscheinungsform / Verwendung
• Formatierte Darstellung durch Stylesheets
2.3 Deskriptives Markup für strukturierte Dokumente mit XML
eXtensible Markup Language (XML)
•
•
•
W3C recommedation
Dokumentenformat des W3C für Webdokumente
Markupsprache zur Kodierung von strukturierten Dokumenten mit eingebettetem,
deskriptivem Markup
Elemente, Attribute und Text
•
•
•
Elemente:
o benannt, Inhalte von Elementen und Text hierarchisch strukturiert
o Kodierung: Paare von öffnenden und schließenden Markierungen (Tags):
<name></name>
Attribute:
o Name-Werte-Paare als Attribution zu Elementen
o Kodierung: innerhalb von öffnenden Tags für Elemente:
erstelltAm = „2017-01-01“
Text:
o Folge von Unicode-Zeichen
o Speicherung im Uncode Kodierungsformat (standardmäßig UTF-8):
<?xml version=“1.0“ encoding=“UTF-8 ?>
Umsetzung Modell der strukturierten Dokumente
•
•
•
•
•
•
Umsetzung der Komponenten des Modells in XML:
o Inhalt: Text
o Struktur:
▪ Elemente
▪ Attribute
Freie Verwendung von Namen für Elemente und Attribute → deskriptiv
Freie Textfragmente ohne explizite Markierung erlaubt → text-orientierte Dokumente
Freie Textfragmente optional → daten-orientierte Dokumente
Flexible hierarchische Strukturierung beliebiger Breite und Tiefe
Kodierung mit eingebettetem Markup
Rolle von Elementen und Attributen in XML
•
Elemente als Haupt-Strukturierungsmechanismus
o Bestimmen die hierarchische, baumartige Struktur
o Können Unterelemente und Textinhalt enthalten: Container für Information
o Können durch Attribute weiter qualifiziert werden
o Können durch Attribute verlinkt werden
3
Syntax, Wohlgeformtheit von XML-Dokumenten
•
•
XML-Dokumente müssen bestimmte syntaktische Regeln einhalten
o Öffnendes und schließendes Tag (Ausnahme Leer-Elemente-Tag: <abc/>)
o Namen von Attributen innerhalb von Elementen müssen eindeutig sein
Die durch die Regeln bestimmte Wohlgeformtheit wird von Parsern (XMLProzessoren) überprüft
XML-Parser
•
•
•
Kernfunktionalität: Ja/Nein-Check der Syntax (Überprüfung der Wohlgeformtheit)
Abstraktion von syntaktischem Zucker
Zusätzlich Funktionalitäten:
o Pretty Printing, Syntax Highlighting
o API für Anwendungen
o Auswertung von DTD
2.4 Alternativen für Markup und Strukturierungen
•
•
•
Word
o
o
LaTeX
o
JSON
o
Markup deskriptiv, aber nicht eingebettet
Datenmodell nicht zugänglich
Deskriptives Markup nur bei oberflächlicher Betrachtung
Deskriptives Markup für Daten
Strukturierungsmechanismen in anderem Kontext
•
•
Datenbanken: Tabellen
OO-Programmierung: Klassen, Objekte
2.5 XML Namespaces
Warum XML Namespaces?
•
•
Konfliktpotential bei der Kombination von XML Vokabularien
Schaffung separater Namensbereiche durch Namensräume
Benennung von Namensräumen mit URLs
•
•
•
Kombination von einfachen Namen mit URL als Namensraum-Namen zur eindeutigen
Identifizierung
Namensraum-Namen/URLs sind nur Symbole
o URLs müssen nicht auf echte Ressourcen zeigen
o Domänen müssen nicht registriert sein
o Gleichheit als Zeichenkette zählt (Groß- und Kleinschreibung wird unterschieden)
Beispiele für standardisierte Namensräume:
o DocBook
http://docbook.org/ns/docbook
o XLink
http://www.w3.org/1999/xlink
o XSLT
http://www.w3.org/1999/XSL/Transform
Zuordnung von URLs zu Namen
•
Indirekte Zuordnung von Namen zu URLs über Präfixe
4
•
Beispiel:
Aspekte der Kodierung: Name und Scope
•
•
Name
o Erweiterter Name: Namensraum-Name + lokaler Name
o Qualifizierter Name: Präfix + lokaler Name (Präfix kann leer sein)
Gültigkeitsbereich (Scope) der Präfixdefinition
o Innerhalb des Elements, in dem das Präfix definiert ist (einschließlich des
Elements selbst)
o Überschreiben der Definition innerhalb der Elementhierarchie möglich
Default-Namensraum
•
•
Definition von leerem Präfix
Alle Elemente ohne Präfix innerhalb des Scopes gehören automatisch zum DefaultNamensraums
•
Definieren eines Default-Namensraums (lokaler Default):
o Mittels Attribute xmlns
o Überschreiben der Definition innerhalb der Elementhierarchie möglich
o Zurücksetzen auf anonymen Namensraum möglich über xmlns=““
Verwendung:
o Für Vokabular-Inseln
o Für das Haupt-Vokabular
•
5
Anonymer oder universeller Namensraum
•
Leeres Präfix ohne Definition: Anonymer oder universeller Namensraum
•
Jedes Element ist in einem Namenraum, im Zweifelsfall im anonymen/universellen
Namensraum
Attribute und Namensräume
•
•
Lokale Attribute: Gehören zu einem Element, das in einem Namensraum steht (indirekte
Namensraum-Zugehörigkeit)
o Attribut gehört zu dem Element, an dem es steht und das Element gehört zu
einem Namensraum
Globale Attribute: Gehören zu einem eigenen Namensraum (direkte NamensraumZugehörigkeit)
o Attribute mit Präfix
o Gehören zu einem eigenen Namensraum, unabhängig von dem Namensraum
des Elements, an dem es steht
o z.B. XLink-Attribute
2.6 XML Information Set und Baumdiagramme
Modelle für XML-Dokumente
•
•
Modelle bieten Abstraktion
o Weg von konkreter Syntax und deren Mehrdeutigkeiten (syntaktischer
Zucker)
o Hin zu den wesentlichen Komponenten: Elemente, Attribute, Text und ihre
Beziehungen → Konzeptuelle Sicht auf ein XML-Dokument
Wozu dient ein Modell für XML-Dokumente?
o Macht Konzepte klarer → Kommunikation
o Reduziert auf das Wesentliche → gut für Definition weiterer Sprachen wie
XQuery
o Grundlage für die Definition von APIs → vgl. Abstrakte Datentypen in der
Informatik
Konzeptuelle Sicht auf ein XML-Dokument
Was soll ein Modell für XML-Dokumente abbilden?
• Struktur von Knoten verschiedenen Typs (Elementknoten, Attributknoten, Textknoten)
• Hierarchie von Elementknoten und Textknoten
• Attributknoten (mit Namen und Werten) assoziiert zu Elementknoten
6
Baummodell
•
•
•
•
•
•
•
Hierarchische Struktur von Elementen und Textinhalten → Baumstruktur
Wurzelknoten/Dokumentknoten → Ovaler Knoten mit „/“ markiert
Element → ovaler Knoten, Name in Knoten
Text → eckiger Knoten, Textinhalt in Knoten in Anführungszeichen
Attribute → Eintrag in Tabelle am Element (zwei Spalten: Name und Wert)
Namen im anonymen Namensraum: ohne spezielle Markierung
Namen in benanntem Namensraum: {URI} Name
XML Information Set
•
Definiert ein Datenmodell für XML-Dokumente in Form von Komponenten (Information
Items / Knoten) mit Attributen für nähere Beschreibung der Komponenten selbst und der
Beziehungen
o „natürliches Infoset“: wird konstruiert aus wohlgeformten XML-Dokument nach
Parsen
o „künstliches Infoset“: wird direkt konstruiert oder entsteht als Ergebnis einer
Bearbeitung
7
•
Aufbau eines Information sets:
XML Information Set vs. Baumdiagramm
•
•
•
XML Information Set beschreibt, aus welchen Komponenten ein XML-Dokument
grundsätzlich besteht und in welcher Beziehung die Komponenten zueinander stehen
XML Information Set definiert keine Notation für konkrete XML-Dokumente
Baumdiagramme definieren graphische Notation für die Komponenten eines konkreten
XML-Dokuments und ihre Beziehungen
2.7 XDM
Abgrenzung zum XML Information Set / Baumdiagramm
•
•
•
XML Information Set / Baudiagramme: modellieren ganze XML-Dokumente
Bei Queries können Fragmente aus mehreren XML-Dokumenten vorkommen
→ Abgeschlossenheit des Datenmodells ist nicht gegeben
XDM erweitert XML Information Set um solche Fragmente
→ Abgeschlossenes Datenmodell für XPath, XQuery und XSLT
Datenmodell XDM
•
•
Beinhaltet:
o Konzeptuelle Sicht auf XML-Dokumente als Bäume von Knoten
o Konzeptuelle Sicht auf Daten als Sequenz von skalaren Daten und (Referenzen
auf) Knoten
Datum ist immer flache Sequenz von
o Einfachen Daten vom Typ number, string, boolean, …
o Referenzen auf Komponenten / Bestandteile eines XML-Dokuments: Knoten /
Information Items im Sinne von XML Information Set
2.8 Zeichenkodierung für XML-Dokumente: Unicode
Grundlegendes
•
•
•
Universeller Zeichensatz, der alle Schriften der Welt umfassen soll: Universal Character
Set (UCS)
Zeichentabelle/Codetabelle, die jedem Zeichen in UCS eine Position (Code Point)
zuordnet
Positionen als Hex-Ziffern angeben, Zeichen in zweidimensionaler Matrix arrangiert
8
•
•
National standardisierte Zeichensätze vollständig abgedeckt
Erlaubt simultane Verwendung verschiedener (nationaler) Zeichensätze in einem
Dokument
Organisation der Unicode-Zeichentabelle Ebene 0
•
•
•
•
•
•
Basic Multilangual Plane (BMP) bestehen aus den ersten 216 Zeichen
Strukturierung der Ebene in einzelne Kacheln
Beispiel: Kachel für ISO-Latin-1
o Jeder Code Point angegeben durch zwei Hex-Ziffern
o → 16 x 16 = 256 Code Points für Zeichen aus dem Alphabet
Kacheln wieder in 16 x 16 Matrix arrangiert, die wieder über 2 Hex-Ziffern adressierbar
sind
Code Point eines Zeichens in der Matrix durch 4 Hex-Ziffern ausgedrückt
→ zwei für die Kachel und zwei für die Position innerhalb der Kachel
Insgesamt 17 Ebenen (davon Ebene 0 BMP)
Unicode und XML
•
•
•
•
•
•
•
Unicode ist Zeichentabelle für XML
o XML-Standard definiert XML-Dokument auf unterster Ebene als Strom von
Unicode Zeichenpositionen oder Code Points
o Unicode-Zeichen können über Zeichen-Referenzen spezifiziert werden (z.B.
© und © spezifizieren Copyright Symbol über Code Point [in dezimal
bzw. hex])
Speicherform macht jedoch Gebrauch von Unicode Kodierungsformaten (Standard:
UTF-8)
→ Parser liest Daten in Kodierungsformat und generiert eine Sequenz von Code Points
XML Software muss wenigstens UTF-8 und UCS-2 (Dualzahlkodierung mit 4 Bytes)
verstehen
Jede XML Text entity muss eine Kodierung deklarieren
Default ist UTF8
Angabe alternativer Kodierungen: <?XML encoding="«encoding description»" ?>
Beispiele für encoding description:
o UTF-8
o UTF-16
o Verschieden ISO-standards
Kodierungstabelle vs. Kodierungsformat
•
•
•
•
Position in UCS-Kodierungstabelle ist eine Zahl ausgedrückt als Hex-Ziffer
Position kann unterschiedlich in Bits und Bytes kodiert werden
→ Kodierungsformat
Es gibt mehrere Kodierungsformate für Unicode
Einfache Kodierungsform: UCS-2 und UCS-4
o Dualzahlkodierung mit 16 bzw. 32 Bit
o UCS-2 kodiert nur Zeichen in BMP
Kodierungsformat UTF16
•
•
•
Stellt jede Position im Bereich 0 bis FFFF kanonisch durch Doppel-Byte dar (UCS2Transparenz)
Stellt Positionen im Bereich 10000 bis 10FFFF (20 Bits) mit Hilfe zweier
Surrogatpositionen dar
Kodewort nach UTF-16 ist
9
o
o
Ein Doppel-Byte (keine Surrogatpositionen), die Positionen gemäß
Dualzahlkodierung kodiert
Ein Paar von Doppel-Bytes (beide sind Surrogatpositionen), die Position über
zusammen 20 Suffix-Positionen kodiert
Kodierungsformat UTF8
•
•
•
•
•
•
•
Kodiert Positionen im Bereich
o Bis FFFF mit 1 bis 3 Bytes (deckt BMP ab)
o Bis 10FFFF mit 1 bis 4 Bytes (deckt Unicode ab)
o Bis 7FFFFFFF mit 1 bis 6 Bytes (außerhalb von Unicode, nie mit Zeichen belegt)
Transparent für Binärzahlen von 0 bis 127: kodiert in einem Byte mit höchstwertigem Bit
0
→US-ASCII-transparent
Übrige Binärzahlen kodiert durch Folgen von Bytes, von denen jedes das höchstwertige
Bit auf 1 gesetzt hat
Die Anzahl der auf 1 gesetzten Bits im 1. Block gibt die Anzahl an Blöcken an (inklusive
dem 1. Block) → Ausnahme: bei nur einem Block beginnt dieser direkt mit 0
Nach den 1en im ersten Block folgt eine Null
Jeder weitere Block beginnt mit 10
Schema:
o
7-Bit für Kodierung bei einer Einheit, 11 Bei zwei Einheiten usw.
Kodierung von XML
•
•
•
•
Zeichenstrom:
o XML-Sicht: Sequenz von Unicode-Zeichen
o Speichersicht: Sequenz von Bytes, Kodierungsformat
Markup:
o Repräsentiert Nicht-Inhalt (Metainformationen)
o Eingebettet in Inhaltstext
o Durch syntaktische Konventionen von Inhaltstext unterschieden
Tag:
o Spezielles Markup
o Repräsentiert XML-Element mit öffnendem und schließendem Tag
o Repräsentiert XML-Attribute in öffnendem Tag
Unterscheidung zwischen Kodierung und Darstellung (Sicht)
10
3 Schemasprachen für strukturierte Dokumente
Was sind Schemasprachen für strukturierte Dokumente?
•
•
Möglichkeit, das Vokabular der Strukturelemente für Anwendungsbereich zu
spezialisieren
In einem Schema / einer Strukturvorgabe, die in der Schemasprache geschrieben ist
Nutzen einer Schemasprache
•
•
•
•
•
Kommunikation: Eingrenzen der Freiheit des Vokabulars in einer Community / Domäne
Entwicklung spezieller Werkzeuge, z.B. DocBook
Überprüfung / Validierung von Vereinbarungen
Syntaxgestützte Eingabeunterstützung
Kenntnis der möglichen Strukturen kann Verarbeitung erleichtern
Schemasprachen und XML
•
•
Definieren der erlaubten Strukturen für eine Klasse von Dokumenten (Instanzen) mit
formalen Mitteln
Gegengewicht zur Freiheit des Vokabulars in XMLs
o Festlegen von:
▪ Vorrat an Strukturelementen und Attributen
▪ Vorschriften zu ihrer Kombination, auch in Bezug auf Text
▪ Definition von Integritätsbedingungen
Vorgabe vs. Instanzen
•
•
•
•
Schemasprachen definieren Vorgaben
Eindeutigkeitsanforderungen an Indexterme zur Identifizierung von Objekten (Schlüssel)
Integritätsforderung an Indexterme zur Referenzierung von Objekten (Fremdschlüssel)
→ systemgestützte Sicherstellung der referentiellen Integrität
Instanzen einer Vorgabe sind XML-Dokumente
Identity Constraints für XML-Daten
•
•
Übertragung der Idee von Schüssel/Fremdschlüssel auf hierarchisch strukturierte Daten
Z.B. über Datentypen xs:ID und xs:IDREF in XML Schema
3.1 XML Document Type Definition (DTD)
Grundsätzliches
•
•
Vokabular für Elementnamen und Attributnamen
Beziehungen von Elementen und Attributen einschließlich Identity Constraints werden
formal festgelegt mit Hilfe von
o Elementdeklarationen (Inhaltsmodellen)
o Attributdeklarationen
Konzepte
•
Inhaltsmodell (Content Model) definiert erlaubte Unterstrukturen (Elemente, Text) für
deklariertes Element
o Operatoren: , | + * ? ()
o Element Content: nur Elemente erlaubt
o Mixed Content: Text und Elemente erlaubt (#PCDATA | el1 | el2 | …)*
o Text Content: nur Text (#PCDATA)*
11
•
•
Deklaration von Element- und Attributnamen und
o Wertebereich / Typ
o Default-Wert (optional)
o Default-Regelung
Identity Constraints werden durch Typen ID und IDREF beschrieben
Syntax
•
•
Deklaration von Elementen: <!ELEMENT Name ContentModel>
o Content Model:
▪ Element Content: EMPTY, ANY, kombinierte Ausdrücke mit Operatoren
▪ Mixed Content: (#PCDATA), (#PCDATA | N1 | ... | Nx)*
Deklaration von Attributen: <!ATTLIST Name N1 W1 D1 … Nx Wx Dx>
o Name := Elementname
o N := Attributname
o W := Wertebereich (CDATA, ID, IDREF, (v1, …, vn), ENTITY)
o D := Defaultregel (#REQUIRED, #IMPLIED, v, #FIXED v)
Diskussion
•
•
•
•
DTD definiert Menge von konformen Dokumenten (Instanzen)
Beispiel: XHTML
DTD macht XML zu Metasprache für Markup-Sprachen
Zusätzliche Validität zur Wohlgeformtheit durch DTD
Doppelfunktion von DTDs
•
•
•
Strukturvorgabe
o Festlegung eines Vokabulars von Element- und Attributnamen und ihren
Verwendungsweisen
o Regeln für Aufbau der logischen Struktur von XML-Dokumenten mit Elementen
und Attributen (Instanzen)
Festlegung der KomponenRten eines XML-Dokuments, aus denen es physisch
zusammengesetzt ist (physische Struktur) → Entities
Anmerkung: logische Struktur definiert Struktur innerhalb von XML Dokumenten durch
Elemente und Attribute, die physische Struktur deren Komposition
3.1.1 XML Entities
Grundlagen
•
•
•
•
•
XML Dokumente sind physisch in Entities organisiert (Entitiy als Speichereinheit)
Gesamtes Dokument bildet eine Entity
Inkludiert untergeordnete Entities durch Entity-Referenz (z.B. ä)
Entities werden in der DTD definiert
Entities als Makro-Mechanismus
Einsatzzweck von Entities
•
•
Modularisierung
o Aufteilen großer Dokumente, z.B. Buch in Kapitel
o Abgestufter Gültigkeitsbereich
o Explizite Benennung, Redundanzvermeidung
Anpassbarkeit
o Überschreiben von Definitionen in DTDs
12
•
•
Wiederverwendbarkeit
o Abkürzungen
o Teildokumente
Plattformunabhängigkeit
Arten von Entities
•
•
Ersetzungstext kann intern (innerhalb der Definition der Entity) oder extern (z.B. über
Dateiname einer Ressource) definiert werden
Typen von Entities:
o General Entity: Expansion in Instanz (in DTD definiert, in Instanz verwendet)
o Parameter Entity: Expansion in DTD (in DTD definiert, in DTD verwendet)
Syntax
•
•
Generelle Entities:
o Intern: <!ENTITY AHK 'Alles für Hund und Katze'>
o Extern: <!ENTITY AHK SYSTEM 'ahk.ent'>
o Verwendung: &AHK;
Parameter Entities:
o Intern: <!ENTITY % text ´(#PCDATA | emph)*´>
o Extern: <!ENTITY % text SYSTEM 'text.dtd'>
o Verwendung: <!ELEMENT para %text;>
3.1.2 Typen in XML DTD
•
•
•
•
Strukturtypen implizit durch Kombination von Element- und Attribut-Deklaration
(anonym, nicht referenzierbar)
Datentypen sind vordefiniert und nicht erweiterbar
o Datentypen für Textinhalt von Elementen: #PCDATA
o Datentypen von Attributen: CDATA, ID, IDREF, ENTITY, ENTITIES, …
Nur eine Typdefinition pro Elementname
Deklaration nur unabhängig vom Kontext möglich (es gilt das Substitutionsprinzip für
Dokumente, die zu einer gemeinsamen DTD gehören)
3.2 XML Schema
Grundsätzliches
•
•
•
Standardisiert von W3C
Mächtigere Alternative zu DTDs
o Strukturierungsmöglichkeiten
o Datentypen
o Abbildbarkeit von Modellierungen (Vererbungskonzepte)
DTDs können mit Hilfe globaler Elementdeklarationen vollständig auf XML Schema
abgebildet werden (entsprich Salami Slice pattern)
Mächtigkeit durch lokale Elementdeklaration
•
•
•
•
DTD: nur globale Elementdeklaration möglich (→ Substitutionseigenschaft)
Reichhaltigere Strukturbeschreibungen, größere Mächtigkeit von XML Schema durch
lokale Elementdeklarationen
Elementnamen und Elementtypen werden durch lokale Elementdeklarationen entkoppelt
→ Mächtiger als DTDs durch lokale Elementdeklarationen
13
3.2.1 Typen, Datentypen und Strukturtypen
Typ
•
•
•
•
•
Menge von Werten (z.B. Typ der ganzen Zahlen)
Zu Typen gehören:
o Definition der zugehörigen Werte
o Repräsentation der zugehörigen Werte
o Gleichheitsregeln
o Methoden (z.B. Addition, Größenvergleich)
Typen in Schemasprachen: Datentypen und Strukturtypen
Typen sind unabhängig von Namen des Elements oder Attributs, dem sie zugeordnet
sind
Zuordnung von Typen zu Elementnamen bzw. Attributnamen erfolgt bei der Element/Attributdeklaration
Datentyp (in XML Schema: Simple Type)
•
•
•
•
Werte sind Zeichenketten: Strings mit bestimmten Bildungsgesetzen und
Gleichheitsregelungen
Anwendbar auf:
o Attribute
o Reinen Textinhalt von Elementen, die Attribute tragen
o Reine Textelemente (Elemente ohne Attribute und ohne Unterelemente)
Beispiele:
o Datentyp date mit Wert „2015-02-28“
o Datentyp decimal mit (identischen) Werten „7“ und „007“
XML Schema besitzt ca. 50 vordefinierte Datentypen
o xs:string
o xs:date
o xs:integer
o …
Strukturtyp (in XML Schema: Complex Type)
•
•
•
•
•
Werte sind
o Sequenzen von Unterelementen (bestimmten Typs), evtl. Durchmischt mit Text
oder reiner Inhaltstext
o Kombiniert mit Attributen
Spezialfall: Kein Inhalt, nur Attribute
Anwendbar auf Elemente
Analogien:
o Klassen, Record-Strukturen in Programmiersprachen
o Tabellen mit Festlegungen von Namen, Attributen, Constraints in
Datenbanksystemen
Strukturtypen benutzen Datentypen für Attributwerte und reinen Textinhalt
14
Exkurs: Definition von Inhaltsmodellen
3.2.2 Syntax
•
Elemente global, Attribute lokal
•
Typ global
•
Element lokal
3.2.3 Entwurfsmuster für Schemas / Strukturvogaben
•
Mögliche Kombinationen
o Elementdeklaration:
▪ Lokal (innerhalb von Typdefinition, nicht referenzierbar)
▪ Global (auf oberster Schema-Ebene, referenzierbar)
15
o
Typdefinitionen
▪ Lokal (innerhalb von Elementdeklaration, nicht referenzierbar)
▪ Global (auf oberster Schema-Ebene, referenzierbar)
3.2.4 Selbst-definierte Datentypen
Konstruktoren
Erlauben das ableiten von Nutzerdefinierten Datentypen aus bereits definierten Datentypen
• Restriktion:
o Ableitung aus Basis-Typ
o Entlang von typspezifischen Facetten
o „nützlichste Facette“: Pattern
• Listenbildung
• Vereinigung
Facetten
Arten von Facetten
• xs:enumerate
• xs:length, xs:maxLength, xs:minLength
• xs:pattern
• xs:whitespace value=”preserve|replace|collapse”
• xs:maxInclusive, xs:maxExclusive
• xs:minInclusive, xs:minExclusive
• xs:totalDigits, xs:fractionDigits
Pattern Facette
•
•
•
Syntax: <xs:pattern value=“\d{3}-[A-Z]{2}“/>
Muster (regulärer Ausdruck) im Attribut „value“ beschreibt Zeichenkette
Funktionssymbole: . \ ? * + { } ( ) [ ]
16
•
•
Atomare Muster (Zeichenkette der Länge 1):
o Zeichen, die keine Funktionssymbole sind
o Spezielle Zeichen: \n \t \\ …
o Wildcard Zeichen .
o Zeichenklassen: \s (Spaces) \d (Digits) \w (Word Characters) …
o Unicode Character classes/Blocks:
▪ \p{Cc} für Kontrollzeichen
▪ \p{Cc} für Nicht-Kontrollzeichen
o Nutzer-definierte Zeichenklassen
[a-z] [^a-z] [-^\\] [\-\^\\]
[-+] [+-] [\^] [\d\p{cC}]
[\p{isBasicLatin}-[\P{L}]]
Quantifizierer (nach Atomen und Gruppen)
o * + ? {n} {n,m} {n,}
o Vereinigungsoperator |
o Sequenzoperator (ohne Zeichen)
o Gruppenbildung mit Klammern ()
Konstruktor Restriktion
•
•
Definition neuer einfacher Typen durch Restriktion eines Basistypes über Werte für
Facetten
Syntax: Definition des Basistyps über Attribut base oder locale Typdefinition, eingebettet
in xs:restriction:
<xs:simpleType name="…">
<xs:restriction base="…">
<xs:pattern value="…"/>
<xs:maxExclusive value="…"/>
<xs:enumeration value="…"/>
<xs:enumeration value="…"/>
</>
</>
Konstruktor Liste
17
Konstruktor Vereinigung
4 Bearbeitung von Strukturierten Dokumenten
4.1 XPath
Grundsätzliches
•
•
•
•
•
Hauptfunktion: Adressierung von Teilen von XML-Dokumenten durch Navigation durch
die hierarchische Struktur (Nebenfunktion: Berechnungen allgemeiner Art)
„Mini-Query-Sprache“
Teilsprache von XQuery
Verwendet in XSLT, XLink, XForms, XML Schema, Schematron
Basiert auf XDM zur Beschreibung von Eingaben, Zwischenwerten, Ergebnissen
Beziehungen von Knoten zu Knoten
•
•
•
•
•
•
Eltern-Beziehung (parent)
o Von Element-/Textknoten zu Element-/Wurzelknoten in der übergeordneten
Hierarchiestufe
o Von Attributknoten zu Elementknoten, zu dem das Attribut gehört
Kind-Beziehung (child)
o Von Element-/Wurzelknoten zu Element-/Textknoten in der untergeordneten
Hierarchiestufe
Attribut-Beziehung (attribute)
o Von Elementknoten zu zum Element zugehörigen Attributknoten
Vorfahre (ancestor)
Nachfahre (descendant)
Identität (self)
Achsen in XPath
•
•
•
Beziehungen heißen in XPath Achsen → bestimmen die Richtung, in die navigiert wird
Achsen in XPath:
o parent, ancestor, ancestor-or-self
o child, descendant, descendant-or-self
o attribute
o self
o preceding, preceding-sibling, following, following-sibling
Achsen werden relative zu Kontextknoten (beliebigem Ausgangsknoten) interpretiert
18
Location Path-Ausdrücke in XPath - Schritte
•
•
•
Syntax für Step (oder Schritt): Achse :: Knotentest [Prädikat] [Prädikat] …
o Achse kann sein: child (default), parent, descendant, self, attribute (@) …
o Kontentest kann sein: Name, beliebiger Name (*), Typ (text(), node())
o Kombination aus Achse und Knotentest: self.node() (.), parent::node() (..)
Auswertung/Evaluation eines Steps ausgehend von einem Kontextknoten:
o Bestimmt eine Sequenz von Knoten über die Achse
o Selektiert daraus die Knoten, die den Knotentest bestehen
o Selektiert daraus für jedes Prädikat nacheinander die Knoten, die die Prädikate
erfüllen
→ Sequenz von Knoten gemäß XDM als Ergebnis
Beispiele:
Location Path-Ausdrücke in XPath – Pfade
•
•
•
•
Ein Pfad ist zusammengesetzt aus mehreren Schritten
Syntax:
o Relativer Pfad: Step / Step / …(Evaluierung beginnt beim Kontextknoten)
o Absoluter Pfad: / Step / Step / … (Evaluierung beginnt beim Wurzelknoten)
Auswertung:
o Falls absoluter Location Path Ausdruck: Wurzelknoten / Document Node wird
Kontextknoten
o Für ersten Schritt im Pfadausdruck Auswertung von Kontextknoten ausgehen,
führt zu Knotensequenz als Ergebnis
o Für jeden weiteren Schritt:
▪ Betrachte jeden Knoten in der Ergebnissequenz der Auswertung des
vorigen Schritts
▪ Werte den aktuellen Schritt mit diesem Knoten als Kontextknoten aus
▪ Hänge die Teilergebnisse zu einer großen Sequenz zusammen
Beispiele:
Abkürzungen
•
•
•
•
•
// für /descendant-or-self::node()/ (identisch zu .//)
. für self:node()
.. parent::node()
<nichts> für child::
@ für attribute::
Weitere Arten von Ausdrücken
•
•
Vergleiche: >, <, = (mit Booleschem Ergebnistyp)
Verknüpfung von Sequenzen mit | (oder)
19
Funktionen
•
•
•
•
•
count(sequence)
sum(sequence)
avg(sequence)
distinct-values(sequence)
Quantoren:
o Existenzquantor: some $x in (1, 2, 3), $y in (2, 3, 4) satisfies $x + $y = 4
o Allquantor: every $x in (1, 2, 3), $y in (2, 3, 4) satisfies $x + $y = 4
Konvertierungsregeln in Prädikaten
•
•
Prädikate evaluieren immer zu Boolschen Werten (Filterfunktion für Knotenkandidaten)
Automatische Konvertierung, wenn das Prädikat einen anderen Typen hat
o Zahl wird als Position interpretiert: [position() = 1] entspricht [1]
o Nicht-leere Sequenz wird als wahr interpretiert, z.B. sind äquivalent:
▪ //book [count(.//review) > 0]
▪ //book [.//review]
o Leere Sequenz wird als falsch interpretiert, z.B. sind äquivalent:
▪ //book [count(.//review) = 0]
▪ //book [not(.//review)]
o Ähnlich: leerer String → falsch, nicht-leerer String → wahr
Review
•
•
•
•
•
•
Sprache von Ausdrücken, mit denen Fragmente von XML-Dokumenten lokalisiert
werden können (Mini-Query-Sprache)
Schrittweises Navigieren durch Dokumentenbaum ausgehend von Kontextknoten
Abgeschlossenheit bzgl. Datenmodel
Komponierbarkeit bzgl. Ausdruckssprache
Lokalisierung durch Navigation in Dokumentenstruktur
XPath ist Teilsprache von XQuery
4.2 Xquery
Grundsätzliches
•
•
•
•
•
•
•
•
•
Abfragesprache für XML-Daten, vergleichbar mit SQL für relationale Daten
XML verallgemeinert Relationen → XQuery verallgemeinert SQL
Verwendet XPath als Teilsprache und als Komponente
XPath kann nur selektieren, aber nichts neu berechnen
Möglichkeiten mit XQuery
o Neu anordnen / sortieren
o Neu gruppieren / Container generieren
o Strukturen ändern / neue Strukturen erzeugen
o Beziehungen zwischen Teilen von Daten auswerten (klassisch in Datenbanken:
Joins)
o Daten ändern (Updates mit XQuery Update Facility)
Datenmodell XDM als Basis
Eingabe, Zwischenergebnisse und Ergebnis einer Query: Sequenz von Knoten
Berechenbarkeitsuniversell
XQuery is Read-only → Erst durch Update Facility bearbeiten von XML-Daten möglich
20
Prolog und XML-Ausdrücke
•
Zu Beginn eines XQuery files werden Version und Kontext definiert:
•
Template-Syntax erlaubt eingebettete Queries:
o Innerhalb einer Query ist XML-Element mit Inhalt möglich
o Innerhalb von XML Wechsel in XQuery-Syntax mit {}
o Beispiel:
FLWOR-Ausdruck
•
•
Enthält Klauseln For, Let, Where, Order by, Return
Beispiel:
•
•
•
•
For und Let können wiederholt werden und in beliebiger Reihenfolge vorkommen
Mindestens eine Klausel For oder Let muss vorkommen
Klauseln Where und Order by sind optional
Klausel return ist verpflichtend
XQuery Update Facility
•
•
•
•
•
•
Unterstützt lokale Änderungen von XML-Daten am Platz
Update-Primitive:
o delete node location
o insert node items
▪ into location
▪ as first into location | as last into location
▪ before location | after location
o replace node location with items
o rename node location as expression
mehrere Update-Primitive, getrennt durch Komma, möglich (z.B. in Return-Klausel eines
FLWOR-Ausdrucks
Verwendung in Funktionen: Markierung mit %updating, Verwendung in Return-Klauseln
Ergebnis eines Update-Ausdrucks: Liste von Pending Updates
→ Ausführung am Ende der Query in beliebiger Reihenfolge
21
XQuery Fulltext
Operationen und Ergänzungen in Klauseln zur Unterstützung von Volltextsuche (Wortstämme,
Nähe von Vorkommen, Ranking, …) im Scope von Strukturen
4.3 XSLT
Grundsätzliches
•
•
•
•
•
•
•
XQuery dient der Abfrage von Dokumentenbeständen
XSLT der Transformation von Dokumenten in andere Formate ( → Single-Source
Publishing)
Beispiele für Zielsprachen: XML, HTML, Text, …
Grundlage zur Navigation innerhalb von XML Dokumenten ist XPath
XDM ist das grundlegende Datenmodell
XSLT-Sprache:
o Deklarativ, berechenbarkeitsuniversell
o Mit XQuery das SQL für XML: XQuery als Abfragesprache, XSLT für die
Komposition von Ergebnissen und Aufbereitung text-orientierte Dokumente
▪ Cross-Media- und Multi-Channel-Fähigkeit
▪ Unterstützung von Single-Source Publishing
o XML-Syntax
XSLT-Prozessor
o Interpreter
o Arbeitet auf Datenmodell
XSLT Template
•
•
Basiskomponente eines XSLT-Programms
o Vergleichbar mit Prozedur
o Vergleichbar mit Return-Statement in FLWOR-Ausdruck von XQeury
Blaupause / Stempel für Ergebnis einer Teil-Transformation
o Gegeben als XML-Struktur
o Import von Inhalten aus Quelldokumenten über XPath-Ausdrücke
Befehle in XSLT Templates
•
•
•
Wörtliche Daten
o Text (alternativ mit xsl:text)
o Literal result elements, auch mit Attributen
Kommandos für eingabeabhängige und berechnete Daten
o xsl:value-of mit Attribut select (XPath-Ausdruck)
o xsl:copy-of mit Attribut select (XPath-Ausdruck)
o Konstruktion von Elementen und Attributen:
xsl:element mit Attribut name (XPath-Template)
xsl:attribute mit Attribut name (XPath-Template)
Kommandos zur Ablaufsteuerung
o xsl:if mit Attribut test (XPath-Ausdruck)
o xsl:choose mit Kinderlementen xsl:when und xsl:otherwise
o Schleife:
▪ xsl:for-each mit Attribut select (XPath-Ausdruck)
▪ xsl:for-each-group
22
Pull-Prinzip (navigierend, fill-in-the-blanks)
•
•
•
•
•
•
XSLT-Programm besteht aus einem einzigen Template
Anwendbar auf Wurzelknoten des Quelldokuments (match=“/“)
Zielstruktur wird statisch zusammengesetzt, mit Bausteinen aus Quelldokument
Mittel: xsl:value-of und prozedurale Anweisungen
Typisch für daten-orientierte Anwendungen
Beispiel:
Push-Prinzip (regel-basiert, input-orientiert)
•
•
•
•
•
•
Transformationsprogramm als Sammlung von Templates (z.B. pro Element) mit
Ergebnis-Skelett)
„Freistellen“ im Ergebnis-Skelett füllbar durch rekursiven Aufruf weiterer Templates,
gezielt für weitere Elemente relativ zum gerade bearbeiteten Kontextknoten
Aufruf eines Templates durch xsl:apply-templates
o Angabe welche Elemente bearbeitet werden
o Suche nach passendem Template für jedes Element
Vorgehen:
o Ein Template für /
o Ein Template pro Elementname
o Jedes Template schafft Ergebnis-Skelett und ruft darin an einer Stelle
<xsl:apply-templates> für die Kinder auf
o Unmodifizierte Übernahme von Textknoten
Charakteristika:
o Definiert Depth-first Navigation durch Eingabedokument
o Leichte Erweiterbarkeit
o Ähnlichkeit von Eingabe- und Ausgabestruktur
o Eignung für narrative, text-orientierte Dokumente mit unbegrenzter Tiefe
o Geeignet für text-orientierte Anwendungen mit Mixed Content
Beispiel:
23
Funktionale Programmierung (rekursiv)
•
•
Benannte und über Namen aufrufbare Templates mit Parametern
Turin-Vollständigkeit → berechenbarkeitsuniversell
Pipes and Filters Prinzip mit XSLT
•
•
•
Filters: Komponenten, die Datenströme verarbeiten (ein Eingabestrom und ein
Ausgabestrom)
Pipes: Komponenten, die Ausgabestrom eines Filters mit Eingabestrom eines anderen
Filters verbinden (first in first out), mit Unterstützung von Synchronisation und Pufferung
Anwendung im Document Engineering:
o XSLT-Programme als Filter
o XML als Repräsentationsform für Datenströme
o Unterstützung für Filter mittels Frameworks
Prozessmodell von XSLT
•
•
•
•
•
Ausführung eines XSLT Programms für Eingabedokument erzeugt Ergebnisdokument
Arbeitsauftrag: Konten im Eingabedokument + Einfügestelle im Ergebnisdokument
o Anwenden des XSLT-Programms auf Knoten im Eingabedokument erzeugt
Kontenstruktur, die an Einfügestelle das Ergebnisdokument eingefügt wird
Initialer Arbeitsauftrag: Wurzelknoten des Eingabedokuments + Einfügestelle direkt
unter dem Wurzelknoten des ansonsten leeren Ergebnisdokuments
Arbeitsaufträge werden in Top-Down-Reihenfolge abgearbeitet, beginnend beim initialen
Arbeitsauftrag
Abarbeiten eines Arbeitsauftrags:
o Auswahl von Template im XSLT-Programm, das laut Attribut match auf den
Eingabeknoten im Arbeitsauftrag passt
o Ausführung des Inhalts des Templates und Einfügen der erzeugten Knoten an
Einfügestelle
▪ Bei xsl:apply-templates: für jeden mit Attribut select ausgewählten
Eingabeknoten wir ein neuer Arbeitsauftrag generiert
Vergleich zwischen XQuery und XSLT
•
Charakteristika von Dokumenten in XML
o Text-orientierte, narrative Dokumente (→ XSLT zur Aufbereitung)
▪ Primär für das Lesen durch Menschen
▪ Verlagsprodukte, Webseiten, technische Dokumentationen, …
▪ Tiefe, sogar potentiell unbeschränkte Hierarchie
▪ Auch unmarkierte Textfragmente (Mixed content)
o Daten-orientierte Dokumente (→ XQuery zur Aufbereitung)
▪ Primär für die automatische Verarbeitung
▪ Datenbanksätze, Nachrichten, …
▪ Beschränkte Hierarchie
▪ Nur markierte Textfragmente
Profil XSLT
•
•
Deklarative Sprache für Transformationen
Typische Transformationen für Text- und Datendokumente:
o Umbenennung von Textstrukturen
o Verschieben und Duplizieren von Textstrukturen
o Generieren und Unterdrücken von Textstrukturen
o Sortieren
24
o
o
Filtern
…
5 XML-Technologien in Web-Anwendungen (Nicht
klausurrelevant)
XStack Architektur
•
•
Web-Browser als Clients mit folgenden Technologien:
o XHTML, SVG
o XForms
o XSLT
Server sind XML-Datenbank-Systeme hinter einem Web-Server mit folgenden XMLTechnologien
o XQuery mit Update Facility
o XSLT
Kommunikation
•
•
•
•
http
RESTful URLs
Austausch von XML-Daten in POST Requests und in Responses
Deklaratives Mapping von http Requests auf XQuery-Funktionen über RestXQAnnotationen
Eigenschaften
•
•
•
Kodierung von Daten durchgängig in XML [kein „Impedence Mismatch“ (Objekte auf
Datenbankstrukturen mappen)]
Standardisierte Sprachen zur Bearbeitung
Standard-konforme Implementierungen auf allen Plattformen
Alternativen
•
•
•
LAMP: Linux, Apatche, MySQL, PHP
MEAN: MongoDB, Express, Angular, NodeJS
MERN: MongoDB, Express, React, NodeJS
25
Powered by TCPDF (www.tcpdf.org)
Herunterladen