Why not forego all this silliness of mapping system identifiers and allow
users to use URN's in an intelligent way? Essentially, a URN would
be used in the system identifier and you just *wouldn't* use the
public identifier! Then, in your environment, orthogonal to the
parser, you provide a way to resolve the URN.
Since entities can't be declared with only a public identifier, public
identifiers aren't very useful for interchange because I have to
specify a system identifier. When I specify a system identifier, some
parser might choose to use the system identifier rather than some
non-standard public/system id mapping scheme. Now my document is
broken from this receiver's perspective.
In effect, although the above interface is useful, it reduces
interchange in that I can make a document with broken system identifiers
work on my system. Essentially, I can make an *invalid* document valid!
Since I can't use public identifiers in XML in an intelligent way, I can't
really recommend using them. Unlike *generic* SGML, in XML I can using URN's
in system identifiers in an very intelligent way--the same way I used to use
public identifiers in SGML! ;-)
Makes you wonder why we have public identifiers in XML at all... they are
rather useless in their *current* form! :(
==============================================================================
R. Alexander Milowski http://www.copsol.com/ alex@copsol.com
Copernican Solutions Incorporated (612) 379 - 3608