Is a fragment ID a URI reference?

G

Gustaf

I'm trying to grasp this little passage from the XBRL spec:

"The xlink:href attribute MUST be a URI. The URI MUST point to an XML
document or to one or more XML fragments within an XML document. If the
URI is relative, it MUST be resolved to obtain an absolute URI as
specified in XML Base specification [XML Base]."

I guess they really mean "URI reference" and not "URI" in the formal
sense. But anyway, consider this document:

<?xml version="1.0"?>
<a xml:base="http://example.org/schema.xsd"
xmlns:xlink="http://www.w3.org/1999/xlink">
<b xlink:href="#myelement"/>
</a>

My question is: is a fragment ID by itself a URI reference? Is the above
example valid, or can xlink:href="#myelement" only refer to the same
document?

Gustaf
 
R

Richard Tobin

My question is: is a fragment ID by itself a URI reference? Is the above
example valid, or can xlink:href="#myelement" only refer to the same
document?

A URI reference of the form #myelement is always a same-document
reference, regardless of the base URI.

Either by RFC 2396, in which it is handled explicitly without
reference to the base URI:

4.2. Same-document References

A URI reference that does not contain a URI is a reference to the
current document. In other words, an empty URI reference within a
document is interpreted as a reference to the start of that document,
and a reference containing only a fragment identifier is a reference
to the identified fragment of that document.

or by RFC 3986, in which it is handled by using the base URI and comparing
it with the (same!) base URI:

4.4. Same-Document Reference

When a URI reference refers to a URI that is, aside from its fragment
component (if any), identical to the base URI (Section 5.1), that
reference is called a "same-document" reference. The most frequent
examples of same-document references are relative references that are
empty or include only the number sign ("#") separator followed by a
fragment identifier.

You can't use xml:base to make a bare fragment refer to some other document.

-- Richard
 
G

Gustaf

Richard said:
A URI reference of the form #myelement is always a same-document
reference, regardless of the base URI.

A good answer. It simplifies my task too. :)

Gustaf
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,239
Members
46,827
Latest member
DMUK_Beginner

Latest Threads

Top