Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer

Ähnliche Präsentationen


Präsentation zum Thema: "XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer"—  Präsentation transkript:

1 XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
XQuery Wir stellen euch jetzt ein paar XML-Konzepte vor Wir haben das aufgeteilt und stellen es nacheinander kurz vor

2 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Einführung XML: erster Schritt zum „Semantic Web“ Dokumente  maschinenverarbeitbare Daten (Link-) Struktur des heutigen Webs muss noch für Maschinen verständlich gemacht werden Erstmal: was haben diese ganzen Konzepte mit dem Seminarthema zu tun?  XML: erster Schritt zum „Semantic Web“ Dokumente  maschinenverarbeitbare Daten verwandelt Struktur des heutigen Webs muss noch angepasst werden und dafür hat XML schon einmal ein paar Konzepte entworfen und teilweise standardisiert, wodurch Daten/Dokumente für die Maschine verständlich werden Elaine Bundscherer, Christian Klaffer, Steffi Neumann

3 XLink, XPointer und XPath
Man stelle sich das Web ohne Links vor …  XLink Verallgemeinerung des HTML-Links-Konzeptes Höhere Abstraktionsebene (gedacht für generelles XML – nicht nur Hypertext) mehr Ausdrucksstärke (viele verschiedene Richtungen, spezielles Verhalten, Linkbases, etc.) benutzt XPointer, um Quellen ausfindig zu machen XPointer Erweiterung von XPath, angepasst für das Verknüpfen (linking) spezifiziert Verbindungen zwischen XPath-Ausdrücken und URIs XPath deklarative Sprache, um Knoten und Fragmente in XML-Bäumen zu lokalisieren wird in XPointer (Adressieren), XSL (Mustererkennung), XML Schema (Einzigartigkeit und Scope-Deskriptionen) und XQuery (Selektion und Iteration) Ich fange mit den ersten drei Konzepten an: früher unter XLL: eXtended Linking Language. Diese Technologien sind standardisiert, aber noch nicht implementiert Da haben wir erstmal XLink, welches die Verallgemeinerung des HTML-Link-Konzeptes darstellt nur auf einer höheren Abstraktionsebene und mit mehr Ausdrucksstärke. XLink benutzt dabei XPointer, um Quellen ausfindig zu machen. Dann haben wir XPointer, welches eine Erweiterung von Xpath ist und Verbindungen zw. XPath-Ausdrücken und URIs herstellt Und schließlich XPath, um Knoten und Fragmente in XML-Bäumen ausfindig zu machen. Zu XML-Bäumen: später. XQuery vs. XPointer/XPath? Erinnern aneinander, haben aber unterschiedliche Ziele: XQuery: SQL-ähnliche Datenbankanfragen XPointer/XPath: Adressieren in Richtung bekannter Information Elaine Bundscherer, Christian Klaffer, Steffi Neumann

4 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPath Elaine Bundscherer, Christian Klaffer, Steffi Neumann

5 XPath - XML Path Language
Abfrage-Sprache zum Zugreifen/ zur Adressierung beliebiger Teile eines XML- Dokumentes W3C Standard vom November 1999 (XPath v1.0) XPath ist eine deklarative Sprache für: Adressieren (benutzt in XLink/XPointer und in XSLT) Mustererkennung (pattern matching) (benutzt in XSLT und in XQuery) XPath: ist eine nicht-XML Sprache, um bestimmte Teile eines XML-Dokumentes zu erkennen XPath zeigt dabei Knoten anhand ihrer Position, relativen Position, Typ, Inhalt und verschiedene andere Kriterien auf Elaine Bundscherer, Christian Klaffer, Steffi Neumann

6 Zugrundeliegendes Dokumentenmodell
usr etc home var dev ... bin lib ... no1 gast andere / Desktop nsmail Rest den Adressierungspfaden eines Dateisystems (Unix shell) ähnlich: z.B. („/usr/bin/...“) XPath betrachtet XML-Dokumente als Baumstruktur virtuelle Dokument-Wurzel wird angenommen  durch / repräsentiert (links von "/" (Dokumentenwurzel) steht nichts) XPaths sind den Adressierungspfaden eines Dateisystems ähnlich Man traversiert hier durch die Äste (Achsen bei XPath) und kommt zu den Blättern (Knoten bei XPath) Achtung: im XPath-Daten-Modell hat der XML-Dokument-Baum einen speziellen Wurzelknoten über dem Wurzelelement (Wurzelknoten ist nicht gleich dem Wurzelelement) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

7 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Baumstruktur & Knoten XML-Dokument wird als Baum mit Elementen, Attributen und Textinhalten als Knoten interpretiert XPath unterscheidet dabei folgende Knotentypen: Knotentypen wird selektiert mit Wurzelknoten / Elementknoten Elementname Attributknoten @attr Textknoten text() Namensraumknoten Verarbeitungsanweisungsknoten Kommentarknoten Elemente, Attribute und Textinhalte werden als Knoten interpretiert: und hier werden folgende Knotentypen unterschieden: Wurzelknoten, Attributknoten usw. Wurzelknoten enthält komplettes Dokument mit dem Wurzelelement, als auch Kommentaren und Processing instructions, die vor dem Wurzelelement-Anfangstag oder nach dem Wurzelelement-Endetag auftauchen Nicht selektiert werden: CDATA-Sektionen, Entity references und Dokumenttyp-Deklarationen  XPath arbeitet erst dann auf dem XML-Dokument, wenn all diese eben genannten in das Dokument „eingearbeitet“ wurden XML-Deklarationen, DOCTYPE Deklarationen und verschiedene Teile der DTD sind nicht durch XPath adressierbar Elaine Bundscherer, Christian Klaffer, Steffi Neumann

8 Location Path & Location Step
das zentrale Konstrukt von XPath (Pfad-Ausdrücke): location path, welcher eine Sequenz von Lokalisierungsschritten (location steps) darstellt, die durch / getrennt sind z.B.: child::sektion[position()<6] / descendant::zitat / attribute::href  selektiert alle href-Attribute in den zitat-Elementen in den ersten 5 sektionen eines Magazindokumentes absolute location path: /step1/step2 relative location path: step1/step2 Location step: axisname::nodetest[predicate] z.B.: child::sektion[position()<6] das zentrale Konstrukt von XPath ist der location path, welcher eine Sequenz von Lokalisierungsschritten (location steps) darstellt, die durch einen Slash / getrennt sind XPath: absolute Pfade (absolute location path) beginnen mit forward slash / z.B. /step1/step2 links nach rechts  lesen: „Folge dem Pfad von der Dokument-Wurzel zu Kind-Elementen step1 und von dort aus zu Kind-Elementen step2 “ relative Pfade (relative location path) beginnen mit einem Element oder Attribut z.B. step1/step2 Element step1 an beliebiger Stelle des XML-Dokumentes rechts nach links  lesen: „step2-Elemente, die Kind eines Elementes step1 sind“ Achse: wählt ein grobe Menge der in Frage kommenden Knoten (z.B. der Kindknoten des Kontextknotens) Prädikate: Prädikate (0 oder mehr) filtern eine Knotenmenge in eine neue Knotenmenge; von eckigen Klammern umgeben [ ]; ergeben Typ Boolean (An entire location path may be used as a predicate) Knotentest: Knotentest zum Erkennen eines Knotens innerhalb einer Achse; man führt einen Knotentest mit dem Namen oder (Knoten-)Typ aus Elaine Bundscherer, Christian Klaffer, Steffi Neumann

9 Achsen eines location step
Kind (child) Elter (parent) Nachkömmling (descendant) Vorfahr (ancestor) Nachfolgende Knoten (following) Vorherige Knoten (preceding) Nachfolgende Geschwisterknoten (following-sibling) Vorherige Geschwisterknoten (preceding-sibling) Attribut (attribute) Namensraum (namespace) aktueller Knoten selbst (self) Nachkömmling oder aktueller Knoten selbst (descending-or-self) Vorfahre oder aktueller Knoten selbst (ancestor-or-self) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

10 Pfad-Ausdrücke (abgekürzt)
. aktueller Knoten .. Eltern-Knoten des aktuellen Knotens * beliebiges Kind-Element des aktuellen Knotens ( Wildcard) @* beliebiges Attribut des aktuellen Knotens ( Wildcard) node() alle Elementtypen und beliebige Knotentypen ( Wildcard) // alle Elemente im Dokument, die das Kriterium erfüllen (selbst wenn sie sich auf verschiedenen Ebenen im Baum befinden) | Auswahl (Disjunktion) [ ] ein Element zusätzlich spezifizieren Beispiele:  „Kind-Elemente und Attribute des aktuellen Knotens“; aus /child::person[ attribute::born < 1950 ] wird Und hier gibt es die häufiger genutzte Variante der Pfad-Ausdrücke (Allgemein: „It‘s the URI that matters not the prefix“ . Kontext-Knoten: am meisten verwendet, um den Wert des aktuellen Knotens zu bekommen * findet keine Attribute, Text-Knoten, Kommentare oder Processing-instructions-Knoten //: auswählen aus den Nachkommenden Knoten des Kontext-Knotens, einschließlich des Kontext-Knotens selbst | mehr als ein Typ aber nicht alle WICHTIG: comment(), text() und processing-instruction() location steps werden anders adressiert Es gibt genau einen „Kontext-Knoten“ entspricht dem Arbeitsverzeichnis des Dateisystems genau wie im Dateisystem navigiert man von der aktuellen Position aus „vor“ und „zurück“ („cd xyz“, „cd ..“) aber: XPath kennt mehr als 2 Richtungen der Navigation!) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

11 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <dok> <!-- ein XML-Dokument --> <kap title=„Wann?"> <pa>Gestern</pa> <pa>Heute</pa> <pa>Morgen</pa> <pa>Nie</pa> </kap> <kap title=„Wo?"> <pa>Hier</pa> </dok> /dok selektiert das Wurzel-dok- Element /* selektiert jedes Wurzel-Element /dok/kap selektiert alle kap-Elemente innerhalb eines dok-Elements /dok/kap[1] selektiert das erste kap- Element innerhalb eines dok- Elements //pa selektiert alle pa-Elemente auf allen Ebenen (Vorsicht: langsam) selektiert alle Absätze des Kapitels „Wann?" Elaine Bundscherer, Christian Klaffer, Steffi Neumann

12 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XLink Elaine Bundscherer, Christian Klaffer, Steffi Neumann

13 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XLink XLink stellt eine Attribut-basierte Syntax dar, um einem XML-Dokument Elemente hinzuzufügen, die Verknüpfungen zwischen Quellen darstellen, Metadaten in Verbindung bringen und externe Dokumente verknüpfen benutzt XML-Syntax basierend auf Attributen, die in dem Namensraum „ liegen müssen  z.B. xmlns:xlink=“  Keine Elemente! seit Juni 2001 Empfehlung des W3C XLinks stellen eine Attribut-basierte Syntax dar, um einem XML-Dokument Elemente hinzuzufügen, die Verknüpfungen zwischen Quellen darstellen, Metadaten in Verbindung bringen und externe Dokumente verknüpfen ( benutzen dabei XML-Syntax) Das Nutzen von XLink Elementen und Attributen benötigt die Deklaration eines XLink Namensraums Elaine Bundscherer, Christian Klaffer, Steffi Neumann

14 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
HTML - Beschränkungen HTML - Links: Links werden mit Elementnamen identifiziert (a, img, etc.) Linksemantik in der HTML-Spezifikation ist genau festgelegt  XML sucht eine generische Lösung  es sollten abstrakte Semantikmerkmale erkannt werden HTML eingeschränkt  man braucht einen Mechanismus, um Inhalt zu referenzieren, nicht nur den Platz/Ort XLink bietet erweiterte Verhaltenseigenschaften, die das Hyperlinking flexibler machen (multiple Ziele, Rollen, Ressourcen und Reaktionen auf Elemente werden verknüpft) Das einfache Verlinken: einer der wichtigsten Gründe für den Erfolg des WWW Warum hat man da jetzt nicht einfach HTML-Links genommen, da es diese ja schon gibt? Und zwar wegen Eingeschränktheit von HTML XLink bietet erweiterte Verhaltenseigenschaften, die das Hyperlinking flexibler machen (Eingeschränktheit HTML - Links: Anker muss auf jedes Link-Ziel gesetzt werden (Probleme mit read-only Dokumenten)  es sollen aber relative Lokalitäten möglich sein (XPointer) Link-Definition muss in der selben Lokalität sein wie die Link-Quelle (outbound= „auslaufend“)  es sollen aber inbound (=einwärts) und third-party Links möglich sein Es kann nur zu einzelnen Knoten verknüpft werden  Links zu ganzen Baum-Fragmenten sollen möglich sein Ein Link hat immer eine Quelle und ein Ziel  es sollen Links mit vielen Quellen und Zielen möglich sein) HTML beschränkt; man braucht also einen Mechanismus, um Inhalt zu referenzieren, nicht nur den Platz/Ort Einschränkung: um zu einem best. Punkt zu verlinken, muss man in der Lage sein, dass Doc, zu dem man verlinkt, so zu modifizieren, so dass man einen benannten Anker an der Stelle einfügen kann Elaine Bundscherer, Christian Klaffer, Steffi Neumann

15 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Linkverhalten Überblick der Attribute type Art des Linkelements Type definition attribute href Adresse der Ressource Locator attribute role gibt der Ressource einen Namen   Semantic attributes arcrole Rolle dieser Kante title Linkname angeben  show Verhalten beim Ausführen/Verfolgen Behavior attributes actuate Anlass der Ausführung label interner Name   Traversal attributes from Linkquelle (Bezug auf label) to Linkziel (Bezug auf label) Link-Semantik Achtung: diese Begriffe des Linkverhaltens sind sehr abstrakt und machen nicht für alle Anwendungen Sinn xlink:show  Gibt an, wo die Ressource dargestellt wird: "new": in einem neuen Fenster "replace": im aktuellen Fenster und dieses ersetzen "embed": ins aktuelle Fenster integrieren xlink:actuate  Gibt an, wann die Ressource geladen wird: "onLoad": gleichzeitig mit dem Dokument "onRequest": nur nach Aufforderung Beachte: Sowohl für xlink:actuate als auch für xlink:show können eigene Werte definiert werden. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

16 Einfache und Erweiterte Links
für Kompatibilität und Schlichtheit einfache Links: einfache Verallgemeinerung von HTML-Links eingeschränkte Version der erweiterten XLinks: „Punkt A nach Punkt B“ werden bisher nur von wenigen Browsern unterstützt erweiterte Links: beschreiben eine Menge von Ressourcen zusammen mit ihrer Link-Struktur (Netzwerk) werden von keinem Browser unterstützt  stoßen auf wenig Akzeptanz! XLink unterscheidet zwei Kategorien von Links: einfache & erweiterte für Kompatibilität und Schlichtheit Einfache: Verallgemeinerung von HTML-Links; werden nur von einigen Browsern unterstützt (Mozilla & Amaya) Und dann gibt s noch die erweiterten Links; diese beschreiben eine Menge von Ressourcen zusammen mit ihrer Link-Struktur (Netzwerk) und werden bisher von keinem Browser unterstützt Alternative für erweiterte Links: RDF (Resource Description Framework) Mozilla: the Opensource browser has support for XLinks simple links Amaya: the W3C editor/browser now supports XLinks simple links too Viele XLink-Eigenschaften (z.B xlink:type oder xlink:show) können auch als Standard in der Schema-Definition spezifiziert werden Wann sollte man XLink nutzen? Unklar… Tim B.-L.: „nur für Hypertext-Linking“ Elaine Bundscherer, Christian Klaffer, Steffi Neumann

17 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel <meinlink xmlns:xlink=" xlink:type="extended"> <meinequelle xlink:type="locator" xlink:href="studierende.xml#Klaus" xlink:label="student"/> <meinequelle xlink:type="locator" xlink:href=„lehrkraefte.xml#Peter" xlink:label=„dozent"/> <meinbogen xlink:type="arc" xlink:from="student" xlink:to="dozent"/> </meinlink> Der Namensraum wird benutzt, um XLink Information allgemein in XML-docs zu erkennen; der Namensraum benutzt oft (aber nicht unbedingt) den Namensraumpräfix xlink alle XLink- Informationen sind in Attributen definiert (in Host-Sprache-Elementen) xlink:type="extended" deutet auf ein linking element hin xlink:type="locator" lokalisiert eine entfernte Quelle (lokale Quelle: xlink:type="resource" ) xlink:href-Attribut (ein XPointer-Ausdruck, der eine Quelle festlegt) xlink:type="arc" definiert Übergangsregeln (beschreibt Beziehung zw. Element und entfernter Quelle) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

18 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPointer Referenzen innerhalb Links XPointer ist im Prinzip ein XPath-Ausdruck, der in einer URI auftritt Elaine Bundscherer, Christian Klaffer, Steffi Neumann

19 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPointer XPointer ist eine Erweiterung von XPath, um bestimmte Plätze/Lokalitäten in XML-Dokumenten zu identifizieren (am Ende einer URI stehend) nicht XML-Syntax relatives Adressieren: erlaubt selbst das Verknüpfen zu Lokalitäten mit keinem Anker (#) flexibel und robust: XPointer/XPath-Ausdrücke überdauern oft Änderungen des Zieldokuments kann auf Teile einer Zeichenkette oder ganze Baumfragmenten zeigen Es wird wie bei XPath auch keine XML-Syntax genutzt Vorteile von XPointer sind: Das relative Adressieren, welches selbst das Verknüpfen zu Lokalitäten mit keinem vordefinierten Anker (#) ermöglicht Es ist flexibel und robust: XPointer/XPath-Ausdrücke überdauern oft Änderungen des Zieldokuments Und kann auf Teile einer Zeichenkette oder ganze Baumfragmenten zeigen Elaine Bundscherer, Christian Klaffer, Steffi Neumann

20 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPointer ⇄ XPath XPointer basiert auf XPath: ein XPointer-Ausdruck gleicht grundsätzlich einem XPath-Ausdruck XPath sagt nichts über URIs  XPointer spezifiziert diese Verbindung XPath-Ausdrücke bzgl. Kontext ausgewertet  XPointer spezifiziert diesen Kontext XPointer fügt XPath Funktionen/Eigenschaften hinzu XPointer basiert auf XPath: ein XPointer-Ausdruck gleicht grundsätzlich einem XPath-Ausdruck XPath sagt nichts über URIs  XPointer spezifiziert diese Verbindung XPath-Ausdrücke werden bzgl. Kontext ausgewertet  XPointer spezifiziert diesen Kontext XPointer fügt XPath Funktionen bzw. Eigenschaften hinzu Elaine Bundscherer, Christian Klaffer, Steffi Neumann

21 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPath-Erweiterung XPointer bietet als Erweiterung von XPath Operationen  Teile in einem XML-Dokument adressierbar, die vielleicht keinem Knoten entsprechen: Points (Punkte): Positionen in einem Dokument Ranges (Bereiche): die Information zwischen einem Punkte -Paar Locations: XPath Knoten + Punkte und Bereich(e) Location Set: eine geordnete Liste mit Locations XPointer bezieht sich nicht unbedingt auf ein einzelnes Element XPointer kann vielleicht keinen, einen oder mehrere Knoten erkennen Meistens werden zwar Elemente erkannt, aber auch Attribut- und Textknoten sowie Punkte und Bereiche können referenziert werden Elaine Bundscherer, Christian Klaffer, Steffi Neumann

22 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XPointer - Fragmente XPointer fragment identifier (die Teilzeichenkette rechts des # in einer URI) bietet drei verschiedene Formen zur Adressierung von Dokumentteilen: der Wert eines ID-Attributs in dem Dokument (ID-Attribute werden durch ein Schema spezifiziert) (Bare Names) eine Sequenz mit Nummernelementen, die den Pfad von der Wurzel an bis zu einem Element kennzeichnen; z.B. /1/27/3 (Child Sequence) eine Sequenz der Form xpointer(...) xpointer(...) ..., die eine Liste (typischerweise der Länge 1) mit XPointer-Ausdrücken enthält (Full XPointer) Die Teilzeichenkette rechts der Raute # in einer URI, auch XPointer fragment identifier genannt, bietet drei verscheidene Arten der Adressierung: schlicht mit dem Namen, mit einer Nummernsequenz, also das 3.Kindelement des 27.Kindelements usw.  siehe XPath-Ausdrücke, oder einem kompletten XPointer-Ausdruck, also xpointer(…). Jeder Ausdruck wird nacheinander ausgewertet und der erste, bei dem die Auswertung erfolgreich ist, wird verwendet (das erlaubt alternativen Pointern spezifizierbar zu werden und dadurch Robustheit zu steigern) XPaths, Bare names, Child Sequences können nur auf vollständige Knoten oder Knotenmengen zeigen Bare Names: es wird ganz einfach per Namen gezeigt Ausgestattet mit einem ID-type-Attribut eines Elementes, auf das gezeigt wird (z.B. ID-Attribut ist ein Attr., dass in der DTD einen ID-Typen haben muss Bare Names können nicht auf Elemente ohne DTD zeigend verwendet werden, denn ohne DTD haben diese auch keinen ID type Child-Sequence: eine Sequenz mit Slash (/) – getrennten Nummern, die für die schrittweise Navigation entlang der Achsen stehen Z.B. /1/2/5 lokalisiert das fünfte Kind des zweiten Kindes des Dokumentenelementes Full XPointers Einer von mehreren XPointer-Teilen (also können mehr als 1 sein) Teile werden von links nach rechts ausgewertet, bis einer erfolgreich etwas lokalisiert z.B.  Der erste Teil will ein Elementmit der ID chap1 finden; vielleicht missglückt das (vielleicht ist nämlich keine DTD vorhanden). Der zweite Teil will ein Attribut finden, dass “id” heißt und dessen Wert chap1 ist Elaine Bundscherer, Christian Klaffer, Steffi Neumann

23 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel Simple XLink und XPointer Beispiel <ABC xlink:type = "simple" xlink:href = " xlink:role = "w3chome" xlink:title = "W3C Home Page" xlink:show = "replace" xlink:actuate = "onRequest" > The W3C </ABC> Und ein anderes Beispiel: child::paragraph[position()=7] Ausgeschriebene XPath-Ausdrücke (unabbreviated) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

24 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XHTML Elaine Bundscherer, Christian Klaffer, Steffi Neumann

25 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Überblick Was ist das? Ist der Versuch HTML 4 mit XML „nachzubauen“ Wozu nachbauen? XHTML ist erweiterbar und syntaktisch 100%-ig kompatibel zu wichtigen XML-Standardsprachen wie SVG, WML, SMIL usw. gemeinsame syntaktische Grundlage auf XML-Basis  möglich, Skript- und Stylesheet-Sprachen zu vereinheitlichen Mehr Struktur für Maschinenverarbeitung gewährleisten Im Zuge von XML und seiner wachsenden Bedeutung für immer mehr Dateiformate, die auch im Web ihren Einsatz finden, entstand der Wunsch, auch HTML mit Hilfe von XML zu definieren anstatt wie bisher mit SGML  1. Pkt Strikter XML code  manche konventionen verschärft werden, zb end-tag für <p> <dt>, leere el wie hr müssen mit /> geschl werden, kleinbuchstaben Elaine Bundscherer, Christian Klaffer, Steffi Neumann

26 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
HTML-Varianten XHTML fordert gültigen Code in HTML-Dokumenten  W3C stellt drei DTDs bereit: XHTML-1.0-Strict: erlaubt nur sehr schlankes HTML (viele Elemente/Attribute zur Formatierung und Visualisierung von Texten fehlen  CSS-Stylesheets sollen verwendet werden) geeignet für neue HTML-Dokumente XHTML-1.0-Transitional: für umgewandelte alte HTML-Dokumente, die noch mit ausgemusterten Elementen/Attributen wie applet oder align=, bgcolor= arbeiten XHTML-1.0-Frameset: wie transitional, nur für Dokumente, die mit Frames arbeiten Zum Verwenden: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " Elaine Bundscherer, Christian Klaffer, Steffi Neumann

27 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
DTD-Einbindung Notation am Anfang einer HTML-Datei, um eine der Varianten zu benutzen: strict <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " transitional <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " frameset <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " Elaine Bundscherer, Christian Klaffer, Steffi Neumann

28 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Modularisierung Was ist das? Konzept der Modularisierung ermöglicht Erweitern und Abspecken von Dokumenten  XHTML 2.0 als modul-basiertes Sprachsystem entworfen mit XHTML 2.0 Trennung von XHTML 1.0 und HTML 4.0  nur noch strict-Sprachvariante HTML/XHTML decken also einerseits trotz ihres beträchtlichen Sprachumfangs nicht alle denkbaren Wünsche ab, und andererseits sind sie für manche Zwecke schlichtweg überdimensioniert. Aus diesem Grund gehen die Überlegungen des W3-Konsortiums in die Richtung, zumindest bei XHTML zu ermöglichen, dass sowohl abgespecktere als auch erweiterte Sprachvarianten davon möglich sind. Handy-Software könnte dann beispielsweise eine abgespecktere Sprachvariante interpretieren, während ein Mathematiker, der seine Arbeit publizieren möchte, XHTML um Elemente aus einer speziellen Auszeichnungssprache für mathematische Formeln erweitern kann. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

29 Die Module von XHTML 2.0 (Auszug)
Modulname Elemente Erläuterung Structure body head html title Elemente, die das Grundgerüst eines XHTML-Dokuments bilden Text abbr acronym address blockquote br cite code dfn div em h1 h2 h3 h4 h5 h6 kbd p pre q samp span strong var Block- und Inline-Elemente, die Text enthalten können und logische Auszeichnungen darstellen Hypertext a Anker und Verweise innerhalb des Dokuments List dl dt dd ol ul li nummerierste Listen, Aufzählungslisten und Definitionslisten Object object param Multimedia-Referenzen Presentation b big hr i small sub sup tt Modul für Elemente, die Text enthalten können und physische Auszeichnungen darstellen Elaine Bundscherer, Christian Klaffer, Steffi Neumann

30 Unterschiede HTML  XHTML 1/4
HTML-Wurzelelement mit Namensraumangabe Kleinschreibung HTML 4.01 <html> <!-- Inhalt der Datei --> </html> XHTML 1.0 <html xmlns=" Wert zu. Dies ist ein spezieller URI, der nicht dazu gedacht ist, eine aufrufbare Web-Adresse anzugeben, sondern lediglich das Schema der Web-Adressierung nutzt, um einen weltweit eindeutigen Namen für den Namensraum zu vergeben. die Adresse bedeutet nichts anderes als wenn man als Name festgelegt hätte: "Superduper-XHTML-Spezifikation HTML 4.01 <OBJECT DATA="Video.mpg" TYPE="video/mpeg" ALIGN="LEFT"></OBJECT> XHTML 1.0 <object data="Video.mpg" type="video/mpeg" align="left"></object> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

31 Unterschiede HTML  XHTML 2/4
Leere Elemente Elemente mit optionalem Abschluss-Tag HTML 4.01 <p>Text mit<br>Zeilenumbruch</p> <p><img src="bild.gif" alt="ein Bild"></p> XHTML 1.0 <p>Text mit<br />Zeilenumbruch</p> <p><img src="bild.gif" alt="ein Bild" /></p> HTML 4.01 <select name="Auswahl" size="1"> <option>1. Eintrag <option>2. Eintrag </select> XHTML 1.0 <option>1. Eintrag</option> <option>2. Eintrag</option> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

32 Unterschiede HTML  XHTML 3/4
Alleinstehende (leere) Attribute Verweise zu Ankern HTML 4.01 <td nowrap>Inhalt</td> <p>Text mit<hr noshade>Trennlinie</p> XHTML 1.0 <td nowrap="nowrap">Inhalt</td> <p>Text mit<hr noshade="noshade" />Trennlinie</p> HTML 4.01 <a href="#Anker">Verweis</a> <p>viel Inhalt</p> <a name="Anker">irgendwas</a> XHTML 1.0 <a id="Anker" name="Anker">irgendwas</a> Weisen Sie leeren Attributen in XHTML einfach ihren eigenen Namen als Wert zu. Bei den meisten bekannten Browsern gibt es damit keine Probleme. Notieren Sie in dem a-Element für den Anker beide Attribute id= und name=. Weisen Sie beiden Attributen exakt den gleichen Namen zu. Das gibt keine Probleme, da beide Attribute unterschiedliche "Namensräume" haben. Ein Browser, der den Verweis nach XHTML-Syntax ausführen will, benötigt das id-Attribut, während ein Browser, der den Verweis nach HTML-Syntax ausführt, das name-Attribut zur Ermittlung des Ankers verwendet. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

33 Unterschiede HTML  XHTML 4/4
Strengeres Einhalten des HTML-Grundgerüsts HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>Titel</title> <h1>Text</h1> XHTML 1.0 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " <html xmlns=" <head> <title>Text</title> <!-- gegebenenfalls andere Elemente im Kopfbereich --> </head> <body> </body> </html> Java-Script bzw CSS-Style-code in externen Dateien halten, da bestimmte Zeichen Probleme bereiten können („, <, > etc.) Elaine Bundscherer, Christian Klaffer, Steffi Neumann

34 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XML Base Elaine Bundscherer, Christian Klaffer, Steffi Neumann

35 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XML Base Was ist das? Ergänzung zum Verlinken von Dokumenten Kurze Spezifikation zum Festlegen einer Basis-URI für ein XML-Dokument Wie funktioniert das? Im Wurzelelement ein xml:base-Attribut mit der URI als Wert angeben Zusätzlich kann man in Kind-Elementen weitere base-Attribute angeben Basis-URI für ein bestimmtes Element und seine Kind-Elemente wird überschrieben Erleichtert Auflösen von relativen Pfaden in Dokumenten Elaine Bundscherer, Christian Klaffer, Steffi Neumann

36 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel <?xml version="1.0"?> <katalog xml:base=" xmlns:xlink=" <name>Schnuffel</name> <art>Wuergeschlange</art> ... <img src="schnuffel.jpg" alt="Bild" width="100" height="100" /> <fruehereBesitzer xml:base=" <li xlink:type="simple" xlink:href=" a.xml">Detlef</li> xlink:href=" d.xml">Gustav</li> xlink:href=" b.xml">Olaf</li> </fruehereBesitzer> </katalog> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

37 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XInclude Elaine Bundscherer, Christian Klaffer, Steffi Neumann

38 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XInclude Was ist das? Methode, um zur Laufzeit XML Dokumente in andere einzubinden Daten aus dem eingebunden Dokument werden „echter Teil“ des einbindenden Dokuments  ein einzelnes Dokument entsteht Wie funktioniert das? An gegebener Stelle ein leeres xi:include-Element mit dem Attribut href und der URI des einzubettenden Dokuments als Attributwert definieren Fallback-Funktion: Inhalt des xi:fallback-Elements wird ausgegeben, wenn kein Dokument an der einzubindenden URI gefunden wird Elaine Bundscherer, Christian Klaffer, Steffi Neumann

39 Beispiel (Ausgangsdatei)
<?xml version="1.0"?> <!DOCTYPE htm PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" xmlns:xi=" lang="en" xml:lang="en"> <head> <title>XInclude</title> </head> <body> <h1>Aktuelle Nachrichten</h1> <xi:include href="news.xml"> <xi:fallback>Fehler! News nicht gefunden.</xi:fallback> </xi:include> </body> </html> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

40 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel (news.xml) <h2>Schnuffel schlaegt wieder zu</h2> <p> Gestern Abend wurde das nunmehr 14. Wuergeschlangenopfer in Berlin-Kreuzberg aufgefunden. Unweit vom Tatort fand die Polizei Kriechspuren und konnte kurze Zeit spaeter die rueckfaellig gewordene Boa Konstriktor auf der Flucht stellen. Schnuffel befindet sich zur Zeit in Untersuchungshaft und wird Montag bis auf Weiteres dem Tierheim ueberstellt. </p> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

41 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Beispiel (Resultat) <?xml version="1.0"?> <!DOCTYPE htm PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" xmlns:xi=" lang="en" xml:lang="en"> <head> <title>XInclude</title> </head> <body> <h1>Aktuelle Nachrichten</h1> <h2>Schnuffel schlaegt wieder zu</h2> <p> Gestern Abend wurde das nunmehr 14. Wuergeschlangenopfer in Berlin-Kreuzberg aufgefunden. Unweit vom Tatort fand die Polizei Kriechspuren und konnte daraufhin die rueckfaellig gewordene Boa Konstriktor auf der Flucht stellen. Schnuffel befindet sich zur Zeit in Untersuchungshaft und wird Montag bis auf Weiteres dem Tierheim ueberstellt. </p> </body> </html> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

42 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XForms Elaine Bundscherer, Christian Klaffer, Steffi Neumann

43 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XForms - Einführung XForms ist die neue Auszeichnungssprache für Formulare im Web Sehr junge Entwicklung - W3C Working Draft vom 15. November 2004 „Die neue Formulargeneration für das WEB“ Elaine Bundscherer, Christian Klaffer, Steffi Neumann

44 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XForms - Einführung XForms trennt die Präsentation (Design) vom Inhalt (Zweck) Der wichtigste Unterschied zu anderen Markup-Formularen wird sein, dass XForms Zweck (was das Formular macht) und Präsentation (wie das Formular aussieht) des Formulars trennt Elaine Bundscherer, Christian Klaffer, Steffi Neumann

45 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XForms - Einführung data layer Erlaubt es, das Datenmodell für das Formular zu definieren. logic layer Erlaubt es, Abhängigkeiten zwischen einzelnen oder mehreren Feldern zu definieren. So darf zum Beispiel in einem Feld ein Wert eingetragen werden, nur wenn vorher ein anderes Feld ausgefüllt worden ist. presentation layer Besteht aus Markup für Kontrollfelder, die an ein oder mehrere Eingabefelder gebunden sind. Ändert man den Wert, so müssen alle anderen Felder aktualisiert werden. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

46 Serialized Data Sent to Server
User Serialized Data Sent to Server Instance Data Used In User Interaction Elaine Bundscherer, Christian Klaffer, Steffi Neumann

47 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery Elaine Bundscherer, Christian Klaffer, Steffi Neumann

48 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - Einführung Was ist XQuery? XQuery ist eine XML Anfragesprache The World Wide Web Consortium entwickelt mehrere Entwürfe für eine Anfragesprache aus noch einfachen Ansätzen wie XPath über XML-QL und Quilt, teils auch SQL, aus diesen Entwürfen entstand schließlich die XQuery Language W3C Working Draft vom Aktueller Standard : W3C Working Draft 29. Oktober 2004 Struktur FLWR-Syntax Sprachelemente Ausdrücke Elaine Bundscherer, Christian Klaffer, Steffi Neumann

49 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - Struktur Optionaler Prolog in dem Namensräume und Funktionen deklariert werden Anfragekörper – besteht aus Sequenz von Ausdrücken Elaine Bundscherer, Christian Klaffer, Steffi Neumann

50 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - Struktur Beispiel <R> { for $vari in document("own/hotel.xml")//gast/name/text() return <E>{ $vari }</E> } </R> Elaine Bundscherer, Christian Klaffer, Steffi Neumann

51 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - FLWR-Syntax FLWR steht für die Schlüsselwörter for, let, when, und return. In der FLWR-Syntax besteht XQuery aus Ausdrücken, die in ein beliebiges XML-Dokument eingebettet werden können. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

52 XQuery - Sprachelemente
for – zur (Schleifen-)Verarbeitung von einzelnen Elementen innerhalb eines XML-Dokuments let – zur Erstellung von Variablen und Zuweisung von Werten where – konditionale Anweisung, zusammen mit dem Schlüsselwort for verwendet return – zur Rückgabe von Werten an die aufrufende Instanz des Ausdrucks Elaine Bundscherer, Christian Klaffer, Steffi Neumann

53 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - Ausdrücke Literale, das sind Zahlen, Zeichenketten oder Wahrheitswerte. Pfade, diese werden verwendet um Koten im XML Dokument zu adressieren. Arithmetische und logische Ausdrücke, diese Ausdrücke können aus den arithmetischen Operatoren +, -, *, div, idiv und mod bzw. aus and und or erzeugt werden. Vergleichsausdrücke, von denen es 3 verschiedene Arten gibt, Vergleich von Werten, Knotenvergleich allgemeine Vergleiche Elaine Bundscherer, Christian Klaffer, Steffi Neumann

54 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
XQuery - Ausdrücke Konstruktoren, mit denen XML Strukturen durch eine Anfrage erzeugt werden können, diese werden in geschweiften Klammern notiert. Bedingungen, die in der Form "if" … "then" … "else" angegeben werden. Quantifizierende Ausdrücke, Existenzquantor dient XQuery "some„ Allquantor "every" Validierungsausdrücke, die dazu dienen einzelne Knoten zu überprüfen. Elaine Bundscherer, Christian Klaffer, Steffi Neumann

55 XQuery - Beispiel einer XQuery Anfrage
PSI-XQ - Der XQuery Demonstrator Beispiele ausführen von: Einfache Abfragen Teileinformation Ergebnis einschränken Sortieren Elaine Bundscherer, Christian Klaffer, Steffi Neumann

56 XQuery - Beispiel einer XQuery Anfrage
PSI-XQ - Der XQuery Demonstrator Beispiele ausführen von: Einfache Abfragen Teileinformation Ergebnis einschränken Sortieren Elaine Bundscherer, Christian Klaffer, Steffi Neumann

57 Elaine Bundscherer, Christian Klaffer, Steffi Neumann
Quellen W3schools: Young, Michael J.. XML - Schritt für Schritt. Washington: Microsoft Press W3C: W3C: The Semantic Web - Willey – Michael C. Daconta, et al. XML das bhv Taschenbuch – Wolfgang Bock XQuery eine praxisorientierte Einführung – Rudolf Jansen Elaine Bundscherer, Christian Klaffer, Steffi Neumann


Herunterladen ppt "XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer"

Ähnliche Präsentationen


Google-Anzeigen