Public Identifiers and their association with URIs

Mike_Spreitzer.PARC at Mike_Spreitzer.PARC at
Mon Sep 28 20:17:26 BST 1998

I'm a bit puzzled about the exact intended relationship between Public
Identifiers and URIs.

In an ExternalID (which says where to find an external entity), a System
Identifier (URI) must always be given, and a Public Identifier may also be
given (XML 1.0 section 4.2.2).  The spec includes text suggesting that an XML
processor may map the Public Identifier to a different URI than the one given
alongside the Public Identifier in the ExternalID, and use this different URI
to actually fetch the external entity's content.  Can this alternate URI vary
in any way?  From installation to installation of a given XML application?
>From on-line to off-line operation?  Over time in general?  Note that these
things can vary independently of the content of the referring XML document.
Can the content of an external entity use relative URIs?  In the face of
whatever variation is allowed in the resolved URI of the external entity, what
guarantees does the author of the external entity have about whether and what a
relative URI in the external entity content resolves to (i.e., because the base
varies, base+rel varies, leading to some uncertainty about nested content).

In the section on external entities, Tim Bray's Annotated XML Spec has a note
that says (among other things):

``if you use public identifiers within your own organization, that's perfectly
OK, but if you want to interchange XML documents with anybody external, they
have the right to demand, and you have the obligation to provide, a working
system identifier (URI) for each external entity.''

Um, doesn't the (non-annotated) spec already say that every ExternalID has to
include a working URI?  Are non-working URIs allowed in ExternalIDs?  Or is
this particular comment only meaningful for NotationDecl (the only place I've
noticed where it's allowed to have Public Identifier without an accompanying
System Identifier)?

In a NotationDecl, it is allowable to give only a Public Identifier without an
accompanying System Identifier.  Why does it make sense to offer this option
for NotationDecl but not ExternalID?

It seems to me that for all the reasons people want URNs instead of URLs, we'd
also like to have Public Identifiers that are simply not connected with those
damn URLs (there are no really effective URNs available right now, so URI
effectively equals URL at the present time).

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list