HM: Grundkonzepte

Transcrição

HM: Grundkonzepte
Problemstellung …
Phänomen
o
o
Kodierung strukturierter Dokumente im Web
— XML Namespaces —
Kombination verschiedener Vokabularien
für Elemente und Attribute
in einer XML-Anwendung / einem XML-Dokument
Anwendung verschiedener Software-Komponenten
auf unterschiedliche Teile eines XML-Dokuments
Problem
o
o
Identifizierung
Namenskonflikte
(identische Namen, verschiedene Semantik)
Ziel: Friedliche Koexistenz verschiedener Vokabularien
Lösung auf DTD-Ebene? ― Problematisch!
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 1
… Problemstellung …
8.November 2006 ― 2
… Problemstellung
o
o
XML-Dateninseln in HTML-Code (Microsoft)
XForms-Formular-Elemente in HTML-Code
o
XSLT: Kodierung von speziellen Programmanweisungen und
allgemeinen Ergebnisfragmenten in einem XML-Dokument
o
Elektronisches Publizieren: XML Namespaces
(..\..\XFormsBeispiele\elementary.htm)
<template match="book">
<title><value-of select="bookTitle"/></title>
<copyRight>2003</copyRight>
</template>
<Katalog AutorIn="ABK">
<Titel>Neuanschaffungen Mai 2000</Titel>
<Buch>
<Titel>Green Eggs and Ham</Titel>
<AutorIn><Titel>Dr.</Titel><NName>Seuss</NName></AutorIn>
</Buch>
</Katalog>
XLink: Kodierung von Hypertext-Vernetzung über spezielle
XLink-Attribute in XML-Dokumenten
<song type="simple" href="targetURI">
Der Herbst, der Herbst, der Herbst ist da.
</song>
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 3
Elektronisches Publizieren: XML Namespaces
Funktion von Namensräumen
Namensräume in XML
o
o
o
Festlegung, von welcher Art ein benanntes Objekt ist
Angesichts der Mehrdeutigkeit von Namen
(Maria = Mensch; Urania = Mensch | Planet; Hektor = Mensch | Katze)
o
o
Namensraum umfasst Klasse von Objekten,
innerhalb derer Namen eindeutig sind
Aufgabe: Erkennung des Namensraums zu einem Namen
Mittel
o
In XML Namespaces
o
o
Syntax, Verwendungskontext
explizite Markierung
o
o
offener Namensraum (vgl. paket-interne Namen in Java)
Namensraum nur über Namen identifiziert
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 5
o
o
8.November 2006 ― 4
Je eigene Namensräume für Elemente, XML-Entitäten,
Fremddaten-Entitäten, Attributwerte, Notationen
pro Dokument / Dokumentenklasse (Gültigkeitsbereich)
o Zuordnung zu Namensraum über Syntax
Eigener Namensraum für Attribute pro Element
(Gültigkeitsbereich)
o Zuordnung zu Namensraum über Syntax
Je eigene universelle Namensräume für Datentypen und
Prozessanweisungen
o Zuordnung zu Namensraum über Syntax / Deklaration
o Vereinbarung der Semantik außerhalb von XML
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 6
1
Namensräume in Java …
… Namensräume in Java
o
o
o
Je eigene Namensräume für Methoden und Attribute
pro Klasse / Interface (Gültigkeitsbereich)
o Zuordnung zu Namensraum über Syntax
o Vererben, Überladen, Überschreiben, Verschatten
Dynamischer Namensraum für formale Parameter /
Variablen pro Methode / Block (Gültigkeitsbereich)
o Zuordnung zu Namensraum über Syntax
und Ausführungskontext
o Verschatten
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 7
o
Eigener Namensraum für Klassen / Interfaces
pro Paket (Gültigkeitsbereich)
o Zuordnung zu Namensraum über Anweisung package
und Qualifizierung über Paketnamen
o Kurzformen über Import-Mechanismus
Universeller Namensraum für Pakete
o Eindeutigkeit von Namen über strukturierte Namen in
Anlehnung an Internet Domains
o Auflösung des Namens
(Identifizieren des benannten Ordners) über
package-Deklarationen und classpath-Setzungen
Elektronisches Publizieren: XML Namespaces
Funktion von Namen
Funktionalität von XML Namespaces …
o
o
o
Software
o Referenz auf Software-Konstrukte
(Speicherbereiche, Codesegmente)
o Transparenz der Namen (außerhalb von Schnittstellen):
Information Hiding
Strukturierte Dokumente / XML
o Benennung von Dokumentenkonstrukten
(Elemente, Attribute, Entitäten)
o Referenz auf Definitionen dieser Konstrukte (DTDs)
o keine Transparenz der Namen, Veräußerung der Namen
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 9
o
o
o
o
Benennung von Namensräumen für Elemente und Attribute
mit URIs (vergleichbar mit Paketnamen in Java)
Markierung von Elementnamen mit Namensraumnamen
Z Differenzierung
Unmarkierte Attributnamen weiterhin elementspezifisch
Markierung von Attributnamen mit Namensraumnamen
Z Neu: Globale, elementunabhängige Attribute
(XLink-Attribute, prinzipiell auch title, lang, src in HTML)
Freie Zuordbarkeit von Elementen / Attributen über
Markierung mit Namensraumnamen (keine formale
Definitionsgewalt über Namensräume, Interoperabilität
durch Vereinbarung / Werkzeugunterstützung)
Elektronisches Publizieren: XML Namespaces
… Funktionalität von XML Namespaces …
… Funktionalität von XML Namespaces
o
o
o
Implizite Struktur eines Namensraums
o globale Elemente:
Zuordnung zum Namensraum über Markierung mit
Namensraumnamen
o globale Attribute:
Zuordnung zum Namensraum über Markierung mit
Namensraumnamen
o lokale Attribute für jedes globale Element im
Namensraum: Attribute des Elements ohne Markierung
mit Namensraumnamen
Anonymer, universeller Namensraum für Elemente ohne
explizite Namensraumzuordnung
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 11
o
8.November 2006 ― 8
8.November 2006 ― 10
Namenraum für Kataloge: http://www.catalogues.com
Namensraum für Bücher: http://www.books.com
Namensraum für Personennamen: http://www.names.com
<Katalog AutorIn="ABK">
<Titel>Neuanschaffungen Mai 2000</Titel>
<Buch>
<Titel>Green Eggs and Ham</Titel>
<AutorIn>
<Titel>Dr.</Titel><NName>Seuss</NName>
</AutorIn>
</Buch>
</Katalog>
Umsetzung in W3C-Empfehlung „Namespaces in XML 1.1“
(REC-xml-names11-20040204), vor allem Kodierung
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 12
2
Kodierung …
… Kodierung …
o
o
Markierung von Element- und Attributnamen mit
Namensraumnamen (URIs) indirekt über Präfixe,
an die über Deklarationen URIs gebunden werden
<cat:Katalog cat:AutorIn=´ABK´
xmlns:cat=´http://www.catalogues.com´
xmlns:bk=´http://www.books.com´
xmlns:nm=´http://www.names.com´>
<cat:Titel>Neuanschaffungen Mai 2000</cat:Titel>
<bk:Buch>
<bk:Titel>Green Eggs and Ham</bk:Titel>
<bk:AutorIn>
<nm:Titel>Dr.</nm:Titel><nm:NName>Seuss</nm:NName>
</bk:AutorIn>
</bk:Buch>
</cat:Katalog>
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 13
o
Gültigkeitsbereich 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
Binden des leeren Präfixes an Namensraumnamen (URI)
möglich (Defaultnamensraum)
o mittels des Attributs xmlns (ohne Doppelpunkt)
o Überschreiben der Definition innerhalb der
Elementhierarchie möglich
o Rücksetzen auf anonymen, universellen Namensraum
durch Definition xmlns=""
Elektronisches Publizieren: XML Namespaces
… Kodierung
Cross Check
o
o
o
o
Präfixe, die mit x,m,l in beliebiger Groß- oder
Kleinschreibung beginnen, sind reserviert
Das Präfix xmlns für Attribute zur Definition von
Namensraumpräfixen darf nicht definiert werden;
es ist gebunden an http://www.w3.org/2000/xmlns/
Das Präfix xml darf definiert werden,
aber nur mit vorgegebenem Wert
http://www.w3.org/XML/1998/namespace
o
o
o
o
o
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 15
Vererbung der Präfixdefinition,
nicht der Namensraumzuordnung
Begriffe: Namensraumpräfix, Namensraumname (URI),
qualifizierter (raw), lokaler, expandierter Name
Verschiedene Präfixe können an denselben
Namensraumnamen (URI) gebunden werden
Z Gleichheit der Element- bzw. Attributnamen
Es ist nicht möglich, ein Attribut ohne Präfix dem
Defaultnamensraum als globales Attribut zuzuweisen
Der anonyme Namensraum hat keine globalen Attribute
Mit minimalem Aufwand ein ganzes XML-Dokument einem
Namensraum zuordnen
Elektronisches Publizieren: XML Namespaces
Zusammenfassung …
… Zusammenfassung …
o
o
o
o
o
Namespaces werden über URIs identifiziert
(Namespace Name) [ + ein universeller anonymer NS ]
Jeder Element- oder Attributname in XML ist einem
Namespace zugeordnet
Die Zuordnung erfolgt über ein Präfix, das mit Hilfe eines
xmlns-Attributs an eine URI gebunden ist;
es ist möglich, das leere Präfix an eine URI zu binden
(Definition eines Default-Namensraum)
Die Bindung von Präfix an URI ist gültig für das Element, in
dem sie getroffen wurde, und für alle untergeordneten
Elemente, bis eine Umdefinition des Präfixes erfolgt
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 17
o
o
8.November 2006 ― 14
8.November 2006 ― 16
Elementnamen mit Präfix (qualifizierter Name) gehören zu
dem Namensraum, den das Präfix definiert
Elementnamen ohne Präfix, für die die Deklaration eines
Default-Namensraum gültig ist, gehören zu dem dort als
Default deklarierten Namensraum
Elementnamen ohne Präfix, für die keine Deklaration eines
Default-Namensraums gültig ist, gehören zu dem
universellen, anonymen Namensraum
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 18
3
… Zusammenfassung
Konformität XML Namespaces …
o
Nachrangigkeit von XML-Namespaces gegenüber XML
o Namespaces-konforme Dokumente müssen
XML-konform sein
o Validität: Ein Namespaces-konformes Dokument ist valide,
wenn es als XML-Dokument valide ist.
o erst XML-Prozessor, dann Namespaces-Prozessor
o validierender XML-Prozessor interpretiert nicht die
Indirektion von Namespace-Präfixen
o
o
Attributnamen mit Präfix (qualifizierter Name) gehören
als globale Attribute zu dem Namensraum, den das Präfix
definiert
Attributnamen ohne Präfix gehören als lokale Attribute zu
dem Namensraum des Elements, bei dem sie definiert sind.
Keine weitere Semantik, welche Namen in einem durch
einen Namensraum-Namen gekennzeichneten Namensraum
enthalten sind
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 19
Elektronisches Publizieren: XML Namespaces
… Konformität XML Namespaces …
… Konformität XML Namespaces
Syntax von XML Namespaces
o Namen von Elementen und Attributen in Namespaceskonformen XML-Dokumenten dürfen höchstens einen
Doppelpunkt enthalten. Der Teil vor dem Doppelpunkt
(falls existent) ist das Präfix. Präfixe müssen in einem
übergeordneten oder in demselben Element deklariert sein
o Alle anderen Namen (z.B. ID-Werte) dürfen keinen
Doppelpunkt enthalten
o Anwendungen wie XSLT und XML Schema nutzen
Namensraum-Markierungen auch in Attributwerten,
entgegen der ursprünglichen Intention
Z Nachhalten von Präfix-URI-Bindungen im Datenmodell
o
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 21
o
o
Ergebnis der Bearbeitung eines XML-Dokuments mit einem
Namespaces-Prozessor: Annotation der Elemente und
Attribute mit dem Namensraumnamen
o nicht standardisiert
o nicht in XML ausdrückbar
Gleichheit von Namen vor und nach Bearbeitung durch
Namespaces-Prozessor unterschiedlich
Namespace-Prozessoren integriert mit XML-Parsern,
Veräußerung von Namespace-Information über XML-APIs
Elektronisches Publizieren: XML Namespaces
Namespaces und DTDs
Bewertung XML Namespaces
Techniken zum Umgang mit Namespaces in DTDs
o Deklaration von Default-Namensraum als fixes Attribut
(geeignet für Dateninseln)
<!ATTLIST math xmlns CDATA #FIXED "…">
Verwendung <math>…</math>
(Beispiel)
o Referenzen in DTD (von außen überschreibbar)
<!ENTITY % dc-prefix "dc">
<!ENTITY % dc-colon ":">
<!ENTITY % dc-title
"%dc-prefix;%dc-colon;title">
<!ELEMENT %dc-title; (#PCDATA)>
o
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 23
o
o
8.November 2006 ― 20
8.November 2006 ― 22
Namespaces haben sich für gemischte Vokabularien
durchgesetzt (Beispiele XSLT, XLink, XML Schema)
Namespaces und DTDs sind nicht kompatibel
Bessere Kompatibilität von Namespaces und
Strukturvorgaben mit XML Schema oder Relax NG
Elektronisches Publizieren: XML Namespaces
8.November 2006 ― 24
4

Documentos relacionados