XML, XLink och XQuery

XLink används för att skapa hyperlänkar i XML-dokument

XPath

  • XLink används för att skapa hyperlänkar i XML-dokument
  • Varje element i ett XML-dokument kan agera som en länk
  • Genom XLink kan länkar definieras utanför den länkade filen
  • XLink är en rekommenderad standard av W3C

XLink-webbläsarstöd

Webbläsare stöder inte XLink i XML-dokument.

Men alla ledande webbläsare stöder XLink i SVG.

XLink-syntax

I HTML definierar <a>-elementet en hyperlänk. Men detta är inte hur det fungerar i XML.

I ett XML-dokument kan du använda vilket elementnamn du vill - därför kan inte webbläsaren förutsäga vilka länkselement som kommer att anropas i XML-dokumentet.

Här är ett enkelt exempel på hur man använder XLink för att skapa länkar i ett XML-dokument:

<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.codew3c.com">Besök CodeW3C.com</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Besök W3C</homepage>
</homepages>

Om vi behöver komma åt XLink-funktioner måste vi deklarera XLink-namnrymden. XLink-namnrymden är: "http://www.w3.org/1999/xlink".

xlink:type och xlink:href-attributen i <homepage>-elementet kommer från denna XLink-namnrymd.

xlink:type="simple" skapar en enkel "liknande HTML"-länk (det vill säga "klicka här för att gå till annan plats").

xlink:href egenskap specificerar den URL som ska länkas till.

XLink-exempel

Följande XML-dokument innehåller XLink-funktioner:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="Yashu Talk Food">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  Yashu Talk Food kan kallas en guidebok för Chaozhou-matlagning, där den ger nödvändig vägledning och hjälp till matälskare och dem som söker smaker;
  Boken kan också sägas vara en humanistisk läsning om Chaozhou-matlagning, där Chaozhou-matlagningen introduceras, inte Chaozhou-matlagningen, och fullt ut gräver fram och visar den inhemska kulturen, matvanorna och historiska detaljerna som döljs bakom maten.
  </description>
</book>
<book title="Uppmärksamma fox fadern">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  Boghis, Bons och Bean är de mest elaka och mest småaktiga människor du kan möta, de hatade fox先生,och beslutade att utrota hans hela familj.
  Så stod dessa tre med vapen, fientligt väntande utanför fox先生的洞……men fox先生自有对付他们的妙计!
  Så började en strid mellan visdom och styrka...
  </description>
</book>
</bookstore>

Exempel förklaring:

  1. XLink-namnrymden deklareras i dokumentets topp (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" skapar en enkel "likt HTML"-länk
  3. xlink:href egenskapen specificerar den URL som ska länkas till (i detta fall en bild)
  4. xlink:show="new" indikerar att länken ska öppnas i ett nytt fönster

XLink - Gå längre

I det ovanstående exemplet har vi demonstrerat ett enkelt XLink.

Om vi använder en fjärrposition som resurs istället för att komma åt en enskild sida, blir XLink mer intressant.

Om vi sätter xlink:show egenskapsvärdet till "embed", ska den länkade resursen hanteras inline på sidan. Till exempel, om du tror att detta kan vara en annan XML-dokument, kan du bygga en hierarki för XML-dokumentet.

Du kan också använda xlink:actuate egenskapen för att specificera när resursen ska visas.

XLink egenskapsreferens

Egenskaper Värde Beskrivning xlink:actuate onLoad onRequest other none Definiera när resurser ska läsas och visas: onLoad - Resurser bör laddas och visas när dokumentet laddas onRequest - Resursen läses eller visas inte innan länken klickas xlink:href URL bestämmer den URL som länken pekar på. xlink:show embed new replace other none bestämmer var länken öppnas. Standard är "replace". xlink:type simple extended locator arc resource title none bestämmer länktypen.

XPointer

XPath
  • XPointer tillåter länkar att peka på specifika delar av ett XML-dokument
  • XPointer använder XPath-expressioner för att navigera i XML-dokument
  • XPointer är en rekommenderad standard av W3C

XPointer-webbläsarstöd

Ingen webbläsare stöder XPointer. Men XPointer används också i andra XML-språk.

XPointer-exempel

I detta exempel kommer vi att använda både XPointer och XLink för att peka på en specifik del i ett annat dokument.

Vi tittar först på detta målnings XML-dokument (det dokument vi länkar till):

<?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,
  en livlig hund som älskar att leka och hämta....</temperament>
</dog>
</dogbreeds>

Observera att den ovanstående XML-dokumentet använder id-egenskapen på varje element!

Därmed tillåter XPointer att du länkar till specifika delar av ett dokument, snarare än hela dokumentet (som XLink).

För att länka till en specifik del av en sida, lägg till ett och ett utrymme (#) och en XPointer-uttryck efter URL:en, såsom:

xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

Uttrycket refererar till elementet med id-värdet "Rottweiler" i måldokumentet.

xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。

XPointer tillåter också att använda förkortade metoder för att länka till element med id. Du kan använda värdet på id:n direkt, såsom:

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler

Följande XML-dokument innehåller länkar som pekar på mer information om varje hunds ras:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  Anton är min favorithund. Han har vunnit mycket.....
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  Fakta om Rottweiler
  </fact>
</mydog>
<mydog>
  <description>
  Pluto är den sötaste hunden på jorden......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Fakt om flat-coated Retriever
  </fact>
</mydog>
</mydogs>