Re: XML catalog draft

> From: Martin Bryan <mtbryan@sgml.u-net.com>
> Paul Grosso wrote:
> >> Why is # not included in SpecialChars? 
> >
> >In other words, if we allowed # in SpecialChars, an XML PublicID would
> >not be a value 8879 minimum literal and hence not a valid 8879 public id.
> I knew this, but the question I wanted to raise is whether there is a real
> need to restrict XML public IDs to the same rules as SGML ones. I'm not
> convinced there is, despite my strong allegience to SGML. My reasons are
> stated below.

A reasonable question to raise, but it seems we should have a good reason
to do something incompatible with 8879 (not that I haven't been annoyed
by the restrictions of minimum literals before, but we've decided many
times before in this XML work that we would stick within the framework
of 8879 unless we had a really good reason).

> Let me give an example of why I think there is a case for # in XML public IDs.
> My material on ODA, SGML and XML all sits in a single file. I could give
> this file a ISO 9070 conformant public id of
> +//EU::ECHO::IM::INFO2000::OII//TEXT Document Standards//EN
> This works fine in a catalog that is simply a catalog. The problem I have is
> in reusing this information as part of a XML XLG link group. Here I need to
> refer to a lower level, to the fragment IDs for ODA, SGML and XML. Now I
> could do something like: 
> +//EU::ECHO::IM::INFO2000::OII//TEXT Document Standards::ODA//EN
> +//EU::ECHO::IM::INFO2000::OII//TEXT Document Standards::SGML//EN
> +//EU::ECHO::IM::INFO2000::OII//TEXT Document Standards::XML//EN
> OK, I'm still kosher SGML here, but the mapping between system IDs and
> public IDs would be easier if I could adopt the following alternative names:
> +//EU::ECHO::IM::INFO2000::OII//TEXT docstand.html#ODA//EN
> +//EU::ECHO::IM::INFO2000::OII//TEXT docstand.html#SGML//EN
> +//EU::ECHO::IM::INFO2000::OII//TEXT docstand.html#XML//EN
> This form would allow automatic translation of my existing anchors into
> public IDs, without having to add a manual intervention stage to define the
> name that the file is to be known as. It is with this in mind that I asked
> that we think carefully as to whether there would be advantages in allowing
> # to be used in XML public IDs. (I have also asked that it be added to the
> SGML minimum data character set when SGML is revised.)

If by definition, a public id is something that gets mapped into a
system id, I fail to see the need for # in a public id based on your
example.  Make your public id the "kosher SGML" one and map it into
whatever system id you want (with #'s in it or whatever).

Your non-kosher "public ids" are system ids.  You've got file names
and subnames embedded in them.

I don't understand the automatic translation of which you speak.  It
sounds like you're talking about translating system ids into public
ids, but that's "backwards."  That may be something of interest for an
authoring system, but an XML application still needs to map those
public ids back into system ids to do anything.  How is that to be
done?  If through a catalog, then you'll need to set up the catalog
that maps the public ids to system ids, and I don't see why you can't
do that for valid public ids as easily as for invalid ones.  If you are
suggesting that your invalid public ids "contain" the system id and can
therefore be mapped back into the corresponding system id without a
catalog, that sounds like a system-specific, non-interoperable
mapping--which basically leads me back to saying your invalid public
ids might as well be system ids.