XML Tutorial

XML HOME XML Introduction XML How to use XML Tree XML Syntax XML Elements XML Attributes XML Namespaces XML Display XML XSLT XML XPath XML XLink XML Validator XML DTD XML Schema XML Server XML HttpRequest XML Parser XML Examples XML Quiz XML Certificate


AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples


DOM Intro DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XSLT Tutorial

XSLT Intro XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XPath Tutorial

XPath Intro XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XQuery Tutorial

XQuery Intro XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions


DTD Intro DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD Intro XSD How To XSD <schema> XSD Elements XSD Attributes XSD Restrictions

XSD Complex

XSD Elements XSD Empty XSD Elements Only XSD Text Only XSD Mixed XSD Indicators XSD <any> XSD <anyAttribute> XSD Substitution XSD Example

XSD Data

XSD String XSD Date XSD Numeric XSD Misc XSD Reference

Web Services



DOM Node Types DOM Node DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT Elements XSLT/XPath Functions

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="">
  <homepage xlink:type="simple" xlink:href="">Visit W3Schools</homepage>
  <homepage xlink:type="simple" xlink:href="">Visit W3C</homepage>

To get access to the XLink features we must declare the XLink namespace. The XLink namespace is: "".

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="">

<book title="Harry Potter">
  As his fifth year at Hogwarts School of Witchcraft and
  Wizardry approaches, 15-year-old Harry Potter is.......

<book title="XQuery Kick Start">
  XQuery Kick Start delivers a concise introduction
  to the XQuery standard.......


Example explained:

  • The XLink namespace is declared at the top of the document (xmlns: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
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
Specifies where to open the link. Default is "replace"
xlink:type simple
Specifies the type of link


  • 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"?>


<dog breed="Rottweiler" id="Rottweiler">
  <picture url="" />
  <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 breed="FCRetriever" id="FCRetriever">
  <picture url="" />
  <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>


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="'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="".

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="">

  Anton is my favorite dog. He has won a lot of.....
  <fact xlink:type="simple" xlink:href="">
  Fact about Rottweiler

  Pluto is the sweetest dog on earth......
  <fact xlink:type="simple" xlink:href="">
  Fact about flat-coated Retriever