XML, XLink and XPointer
Posted: Fri Oct 27, 2023 9:35 am
XML, XLink and XPointer
XLink is used to create hyperlinks in XML documents.
XLink is used to create hyperlinks within XML documents
Any element in an XML document can behave as a link
With XLink, the links can be defined outside the linked files
XLink is a W3C Recommendation
XLink Browser Support
There is no browser support for XLink in XML documents.
However, all major
browsers support XLinks in SVG.
XLink Syntax
In HTML, the <a> element
defines a hyperlink. However, this is not how it works in XML. In XML documents, you can use
whatever element names you want - therefore it is impossible for browsers to predict
what link elements will be called in XML documents.
Below is a simple example of how to use XLink to create links in an XML document:
<?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>
To get access to the XLink features we must declare the XLink namespace. The XLink namespace is: "http://www.w3.org/1999/xlink".
The xlink:type and the xlink:href attributes in the <homepage> elements come from the
XLink namespace.
The xlink:type="simple" creates a simple "HTML-like" link (means "click here
to go there").
The xlink:href attribute specifies the URL to link to.
XLink Example
The following XML document contains XLink features:
<?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>
Example explained:
The XLink namespace is declared at the top of the
document (xmlns:xlink="http://www.w3.org/1999/xlink")
The xlink:type="simple" creates a simple "HTML-like" link
The xlink:href attribute specifies the URL to link to (in this case - an image)
The xlink:show="new" specifies that the link should open in a new window
XLink - Going Further
In the example above we have demonstrated simple XLinks. XLink is getting
more
interesting when accessing remote locations as resources, instead of
standalone pages.
If we set the value of the xlink:show
attribute to "embed", the linked resource should be processed inline
within the page. When you consider that this could be
another XML document you could, for example, build a hierarchy of XML documents.
You can also specify WHEN the resource should appear, with
the xlink:actuate attribute.
XLink Attribute Reference
Attribute
Value
Description
xlink:actuate
onLoad
onRequest
other
none
Defines when the linked resource is read and shown:
onLoad - the resource should be loaded and shown when the document loads
onRequest - the resource is not read or shown before the link is clicked
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
XPointer
XPointer allows links to point to specific parts of an XML document
XPointer uses XPath expressions to navigate in the XML document
XPointer is a W3C Recommendation
XPointer Browser Support
There is no browser support for XPointer. But XPointer is used in other
XML languages.
XPointer Example
In this example, we will use XPointer in conjunction with XLink to point to a specific part of another document.
We will start by looking at the target XML document (the document we are
linking to):
<?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>
Note that the XML document above uses id attributes on each element!
So, instead of linking to the entire document (as with XLink), XPointer allows you to link to specific parts of the document. To link to a specific part of a
page, add a number sign (#) and an XPointer expression after the URL in the xlink:href
attribute, like this: xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))". The expression refers to the element in the target document, with the id value of "Rottweiler".
XPointer also allows a shorthand method for linking to an element with an id. You can use the
value of the id directly, like this: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
The following XML document contains links to more information of the dog breed for each of
my dogs:
<?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>
★
+1
Reference: https://www.w3schools.com/xml/xml_xlink.asp
XLink is used to create hyperlinks in XML documents.
XLink is used to create hyperlinks within XML documents
Any element in an XML document can behave as a link
With XLink, the links can be defined outside the linked files
XLink is a W3C Recommendation
XLink Browser Support
There is no browser support for XLink in XML documents.
However, all major
browsers support XLinks in SVG.
XLink Syntax
In HTML, the <a> element
defines a hyperlink. However, this is not how it works in XML. In XML documents, you can use
whatever element names you want - therefore it is impossible for browsers to predict
what link elements will be called in XML documents.
Below is a simple example of how to use XLink to create links in an XML document:
<?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>
To get access to the XLink features we must declare the XLink namespace. The XLink namespace is: "http://www.w3.org/1999/xlink".
The xlink:type and the xlink:href attributes in the <homepage> elements come from the
XLink namespace.
The xlink:type="simple" creates a simple "HTML-like" link (means "click here
to go there").
The xlink:href attribute specifies the URL to link to.
XLink Example
The following XML document contains XLink features:
<?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>
Example explained:
The XLink namespace is declared at the top of the
document (xmlns:xlink="http://www.w3.org/1999/xlink")
The xlink:type="simple" creates a simple "HTML-like" link
The xlink:href attribute specifies the URL to link to (in this case - an image)
The xlink:show="new" specifies that the link should open in a new window
XLink - Going Further
In the example above we have demonstrated simple XLinks. XLink is getting
more
interesting when accessing remote locations as resources, instead of
standalone pages.
If we set the value of the xlink:show
attribute to "embed", the linked resource should be processed inline
within the page. When you consider that this could be
another XML document you could, for example, build a hierarchy of XML documents.
You can also specify WHEN the resource should appear, with
the xlink:actuate attribute.
XLink Attribute Reference
Attribute
Value
Description
xlink:actuate
onLoad
onRequest
other
none
Defines when the linked resource is read and shown:
onLoad - the resource should be loaded and shown when the document loads
onRequest - the resource is not read or shown before the link is clicked
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
XPointer
XPointer allows links to point to specific parts of an XML document
XPointer uses XPath expressions to navigate in the XML document
XPointer is a W3C Recommendation
XPointer Browser Support
There is no browser support for XPointer. But XPointer is used in other
XML languages.
XPointer Example
In this example, we will use XPointer in conjunction with XLink to point to a specific part of another document.
We will start by looking at the target XML document (the document we are
linking to):
<?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>
Note that the XML document above uses id attributes on each element!
So, instead of linking to the entire document (as with XLink), XPointer allows you to link to specific parts of the document. To link to a specific part of a
page, add a number sign (#) and an XPointer expression after the URL in the xlink:href
attribute, like this: xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))". The expression refers to the element in the target document, with the id value of "Rottweiler".
XPointer also allows a shorthand method for linking to an element with an id. You can use the
value of the id directly, like this: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
The following XML document contains links to more information of the dog breed for each of
my dogs:
<?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>
★
+1
Reference: https://www.w3schools.com/xml/xml_xlink.asp