[Prev][Next][Index][Thread]

Re: XML catalog draft



> From: lee@sq.com
> Date: Sat, 1 Feb 97 01:43:55 EST

> 
> I want to make sure that it does not forbid a system that uses a remote
> lookup in a database instead of a catalog (for example).

The catalog proposal says:
 If an entity has a public identifier, an XML processor may retrieve the
 content of the entity using any mapping of public identifier to system
 identifier that it wishes; in the interest of document portability,
 this specification describes a particular mapping that is recommended
 but not required.

Further on, it says:
 When an XML processor encounters an external entity defined by a public
 identifier, the processor may, but need not, determine the associated
 system identifier required for the tasks described in section 4.3 of
 this specification from a supplemental XML catalog.

Do you still feel additional or modified wording is needed so 
that this proposal "does not forbid a system that uses a remote
lookup in a database instead of a catalog (for example)"?

> 
> We need to be 200% clear on what happens if both system and public ID
> are given:
>     * is catalog consulted?
>     * what happens if the catalog lookup gives a different result than
>       the system identifier?  For Panorama, the system identifier on
>       the DOCTYPE line usually wins in that case.  But it actually
>       depends on the user's preferences.  Author/Editor ignores
>       the PUBLIC identifier if there is a SYSTEM one.

While the SGML Open TR9401 does require an implementation to allow a user
to choose either to "prefer SYSTEM" or "prefer PUBLIC", the current XML
catalog proposal was simplified so that PUBLIC is always preferred.  If
there is a PUBLIC id (whether or not there is also a SYSTEM id) and a
catalog is being used, the catalog is consulted.  If using the PUBLIC id 
results in finding the external entity, any SYSTEM id included in the
original ExternalID is ignored.  All this was meant to be addressed in the
current XML proposal by the following wording:

 If an entity has a public identifier, an XML processor may retrieve the
 content of the entity using any mapping of public identifier to system
 identifier that it wishes;. . .

 Regardless of the resolution process attempted, if the XML processor
 cannot successfully use or resolve the public identifer, and a system
 identifier follows the public identifier, the XML processor shall
 behave as if the system identifier was the only identifier supplied.
 If the XML processor cannot successfully use or resolve the public
 identifier, and a system identifier does not follow the public
 identifier, the XML processor shall behave as if a system identifier
 could not be resolved.

Perhaps preceding the current first sentence of the second above quoted
paragraph with a new initial sentence as follows would help:

 If an ExternalID has a public identifier, the XML processor shall first
 attempt to retrieve the contents of the entity by using or resolving the
 public identifier.
 
> 
> We also need to say what happens when catalog is not found.
> 
> We also need to say exactly where to find the catalog file.
> Does a processing instruction in the document header point to it,
> for example?  What if the XML document is generated as the result of
> a cgi query, so that there is no "current directory" of the document...?
> What if we don't have a "base URL" for the XML document?

Our subgroup mentioned this point, and we decided this was not
necessarily part of adding public identifiers to XML.

PaulP offered to write up some suggestions in this area as a
separate task so as to avoid confounding public IDs and catalogs
with questions of how to "package" XML applications that might
include document instance files, external XML entities, graphics,
style sheets, catalogs, etc.

paul