XML , XLink und XPointer
XLink wird verwendet, um Hyperlinks in XML-Dokumenten zu erstellen.
|
XLink-Browser-Unterstützung
Es gibt keine Browserunterstützung für XLink in XML-Dokumenten.
Alle gängigen Browser unterstützen jedoch XLinks in SVG .
XLink-Syntax
In HTML definiert das Element <a> einen Hyperlink. Dies funktioniert jedoch nicht in XML. In XML-Dokumenten können Sie beliebige Elementnamen verwenden - daher ist es für Browser unmöglich vorherzusagen, welche Link-Elemente in XML-Dokumenten aufgerufen werden.
Unten ist ein einfaches Beispiel dafür, wie man XLink verwendet, um Links in einem XML-Dokument zu erstellen:
<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
<homepage xlink:type="simple"
xlink:href="https://www.w3schools.com">Visit W3Schools</homepage>
<homepage xlink:type="simple"
xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>
Um Zugriff auf die XLink-Funktionen zu erhalten, müssen wir den XLink-Namespace deklarieren. Der XLink-Namensraum ist: "http://www.w3.org/1999/xlink".
Die Attribute xlink:type und xlink:href in den <homepage>-Elementen stammen aus dem XLink-Namensraum.
xlink:type="simple" erstellt einen einfachen "HTML-ähnlichen" Link (bedeutet "Klicken Sie hier, um dorthin zu gelangen").
Das Attribut xlink:href gibt die URL an, zu der verlinkt werden soll.
XLink-Beispiel
Das folgende XML-Dokument enthält XLink-Funktionen:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="Harry Potter">
<description
xlink:type="simple"
xlink:href="/images/HPotter.gif"
xlink:show="new">
As his fifth year at Hogwarts School of Witchcraft and
Wizardry approaches, 15-year-old Harry Potter is.......
</description>
</book>
<book title="XQuery Kick Start">
<description
xlink:type="simple"
xlink:href="/images/XQuery.gif"
xlink:show="new">
XQuery Kick Start delivers a concise introduction
to the XQuery standard.......
</description>
</book>
</bookstore>
Beispiel erklärt:
- Der XLink-Namespace wird oben im Dokument deklariert (xmlns:xlink="http://www.w3.org/1999/xlink")
- xlink:type="simple" erstellt einen einfachen "HTML-ähnlichen" Link
- Das Attribut xlink:href gibt die URL an, zu der verlinkt werden soll (in diesem Fall ein Bild).
- xlink:show="new" gibt an, dass der Link in einem neuen Fenster geöffnet werden soll
XLink - Weiter gehen
Im obigen Beispiel haben wir einfache XLinks demonstriert. XLink wird interessanter, wenn auf entfernte Standorte als Ressourcen zugegriffen wird, anstatt auf eigenständige Seiten.
Wenn wir den Wert des Attributs xlink:show auf „embed“ setzen, sollte die verlinkte Ressource inline innerhalb der Seite verarbeitet werden. Wenn Sie bedenken, dass dies ein weiteres XML-Dokument sein könnte, könnten Sie beispielsweise eine Hierarchie von XML-Dokumenten aufbauen.
Mit dem Attribut xlink:actuate können Sie auch angeben, WANN die Ressource erscheinen soll.
XLink-Attributreferenz
Attribute | Value | Description |
---|---|---|
xlink:actuate | onLoad onRequest other none |
Defines when the linked resource is read and shown:
|
xlink:href | URL | Specifies the URL to link to |
xlink:show | embed new replace other none |
Specifies where to open the link. Default is "replace" |
xlink:type | simple extended locator arc resource title none |
Specifies the type of link |
XZeiger
|
XPointer-Browser-Unterstützung
Es gibt keine Browserunterstützung für XPointer. Aber XPointer wird in anderen XML-Sprachen verwendet.
XPointer-Beispiel
In diesem Beispiel verwenden wir XPointer in Verbindung mit XLink, um auf einen bestimmten Teil eines anderen Dokuments zu verweisen.
Wir beginnen mit einem Blick auf das Ziel-XML-Dokument (das Dokument, auf das wir verlinken):
<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://dog.com/rottweiler.gif" />
<history>The Rottweiler's ancestors were probably Roman
drover dogs.....</history>
<temperament>Confident, bold, alert and imposing, the Rottweiler
is a popular choice for its ability to protect....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
<picture url="https://dog.com/fcretriever.gif" />
<history>One of the earliest uses of retrieving dogs was to
help fishermen retrieve fish from the water....</history>
<temperament>The flat-coated retriever is a sweet, exuberant,
lively dog that loves to play and retrieve....</temperament>
</dog>
</dogbreeds>
Beachten Sie, dass das obige XML-Dokument ID-Attribute für jedes Element verwendet!
Anstatt auf das gesamte Dokument zu verlinken (wie bei XLink), ermöglicht Ihnen XPointer, auf bestimmte Teile des Dokuments zu verlinken. Um auf einen bestimmten Teil einer Seite zu verlinken, fügen Sie ein Nummernzeichen (#) und einen XPointer-Ausdruck nach der URL im xlink:href-Attribut hinzu, wie folgt: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". Der Ausdruck bezieht sich auf das Element im Zieldokument mit dem ID-Wert "Rottweiler".
XPointer erlaubt auch eine Kurzschriftmethode zum Verlinken auf ein Element mit einer ID. Sie können den Wert der ID direkt wie folgt verwenden: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Das folgende XML-Dokument enthält Links zu weiteren Informationen der Hunderasse für jeden meiner Hunde:
<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
<description>
Anton is my favorite dog. He has won a lot of.....
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
Fact about Rottweiler
</fact>
</mydog>
<mydog>
<description>
Pluto is the sweetest dog on earth......
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
Fact about flat-coated Retriever
</fact>
</mydog>
</mydogs>