LSB SGML/XML appendix: finding the DTD (Was: Re: [firstname.lastname@example.org: Standard libxml-based processing scripts for DocBook?])
Le Vendredi 18 Mai 2001 00:54, Rafa³ Kleger-Rudomin a écrit :
> That was XML developers who decided that using system IDs in the form
> of URL (URI?) is enough to locate the document. FPI is a sgml concept.
> It constitutes some artificial mapping between wanted file
> and it's location. XML was designed to be net oriented - why the
> net_domain/file name (which you can quite easily choose now) is worst to
> identify the resource than some artificial string that must also be
> assigned uniqely worldwide?
Because you don't necessarily have net access. Even if you have a cache, the
file needs to be found for the first time.
> Seems you did not catch the idea. I shouldn't have called it 'cache',
> it's misleading:
I got the idea, so let me rephrase it: you want a mapping between the URI
used in the system identifier, and the real files.
I said that this mapping would gain with being made of pointers and not by
duplicating the files.
> It is not really the cache - I assume rpm packages simply contains
> files in paths like /usr/share/xmlcache/http:/www.docbook.org/xml/4.1.2/.
While duplicate the files when a pointer is enough? You could easily map
/usr/share/sgml/docbook/xml-dtd-4.1.2/docbookx.dtd in, say,
/etc/sgml/xml-cache. It wouldn't make your "patch" much more complicated.
/etc/sgml/xml-cache could very well contain lines like:
If you follow this reasoning, you realize then that such a mapping is a bit
like reinventing the wheel (the catalogs), just for the pleasure of having
> No %post scripts any more! No intermetiate files like catalogs, no
> configuration, no need to parse anything! Full "plug-and-play" ;)
Then it's you who don't get the point:
*who* will do your famous "cp -a"? Not the end-user, I hope. So it has to be
done in the %post script. Don't tell me that it will be done by fetching the
file from the net, or I will object when you are installing a Linux system
usually your network connexion is not working already.
> The instructions I gave before (cp -a...) concered only quick testing
> of my patch to rxp.
Let's take a very concrete example. The user wants to install KDE
documentation that says "http://www.kde.org/doc/kdex.dtd" in the sysid (it's
a fake example built to meet what you want - in fact they currently have
"dtd/kdex.dtd" in the sysid).
KDE's "real" DTD customization could be installed, according to the
distribution, somewhere under /usr/share/ or /opt/kde or /opt/kde2. All are
LSB-conformant as far as I know.
Is the user supposed to enter by hand the "cp -a" command (or its equivalent
entry in /etc/sgml/xml-cache) when he installs the KDE DTD customization,
which is most probably done when he/she installs kdebase RPM?
- if kdebase RPM does not do it in its %post section,
- if you have no access to the net because kdebase is being installed with
the rest of Linux and you don't have the network connexion working already,
- if the user does not type it manually,
- if the XML tools do not know about KDE and where it can get installed (why
- if no angel comes down from heaven to tell where the DTD customization is
on the hard disk,
how can this DTD customization (or a pointer to it) be fetched for the first
time into the cache?
and to make this case study even worse, let's assume that this user has no
modem line and no other net connexion (it does exist), and got everything on
Éric Bischoff - Documentation and Localization
Caldera (Deutschland) GmbH - Linux for eBusiness
Tel: +49 9131 7192 300 - Fax: +49 9131 7192 399