How will XML affect my document links?
Answer:
The linking abilities of XML systems are potentially much more powerful than those of
HTML, so you'll be able to do much more with them. Existing href-style links will
remain usable, but the new linking technology is based on the lessons learned in the
development of other standards involving hypertext, such as TEI and HyTime, which let
you manage bidirectional and multi-way links, as well as links to a whole element or span
of text (within your own or other documents) rather than to a single point. These features
have been available to SGML users for many years, so there is considerable experience
and expertise available in using them. Currently only Mozilla Firefox implements XLink.
The XML Linking Specification (XLink) and the XML Extended Pointer Specification
(XPointer) documents contain the details. An XLink can be either a URI or a TEI-style
Extended Pointer (XPointer), or both. A URI on its own is assumed to be a resource; if an
XPointer follows it, it is assumed to be a sub-resource of that URI; an XPointer on its
own is assumed to apply to the current document (all exactly as with HTML).
An XLink may use one of #, ?, or |. The # and ? mean the same as in HTML applications;
the | means the sub-resource can be found by applying the link to the resource, but the
method of doing this is left to the application. An XPointer can only follow a #.
The TEI Extended Pointer Notation (EPN) is much more powerful than the fragment
address on the end of some URIs, as it allows you to specify the location of a link end
using the structure of the document as well as (or in addition to) known, fixed points like
IDs. For example, the linked second occurrence of the word ‘XPointer’ two paragraphs
back could be referred to with the URI (shown here with linebreaks and spaces for
clarity: in practice it would of course be all one long string):
http://xml.silmaril.ie/faq.xml#ID(hypertext)
.child(1,#element,'answer')
.child(2,#element,'para')
.child(1,#element,'link')
This means the first link element within the second paragraph within the answer in the
element whose ID is hypertext (this question). Count the objects from the start of this
question (which has the ID hypertext) in the XML source:
1. the first child object is the element containing the question ();
2. the second child object is the answer (the element);
3. within this element go to the second paragraph;
HTML, so you'll be able to do much more with them. Existing href-style links will
remain usable, but the new linking technology is based on the lessons learned in the
development of other standards involving hypertext, such as TEI and HyTime, which let
you manage bidirectional and multi-way links, as well as links to a whole element or span
of text (within your own or other documents) rather than to a single point. These features
have been available to SGML users for many years, so there is considerable experience
and expertise available in using them. Currently only Mozilla Firefox implements XLink.
The XML Linking Specification (XLink) and the XML Extended Pointer Specification
(XPointer) documents contain the details. An XLink can be either a URI or a TEI-style
Extended Pointer (XPointer), or both. A URI on its own is assumed to be a resource; if an
XPointer follows it, it is assumed to be a sub-resource of that URI; an XPointer on its
own is assumed to apply to the current document (all exactly as with HTML).
An XLink may use one of #, ?, or |. The # and ? mean the same as in HTML applications;
the | means the sub-resource can be found by applying the link to the resource, but the
method of doing this is left to the application. An XPointer can only follow a #.
The TEI Extended Pointer Notation (EPN) is much more powerful than the fragment
address on the end of some URIs, as it allows you to specify the location of a link end
using the structure of the document as well as (or in addition to) known, fixed points like
IDs. For example, the linked second occurrence of the word ‘XPointer’ two paragraphs
back could be referred to with the URI (shown here with linebreaks and spaces for
clarity: in practice it would of course be all one long string):
http://xml.silmaril.ie/faq.xml#ID(hypertext)
.child(1,#element,'answer')
.child(2,#element,'para')
.child(1,#element,'link')
This means the first link element within the second paragraph within the answer in the
element whose ID is hypertext (this question). Count the objects from the start of this
question (which has the ID hypertext) in the XML source:
1. the first child object is the element containing the question ();
2. the second child object is the answer (the element);
3. within this element go to the second paragraph;
4. find the first link element.
Eve Maler explained the relationship of XLink and XPointer as follows:
XLink governs how you insert links into your XML document, where the link might
point to anything (eg a GIF file); XPointer governs the fragment identifier that can go on
a URL when you're linking to an XML document, from anywhere (eg from an HTML
file).
[Or indeed from an XML file, a URI in a mail message, etc…Ed.]
David Megginson has produced an xpointer function for Emacs/psgml which will deduce
an XPointer for any location in an XML document. XML Spy has a similar function.
Eve Maler explained the relationship of XLink and XPointer as follows:
XLink governs how you insert links into your XML document, where the link might
point to anything (eg a GIF file); XPointer governs the fragment identifier that can go on
a URL when you're linking to an XML document, from anywhere (eg from an HTML
file).
[Or indeed from an XML file, a URI in a mail message, etc…Ed.]
David Megginson has produced an xpointer function for Emacs/psgml which will deduce
an XPointer for any location in an XML document. XML Spy has a similar function.
No comments:
Post a Comment