11.3. Bare Names
XPointers provide a number of convenient extensions to XPath. One of
the simplest is the bare name. A
bare name XPointer is similar to an HTML
named anchor; that is, a bare name XPointer identifies the element at
which it's pointing by its name. However, this name
is supplied by an ID type attribute of the element being pointed at
rather than by a special a element with a
name attribute. To link to an element with a bare
name, append the usual fragment separator # to the URL followed by the ID of the
element to which you're linking. For example, the
URL http://www.w3.org/TR/1999/REC-xpath-19991116.xml#NT-AbsoluteLocationPath
links to the element in the XPath 1.0 specification that has an
ID type attribute with the value
NT-AbsoluteLocationPath.
The ID attribute is an attribute declared to have ID type in the
document's DTD. It does not have to be named
ID or id. Bare names cannot be
used to link to elements in documents that don't
have DTDs because such a document cannot have any ID type attributes.
TIP:
The inability to use IDs in documents without DTDs or schemas is a
major shortcoming of XML. Work is ongoing to attempt to remedy this,
perhaps by defining a generic ID attribute such as
xml:id or by defining a namespace that identifies
ID type attributes.
For example, suppose you wanted to link to
the Motivation and Summary section of the Namespaces in
XML recommendation at http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml.
A quick peek at the source code of this document reveals that it has
an id attribute with the value
sec-intro and that indeed this attribute is
declared to have ID type in the associated DTD. Its start-tag looks
like this:
<div1 id='sec-intro'>
Therefore, http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml#sec-intro
is a URL that points to this section. The name does not need to be
(and indeed should not be) enclosed in xpointer( )
to make this work. Just the ID value is sufficient. This is basically
just a convenient shorthand for an XPointer using an XPath expression
using the id( ) function. The same URL could just as
easily have been written as http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml#xpointer(id(sec-intro)).
 |  |  | 11.2. XPointers in Links |  | 11.4. Child Sequences |
Copyright © 2002 O'Reilly & Associates. All rights reserved.
|