XLink and XPointer Syntax
In HTML, we know (and all the browsers know!) that the <a> element
defines a hyperlink.
However, this is not how it works with XML. In XML documents, you can use
whatever element names you want - therefore it is impossible for browsers to predict
what hyperlink elements will be called in XML documents.
The solution for creating links in XML documents was to put a
marker on elements that should act as hyperlinks.
Below is a simple example of how to use XLink to create links in an XML
To get access to the XLink attributes and features we must declare the XLink namespace at the top of the
The XLink namespace is: "http://www.w3.org/1999/xlink".
The xlink:type and the xlink:href attributes in the <homepage> elements define that the
type and href attributes come from the xlink namespace.
The xlink:type="simple" creates a simple, two-ended link (means "click from
here to go there"). We will look at multi-ended (multidirectional) links
In HTML, we can create a hyperlink that either points to an HTML page or to a
bookmark inside an HTML page (using #).
Sometimes it is more useful to point to more specific content. For example,
let's say that we want to link to the third item in a particular list, or to the
second sentence of the fifth paragraph. This is easy with XPointer.
If the hyperlink points to an XML document, we can add an XPointer part after
the URL in the xlink:href attribute, to navigate (with an XPath expression) to a specific place in the
For example, in the example below we use XPointer to point to the fifth item in
a list with a
unique id of "rock":
Whether you're new to XML or already an advanced user, the user-friendly views
and powerful entry helpers, wizards, and debuggers in XMLSpy are designed to
meet your XML and Web services development needs from start to finish.
- XML editor
- Graphical XML Schema / DTD editors
- XSLT 1.0/2.0 editor, debugger, profiler
- XQuery editor, debugger, profiler
- Support for Office Open XML (OOXML)
- Graphical WSDL editor & SOAP debugger
- Java, C#, C++ code generation
- And much more!
Download a fully functional free 30-day trial today!