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

Re: rewriteSystem in docbook-xsl XML catalog



Michael Smith wrote:
Actually, a possible benefit of having them in there is that it
suppresses an unnecessary warning that the xmlcatalog utility
emits if you run it like this:

  xmlcatalog /etc/xml/catalog http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl

If you do that and there is no System ID mapping for that URI
(even if there is a URI mapping), you get this:

  No entry for SYSTEM http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
  file:///usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl

Yep, that's what I was referring to.

And instead of going to stderr, the warning goes to stdout right
along with the "file:" output.

So, it is actually of (limited) benefit to have the rewriteSystem
entries in there, and as you said, they aren't doing any harm.
Give that, I guess there's no need to remove them.

Yeah, it's OK to leave them, but it really is bad practice.

Mostly I was
just thinking that other packagers might use that catalog file as
an example and end up unnecessarily including rewriteSystem in
catalog files for other stylesheet packages.

Funny. This was precisely my reservation for putting them in. The syste, vs. uri entry is a constant source of confusion for implementers, despite significant additional explanatory text in the XML Catalogs spec. I believe I also covered this topic in the Debian XML Policy draft (I think.)

Thanks for paying attention!

Cheers,
Mark



  --Mike

Mark Johnson <mrj@debian.org> writes:


Michael Smith wrote:

Mark,

I notice that the catalog.xml in your docbook-xsl package contains
both rewriteURI and rewriteSystem entries. I'm wondering why the
rewriteSystem entries are there and if they are necessary.

Hi Mike,

The only reason I put them in there is because there was a time when libxml2/libxslt didn't support uri elements, and so the system elements were required. IIRC, someone even filed a bug because of this. In fact, I submitted editorial patches to the XML Catalogs spec that clarified this very point, so I do grok the issue you raise.

I do understand the difference between a URI and a SYSTEM identifier as defined in Production 70 of the XML spec, I was simply trying to play it "safe".

I know that it's also an improper implementation of the XML catalogs spec, too. I filed a bug against libxml2 a long time ago & I believe it now properly supports the uri element.

I'll fix the catalogs when I do the next update, as I'm sure someone will find another bug. For now, the extra "system" entry doesn't really do any harm.

Thanks for pointing it out, though.

Cheers,
Mark


The only circumtance in which I could see them being needed was
if someone wanted to define an entity in a DTD subset in a
document instance (not an XSLT stylesheet) and reference that
entity in the document instance (as a way of including the entire
stylesheet in the document). That doesn't seem to me like
something most people (or maybe, anybody) would ever want to do.

In the case of XSLT stylesheets, they always use the URI as the
value on an import or include statement, right? So the
rewriteSystem catalog entries are never used.

--Mike




--
____________________________________________________________
Mark Johnson      <mrj@debian.org>
Debian XML/SGML:  <http://debian-xml-sgml.alioth.debian.org>
Home Page:        <http://dulug.duke.edu/~mark/>
GPG fp: DBEA FA3C C46A 70B5 F120  568B 89D5 4F61 C07D E242



Reply to: