XML: „ Anfrage- und Transformationsprachen“

 

                                   

                                  

                                    THEMA

 

Grundlagen von XML

 

 

 

 

 

 

 

 

 

 

 

 

 

Köhler Alexander

Matrikelnummer: 848075       

10.Semester

 

 

                     XML
 Die eXtensible Markup Language

 

                                                                                                                      Seite

1 Was ist XML .............................................................................3

2 Wie verwendet man XML..........................................................4

3 XML-Beispiel.............................................................................4

4 Welche Vorteile hat XML im Vergleich zu HTML?.................6

    4.1Tags stellen Semantik der Daten dar....................................6

    4.2 XML erlaubt baumartig strukturierte Daten und die Definition von            

          anwendungsspezifischen Tags.............................................6

    4.3XML stellt „ reine“ Daten zur Verfügung.............................6

5 Grundlagen von XML.................................................................7

   5.1 XML hat sieben Grundtypen zur Informationsbereitstellung

   5.1.1 Elemente.............................................................................7

   5.1.2 Attribute.............................................................................12

   5.1.3 Entities...............................................................................16

   5.1.4 Kommentare......................................................................17

   5.1.5 Prozessanweisung..............................................................17

   5.1.6 CDATA-Sektionen............................................................18

   5.1.7 Prolog.............................................................................…18

   5.2 XML Linking Language (XLL)……………………………19

   5.2.1Xlink……………………………………………………....19

   5.2.1.1Simple Links...............................................................…..19

   5.2.1.2Extended Links...........................................................…..19

   5.2.2Xpointer.........................................................................…..19

   5.3Wohlgeformtheit.....................................................................20

   5.4Gültigkeit.................................................................................20

   5.5 Parser......................................................................................21

   5.5.1XML-Parser..........................................................................21

   5.5.1.1 nicht validierender parser.................................................21

   5.5.1.2 validierender parser..........................................................21    

 

 

 

 

 

 

 

  

                         XML
 Die eXtensible Markup Language

 

 

 

 

1 Was ist XML

 

 

XML ist eine Tagsprache zur Beschreibung von Baumstrukturen und Nachfolger von SGML.

 

Die Spezifikation steht unter folgender URL:                                    

http://www.w3.org/TR/2000/REC-xml-20001006

 

 

Genauer:

 

XML ist eine Untermenge von SGML, die die Definition von Dokumenttypen durch DTD’s und die Definiton von Präsentationsregeln in der Extended Style-Sheet Language XSL erlaubt

 

 

Die XML-Dokumente können sich auf vorgegebene, standardisierte DTD‘s beziehen (z.B. HTML), eigene DTD‘s verwenden und mit XSL anwendungsspezifische Regeln für die Darstellung definieren

 

DTD‘s und Präsentationsvorlagen (style sheets) sind im Dokument enthalten oder über Link (URL) an definiertem Ort (Web-Server,...) verfügbar.

 

 

 

 

 

 

2 Wie verwendet man XML

 

 

Konzept der Trennung von Inhalt,Struktur und Darstellung

 

 

Inhalt:

            - das XML-Document enthält die ausgezeichneten Inhalte (*.xml)

 

Struktur:

            - die Struktur eines XML-Dokuments ergibt sich bereits durch die Auszeichnung

 

Darstellung:

- die Formatierungsinformation wird außerhalb des Dokumentes festgelegt (*.css,     *.xsl)

 

 

 

 

 

3 XML-Beispiel

 

Ein XML-Beispiele um den Aufbau eines XML-Dokumnets zu veranschaulichen.

 

1.       <?xml version =“1.0“?> 

2.       <!DOCTYPE Kontoliste SYSTEM  “grammar.dtd“>

3.       <?xml-stylesheet type=“text/xsl“ href=“style.xsl“ ?> 

4.       <!– This is a comment -->    

5.       < konto title = “Kontoliste“>

6.       Enthält Kontoliste in <![ CDATA [<?XML !]]>

7.       <kunde>

8.       <name>company_xy.de </name>      

9.       <email> mail&at;company_xy.de</email</kunde>

10.  </konto>

 

 

 

 

 

 

 

 

 

 

 

 

 

Erläuterung der einzelnen Zeilen:

 

 

 

Zeile1.: Enthält die XML-Deklaration. Diese gibt an, dass das was ihr folgt ein XML-     Dokument  ist. Dieses Dokument soll der Version 1.0 des XML-Standards entsprechen.

 

Zeile 2.: Enthält eine Dokumenttypdeklaration. Diese deklariert welche Art  von XML-Dokument folgt und gibt die DTD an. Am Schlüsselwort System erkennt man, dass es sich hier um eine externe  DTD-Anweisung handelt.

 

Zeile 3.: Enthält eine PI. Innerhalb dieser steht eine Stylesheetdeklaration. Diese spezifiziert die Stylesheetsprache XSL mit dem Attribut type und verweist mit dem Attibut href auf das Stylesheet.

 

Diese drei Teile: XML-Deklaration, Dokumenttypdeklaration und Stylesheetdeklaration bilden den Prolog              – der Kommentar ist eingeschlossen.

 

In Zeile 5. folgt dann der  Start-Tag des Wurzelelements konto mit Attribut title und Attributwert Kontoliste.

 

In Zeile 6. steht ein CharacterData-Abschnitt. Mit CDATA können Textblöcke geschützt werden, die Zeichen enthalten, die normalerweise als Markup interpretiert werden.

 

Zeile 9. : Im Inhalt des Elements email steht das Entity at. Entity sind  Kürzel für Textpassagen.

 

Zeile10.: Am Ende des XML-Dokuments  steht das End-Tag des Wurzelelements konto. Erkennt man an dem Schrägstrich vor dem Elementnamen.

 

 

 

Grob gesagt lässt sich ein XML-dokument in Vorspann (Prolog) und Wurzelelement unterteilen.

 

 

 

 

 

4 Welche Vorteile hat XML im Vergleich zu HTML?

 

 

4.1 Tags stellen Semantik der Daten dar

 

z.B.: <Name>Boris Lauser</Name>

 

à intelligente Shop-Agenten können XML-Dokumente gezielt  nach Informationen durchsuchen

 

4.2 XML erlaubt baumartig strukturierte Daten und die Definition von anwendungsspezifischen Tags

 

z.B.:

        <Abteilung>

              <Mitarbeiter>

                  <Name> ... </Name>

              </Mitarbeiter>

          </Abteilung>

 

à    im Intranet können Firmen eigene  DTDs für spezielle Anwendungen entwickeln...

 

4.3 XML stellt „reine“ Daten zur Verfügung (getrennt von   der Darstellung)

 

vgl. HTML: GIFs zum pixelgenauen Positionieren von Text...

Daten können für unterschiedliche Medien aufbereitet werden                                                                                        (Web-Seiten, Drucker,Sprachausgabe...)

 

4.4 XML ermöglicht bessere Link-Möglichkeiten

 

Links können neben URL auch eine XML-QL (Query) sein

vgl. HTML: Sprungmöglichkeit an Ankertag in Dokument

    (<A NAME=“18.1“></A> =>../index.html#18.1)

 

 

 

 

5 Grundlagen von XML

 

 

5.1 XML hat sieben Grundtypen zur  Informationsbereitstellung

 

 

5.1.1 Elemente

 

Elementtypen

 

DTD: Deklarationen

 

In diesen Abschnitt folgt die Beschreibung der XML-Syntax zur Codierung von Dokumenttyp-Definitionen (DTDs), d.h. die syntaktischen Mittel zur Definition einer Auszeichnungssprache ( ihres Vokabulars und ihrer Grammatik). DTDs sind Sammlungen von Deklarationen. Nur was in der DTD deklariert wurde, darf in der XML-Instanz ( und ggf. auch in der DTD) verwendet werden.

 

 

 

Um Inhalte in XML-Instanzen(also Dokumente,die einer DTD entsprechen) auszeichnen zu können, müssen die Elementtypen deklariert  worden sein.

                                     

Terminologisch unterscheidet man:

 

·        Elementtypen, die in DTDs deklariert werden

·        Elemente, die (unter Vorraussetzung der deklarierten Elementtypen) in Instanzen ausgezeichnet werden, und zwar i.d.R. mit Tags

·        Tags, mit denen Elemente ausgezeichnet werden

 

Elemente bestehen somit aus Inhalt und umschließenden Tags:                             

 

<tag> Inhalt</tag>

 

 

 

 

Elemente bzw. Tags kennzeichnen also die strukturellen Einheiten ( Inhaltstypen) in Instanzen und sind somit der wichtigste Bestandteil der XML-Syntax.

 

 

 

Exkurs:

 

XML - Namen

Ein Name ist ein Token3, das mit einem Buchstaben (letter) oder einem erlaubten Interpunktionszeichen beginnt, woran sich Buchstaben, Ziffern (digit), Bindestriche, Unterstriche, Doppelpunkte oder Punkte anschließen. Letztere sind als Name-Zeichen bekannt. Namen, die mit »xml« oder mit einer Zeichenkette beginnen, die zu (('X'|'x') ('M'|'m') ('L'|'l')) paßt, sind für die Standardisierung in dieser oder einer zukünftigen Version dieser Spezifikation reserviert.

Hinweis: Der Doppelpunkt ist innerhalb von XML-Namen für Experimente mit Namensräumen reserviert. Es ist zu erwarten, daß seine Bedeutung irgendwann in der Zukunft standardisiert wird. Es könnte dann notwendig sein, Dokumente, die mit dem Doppelpunkt experimentieren, zu aktualisieren. (Es gibt keine Garantie, daß ein Mechanismus für Namensräume in XML tatsächlich den Doppelpunkt als Trennzeichen für Namensräume verwendet.) Praktisch bedeutet das, daß Autoren den Doppelpunkt in XML-Namen außer zu Namensraum-Versuchen nicht einsetzen sollten, daß aber XML-Prozessoren den Doppelpunkt als Name-Zeichen akzeptieren sollten.

(Exkurs Ende)

 

 

 

 

Deklarationen von Elementtypen

 

 

<!ELEMENT         name                inhaltsmodell>

 

Elemente können Daten ( also Text, Grafiken, Tabellen, Formeln etc.) oder andere Elemente enthalten. Sie können auch als leere Elemente definiert sein. Was Elemente enthalten dürfen wird durch ihr Inhaltsmodell bestimmt. Im Inhaltsmodell werden Art , Anzahl und Ordnung der Inhalte des Elements festgelegt.

 

  Beispiele

 

<!ELEMENT strasse  (#PCDATA)>

 

<!ELEMENT anschrift ( name | strasse | ort) >

 

<! ELEMENT text ((#PCDATA | hervorhebung ) + >

 

 

 

Inhaltsmodelle

 

Man unterscheidet im Wesentlichen drei Typen von Inhaltsmodellen:

 

­     Modellgruppen; das sind Subelemente ( verknüpft durch Konnektoren), die in der XML-Instanz als Kinder auftreten können oder müssen.

 

­     Daten, bezeichnet man durch das reservierte Wort #PCDATA; das sind Zeichenfolgen, die keine Elemente enthalten, möglicherweise aber Auszeichnungen anderer Art ( nämlich Entitätsreferenzen), und vom Parser daraufhin analysiert werden.

 

­     Gemischte Inhalte; das sind Inhaltsmodelle, die sowohl Daten als auch Subelemente enthalten.

 

 

 

 

 

 

Syntax von Inhaltsmodellen

 

­      Inhaltsmodell         :: = EMPTY | ANY | daten | modellgruppe | gemischt

­      Daten                     :: = (#PCDATA)

­      modellgruppe         :: =( oder-verknüpfung| sequenz )[ ? | * | +]

­      gemischt                :: = (#PCDATA( | elementname)...)*

­      oder-verknüpfung  :: = (teil (| teil)...)

­      sequenz                 :: = (teil (, teil)...)

­      teil                          :: = (elementname | oder-verknüpfung | sequenz) )[ ? | * | +]

 

 

 

 

 

Konnektoren in Inhaltsmodellen

 

XML kennt nur zwei Operatoren zur Verknüpfung von Elementen ( oder Modellgruppen) in Inhaltsmodellen: den Sequenz- und den Oder-Konnektor.

 

a,b   Sequenz-Konnektor

          d.h. Element b muß in der Instanz auf Element a folgen.

a | b   Oder-Konnektor

d.h. in der Instanz muß entweder Element a oder Element b stehen, eins von beiden, nicht beide.

 

 

 

 

Daten

 

<!ELEMENT text (#PCDATA)>     

 

 Anwendung: <text> Text </Text>

 

Das Element text darf keine Subelemente enthalten, sondern lediglich Zeichenfolgen mit Bezugnahmen auf Entitäten oder kommentare

 

 

 

Modellgruppe

 

<!ELEMENT div1 (head, (p | list | note ), div2*) >       

 

 Anwendung: <div><head> Titel <head>                                                                                                                                                              <p> Absatz<p></div1>

 

 

Das Elemenr div1 darf die Subelemente head, p, list, note und div2 enthalten, wobei zwischen p, list und note gewählt werden kann ( und zwar mehrfach) und div2 optional ( aber beliebig oft) folgen darf. Die subelemente müssen deklariert worden sein.

                       

 

gemischt

 

<!ELEMENT p (# PCDATA | emph)* >

 

Anwendung:

 

<p> Daten d&uuml;rfen mit Subelementen vom Typ <emph>emph</emph>   abwechseln.<p>

 

Das Element p darf sowohl Daten als auch das Subelement emph enthalten. Aufgrund ihrer Verknüpfung im Inhaltsmodell können beide sich beliebig oft abwechseln, d.h. emph-Elemente können, wo immer sie benötigt werden, in einen ansatz eingebaut werden. Man nennt solche Elemente in SGML floating elements.

 

 

 

 

 

 

 

 

EMPTY

 

<! ELEMENT br EMPTY >

 

Das leere Element br wird verwendet, um den Zeilenumbruch zu steuern. <br> </br>

 

Leere, d.h. als EMPTY deklarierte Elemente sind wichtig, um den Ort bestimmter Objekte ( wie Grafiken ) in einer Instanz festzulegen. In dieser Funktion werden wir ihnen unten noch mehrfach begegnen. Oft sind leere Elemente auch einfach Anker für typographische Information ( wie den Zeilenumbruch).

 

 

 

 

 

 

 

ANY

 

<! ELEMENT container ANY >

 

Anwendung

 

< container><p>Sofern in der DTD Elemente namens p und br deklariert wurden, <br></br>darf das cotainer-Element auch diese Elemente enthalten.</p></container>

 

Mit dem Schlüsselwort ANY deklariert man ein Element, das eine beliebige Mischung aus PCDATA und allen in der DTD verfügbaren Elementen zuläßt – solange dabei die Regeln für gemischte Inhalte beachtet werden. Seine Verwendung ist generell nicht empfehlenswert                               

( es sei denn zu Testzwecken bzw. für Ad-hoc-DTDs), denn schließlich geht es darum, in Dokumenten Ordnung zu schaffen und nicht Beliebigkeit walten zu lassen.

 

 

 

 

 

 

 

 

 

 

5.1.2 Attribute

 

Deklaration von Attributen

 

 

 

 

Attribute werden immer für ein Element deklariert. Zu jeder Attributdeklaration gehört darum die Angabe des Elementsnamens, außerdem eine Angabe zum Typ des Attributs und eine sogennate Voreinstellung.

 

<!ATTLIST  elementname     (attributname   attributtyp   voreinstellung ) ...>

 

Für Attributnamen gelten dieselben Regeln wie für Elementnamen. Insbesondere ist ihre Groß-/Kleinschreibung signifikant.Ein Attribut mit dem Namen autor zu deklarieren und es in der Instanz mit dem Namen Autor zu verwenden, wäre ein Fehler. 

 

Mit einer einzigen ATTLIST-Deklaration können mehrere Attribute für den gleichen Elementtyp definiert werden.

 

 

 

 

 

Attribut – Typen

 

Der Typ eines Attributs bestimmt seine zulässigen Werte. Entweder gibt man eine Liste der erlaubten Werten an ( Name – token – group ) oder man verwendet ein Schlüsselwort, um einen Typ und damit einen Wertebereich zu definieren.

 

 

 

attributtyp :: = ( CDATA

| ID

| IDREF | IDREFS

| ENTITY | ENTITIES

| NMTOKEN | NMTOKENS

| ( nmtoken (| nmtoken)... ) )

 

 

 

 

 

 

CDATA

 

Als Attribut-Wert kommen alle XML-Zeichen ( also i.d.R. alle Unicode-Zeichen) in frage. Der Wert darf auch Leerzeichen enthalten

 

 

 

 

ID / IDREF / IDREFS

 

ID-Attribute stellen gemeinsam mit IDREF-/IDREFS-Attributen einen einfachen ( und immer verfügbaren ) Mechanismus für die dokumentierte Verweise dar. Das Element dem ein ID-Attribut mit ( eindeutigen) Wert zugeordnet ist , dient als Verweisziel . Das Element mit dem IDREF- bzw. IDREFS-Attribut ( und entsprechenden Wert ) ist die Verweisquelle. Für den Fall, dass das IDREFS-Attribut mehrere Werte enthält, muss die XML-Software dem Anwender Gelegenheit zur Selektion eines Verweisziels geben ( in einem Dialogfenster).

 

 

 

 

 

 

ENTITY / ENTITIES

 

Der Attribut-Wert ist der name einer generellen Entität bzw. eine Liste von Entitäten-Namen.

 

 

 

 

NMTOKEN / NMTOKENS

 

Der Attribut-Wert ist ein sogenanntes Namens-Token bzw. eine Liste von Namnes-Token. Damit ist gemeint

 

 

 

(nmtoken ( | nmtoken) ... )

 

Die Variable nmtoken steht für Zeichenfolgen.

 

 

 

 

 

Voreinstellung für Attribute

 

Als Voreinstellung kann man entweder einen konkreten Vorgabewert ( passend zur Liste der erlaubten Werte bzw. zum Attribut – Typ ) angeben oder ein Schlüsselwort, das den Attributwert modal beschreibt ( obligatorisch, optional, etc.).

 

voreinstellung ::= (# REQUIRED | #IMPLIED | [#FIXED]) wert

 

wert                 ::= (“zeichenfolge“ | ’zeichenfolge’ | entityreferenz)

 

 

 

 

# REQUIRED

 

Das Attribut muss in der XML-Instanz einen Wert erhalten – entweder durch den Bearbeiter der Instanz oder durch die Applikation ( wie mitunter im Fall von ID–Attributen ). Andernfalls ist die Instanz nicht valid.

 

ID–Attribute müssen übrigens als Voreinstellung entweder  #REQUIRED oder  #IMPLIED haben.

 

 

#IMPLIED

 

Der Attribut–Wert  ist optional bzw. wird von der XML–Applikation eingesetzt. Beispielsweise können Applikationen ein ID-Attribut mit der Voreinstellung # IMPLIED genau dann mit einem wert versorgen, wenn das zugehörige Element per IDREF-Attribut referenziert wird.

 

 

 

[#FIXED]  wert

 

Ohne das Schlüsselwort #FIXED ist der wert der Vorgabewert, den das Attribut erhält, sofern ihm nicht explizit ein anderer Wert zugewiesen wird. Dabei kann wert ein Wert aus der Liste zulässiger Werte sein, er kann aber auch für andere Attribute anderen Typs ( CDATA, NMTOKEN, IDREF, ENTITY) angegeben werden.

 

FIXED-Attribute sind u.a.zur Deklaration von fixen Zeigern und bei „architektonischen Formen“ sinnvoll, d.h. bei Modellen für Konstrukte, die in einer DTD durch bestimmte Attributwerte identifiziert werden. XLINK ist eine Sammlung solcher Modelle. Auch bei Namensräumen spielt #FIXED eine besondere Rolle.

 

 

 

 

 

Anwendungsbeispiele von Attributen

 

 

 

Attribute sind Name-Werte-Paare, die in einem Tag definiert werden:

 

  <tag att-name=“att-wert“> ... </tag>

 

z.B.:

 <telefon type=“privat“> 0721/12345 </telefon>

 <telefon type=“mobil“> 0171/54321 </telefon>

 

 

Deklaration von Attributen

 

Attribut Definitionen legen fest:

    Welche Elemente Attribute haben;

    Welche Attribute sie haben;

    Welche Werte ein Attribut haben kann;

    Was der Default Wert eines Attributes ist.

    <!ATTLIST element-name

  attribut-name_1 attribute-type_2 default-value_1

       ...

  attribut-name_n attribute-type_n default-value_n>

 

­     Attributtypen

    CDATA = Zeichenfolge

    ID = eindeutiger Schlüssel

    IDREF und IDREFS = Referenz auf eines bzw. mehrere IDs im Dokument

    ENTITY oder ENTITIES = Name eines bzw. mehrere Entities

    NMTOKEN oder NMTOKENS = Wert ist ein bzw. mehrere Wörter

    Eine Liste von Namen (Aufzählungstyp)

 

 

­     Default-Werte:

    #REQUIRED  Attribut muß immer einen Wert haben

    #IMPLIED Attribut kann Wert haben; kein Defaultwert vorgegeben.

-„value“ Beliebiger gültiger Wert, der immer dann der Wert des Attributes ist, wenn nichts anderes explizit definiert wird

    # Fixed“value“ Wenn das Attribut benutzt wird, muss es den Defaultwert haben.

 

 

 

 

 

 

Definition in DTD für das Bsp.:

 

<ATTLIST telefon type (privat | mobil) “privat“>

<!ATTLIST telefon id ID #REQUIRED>

<!ATTLIST telefon attribut CDATA #IMPLIED>

 

1.      Bsp.: 2 Werte zur Auswahl – 1 Wert muß sein – automat. „privat“, wenn nichts anderes   angegeben

2.      Bsp.: eindeutiger Attributwert – muß bei Auftreten angegeben werden

3.      Bsp.: beliebiger String – kann angegeben werden

 

 

 

 

 

 

 

5.1.3. Entities

 

Entities erlauben Makros (Kürzel für häufige Textpassagen).

Sie beginnen mit „ & “ und enden mit „ ; “

 

Definition in DTD:

 

<!ENTITY aifb “Institut für Angewandte Informatik und Formale Beschreibungsverfahren“>

 
In XML-Dokument wird &aifb; durch obigen Text ersetzt...

 

 

 

 

5 vordefinierte Entities:

l     &lt;               <

l     &gt;              >

l     &amp;         &

l     &apos;         ´

l     &quot;         

 

 

 

 

 

 

 

5.1.4 Kommentare

 

Kommentare dienen zur Erläuterung und dem besseren Verständnis von XML-Dokumenten.

 

Sie beginnen mit „ <!-- " und enden mit „ --> “ (alles außer „ -- " erlaubt!)

 

XML Prozessoren (oder auch: XML-Parser) dürfen Kommentare ignorieren – sie müssen nicht an Applikation weitergereicht werden.

 

 

 

 

 

 

 

5.1.5 Prozeßanweisungen (Processing Instructions : PI‘s)

 

Prozessanweisungen erlauben Dokumenten, Anweisungen für Anwendungsprogramme zu enthalten :     

                                    

                                  „ <? name data ?> „

 

XML Prozessoren können PI’s ignorieren, müssen sie aber zur Applikation weiterreichen.

 

Applikation führt alle Prozessanweisungen aus, die sie am Namen erkennt

 

Bsp.

             <?xml:stylesheet type=“text/xsl“ href=“style.xsl“?>

 

 

 

 

 

 

 

 

 

 

5.1.6 CDATA –Sektionen

 

 

CDATA- Sektionen sind beliebige Strings, die der Parser nicht interpretiert.                           (d.h. z.B. keine Markup Erkennung: <tags>, & , < ...)                                                                              

Sie beginnen mit „ <![CDATA[ “ und enden mit  „ ]]> “.

 

Im Gegensatz zu Kommentaren werden CDATA-Sektionen nicht ignoriert und werden an die Applikation weitergegeben (bekommt der Leser zu sehen).

 

 

 

 

 

 

 

5.1.7 Prolog

 

Teil des XML-Dokuments am Anfang, vor dem Start-Tag des Wurzel-Elements.

 

Kann leer sein, sollte aber zumindest XML-Deklaration enthalten:                                                   <?xml version=“1.0“?>

 

Enthält normalerweise neben der XML-Deklaration, die Dokumenttyp-Deklaration und evtl. Kommentare und PI’s.

 

Angabe des Dokumententyps:

 

    Interne DTD-Anweisung

 

    <!DOCTYPE Name [<!Element Name (#PCDATA)>...]>

 

    Extern DTD-Anweisung                                                                          

 

          <!DOCTYPE Name SYSTEM „name.dtd“  >

                       

 

 

 

 

 

5.2 XML Linking Language (XLL)

 

5.2.1 Xlinks

 

5.2.1.1 Simple Links

 

Die Möglichkeiten der einfachen Link-Funktionen entsprechen nahezu denen, die uns auch ein HTML-Link bietet.

Zur Unterscheidung zwischen „ einfachen“ und „erweiterten“ Links wird der Wert „simple“ als Attribut übergeben.

 

<LINK XML-LINK =“SIMPLE “HREF= “locator“> text </LINK>

 

Analog zu HTML, aber der Locator kann eine URL und eine Query sein:

 

5.2.1.2 Extended Links

 

Diese erweiterten Links können nicht nur auf ein Dokument sondern auf mehrere Quellen Verweisen.

Es lassen sich Links zu Daten einrichten, die selbst keine Linkfunktion unterstützen.

Neu ist auch die Einrichtung von sogenannten „bidirektionalen“ Links, d.h. Links, die nicht nur vom Dokument zur Datenquelle verweisen, sondern auch in die andere Richtung von den Daten zum Dokument.

 

Extended Links können Beziehungen zwischen mehr als zwei Adressen ausdrücken:

 

<ELINK XML-LINK = “EXTENDED” ROLE=”ANNOTATIONS”>

      <LOCATOR XML-LINK = “LOCATOR” HREF = “text.loc”>text </LOCATOR>

      <LOCATOR XML-LINK = “LOCATOR” HREF = “Annot1.loc”>Ann1</LOCATOR>

      <LOCATOR XML-LINK = “LOCATOR” HREF = “Annot2.loc”>Ann2</LOCATOR>

</ELINK>

 

5.2.2 Xpointer

 

Sind noch wesentlich flexibler als erweiterte Links mit Xlink.

Mit ihrer Hilfe kann man nicht nur auf Dokumente und Dokumententeile zugreifen, sondern auch auf einzelne Objekte der Seite.

 

Xpointer lassen exakte Bereiche eines XML-Dokuments beschränken:

    Ziel im Dokument wird durch eine Attribut-ID markiert

    Es wird auf die Stelle gezeigt im Dokument, auf die Xpointer verweist

    Link und Ziel können in einem Dokument stehen

    Bsp.: Inhaltsverzeichnis

 

 

 

 

5.3 Wohlgeformtheit

 

                       

­     XML Dokument ist wohlgeformt:

     Dokument beginnt mit einer XML-Deklaration.

     Alle Tags mit Inhalt müssen Beginn- und Endtag haben.

     Tags ohne Inhalt müssen entweder einen Endtag haben oder mit „ /> “ abschließen.

     Alle Attributwerte müssen in Anführungszeichen stehen

     Elemente müssen ohne Überlappung geschachtelt werden

     Es muss eine Wurzel geben (Baumstruktur!)

 

 

 

 

 

 

 

 

 

5.4 Gültigkeit

 

 

­     Ein XML Dokument ist gültig:

     Es ist wohlgeformt.

     Es verweist auf eine DTD.

     Es hält die Regeln der DTD ein.

    

 

 

 

 

 

 

 

 

 

 

5.5 Parser

 

 

 

5.5.1 XML-Parser

 

     bestimmt, ob ein XML-Dokument wohlgeformt ist (evtl. Fehlermeldung)

     führt Bestandteile zusammen (mehrere Dateien)

     erstellt Baum, durch den die Inhalte der Elemente zugreifbar werden

 

 

 

 

 

 

 

5.5.1.1 nicht-validierender Parser

 

     prüft auf Wohlgeformtheit

     es wird sichergestellt, dass ermittelt werden kann, wie das Dokument aufgebaut ist und dass ein sogenannter Dokument-Baum erstellt werden kann.

     Ein Abgleich mit einer DTD findet nicht statt – auch dann nicht, wenn in dem Dokument  ausdrücklich auf eine DTD verwiesen wird.

 

 

 

 

 

 

 

5.5.1.2validierender Parser

 

     prüft auf Gültigkeit

     es wird ein Abgleich zwischen Dokument und DTD durchgeführt