OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: DOCBOOK-APPS: Re: DOCBOOK: Re: website dtd newbie


> From: Alex Lancaster <alexl@socrates.berkeley.edu>
> 
> >>>>> "-" == Bob Stayton <bobs@caldera.com> writes:
> 
> >> Should this be expected to work for SGML catalogs?  I tried the
> >> following mapping of system id to system id (analogous to the XML
> >> version) in my SGML catalog:
> >> 
> >> SYSTEM
> >> "http://docbook.sourceforge.net/release/xsl/snapshot/html/docbook.xsl"
> >> "file:///home/alex/packages/share/sgml/docbook-xsl-1.46-experimental"
> >> 
> >> Is this the correct syntax?
> 
> -> No, it looks like you are mapping a URI for a specific file to a
> -> directory.  You need to map it to the exact stylesheet file you are
> -> importing.
> 
> Whoops, well spotted, my mistake, I should have spotted that (it was
> pretty late at night).  Nevertheless if I change it to the correct
> location, I still get the error:
> 
> SGML_CATALOG_FILES=/etc/sgml/catalog:catalog xsltproc --parsection.autolabel 1 --param use.extensions 1 --catalogs --nonet  -o biostat_rhtml html.xsl biostat_ref.xml
> Attempt to load network entity
> http://docbook.sourceforge.net/release/xsl/snapshot/html/docbook.xsl 
> compilation error: file html.xsl line 8 element import
> xsl:import : unable to load http://docbook.sourceforge.net/release/xsl/snapshot/html/docbook.xsl
> 
> Here is my full catalog:
> 
> OVERRIDE YES
> PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
> "/usr/share/sgml/docbook/xml-dtd-4.1.2/docbookx.dtd"
> 
> OVERRIDE YES
> SYSTEM
> "http://docbook.sourceforge.net/release/xsl/snapshot/html/docbook.xsl"
> "/home/alex/packages/share/sgml/docbook-xsl-1.46-experimental/html/docbook.xsl"
> 
> The error in both cases, however, is that it can't load the network
> entity, which it should never attempt to do if the catalog is using
> the local system id.  If it was simply the case that my system id was
> wrong (as in my previous post), I would have expected an error like:
> 
> Attempt to load
> /home/alex/packages/share/sgml/docbook-xsl-1.46-experimental
> compilation error: file html.xsl line 8 element import
> xsl:import : unable to load /home/alex/packages/share/sgml/docbook-xsl-1.46-experimental
> 
> -> When I use your example with a customization like yours, it works
> -> with xsltproc.  But be aware that there was a version of xsltproc
> -> (actually libxml2) that was broken regarding catalogs.  I'm using
> -> libxml2-2.4.10 and libxslt-1.0.7.
> 
> Interesting, yes I had heard abou that, I, too, am using these exact
> version:
> 
> [alex@delpy Swarm]$ rpm -q libxml2 libxslt
> libxml2-2.4.10-2
> libxslt-1.0.7-4
> 
> Could you post the customization layer you are using?  I take it you
> are using the `--nonet' option to xsltproc to specifically *prevent*
> it from loading any files from the net?

Oops, my turn to admit a mistake.  I didn't use --nonet, so
I was getting network resolution without catalog usage.  Duh.

But now I remember how I did it before.  I don't
think you can resolve <xsl:import> hrefs with an SGML
catalog, only with an XML catalog.  XML catalogs are
described at:

http://www.oasis-open.org/committees/entity/spec.html

A uri-to-uri mapping like you want but inside an XML
catalog looks like this:

<!DOCTYPE catalog
  PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
  "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">

<uri
name="http://docbook.sourceforge.net/release/xsl/snapshot/html/docbook.xsl"
uri="file:///home/docadmin/docbook-xsl-1.45/html/docbook.xsl"/>

</catalog>

This catalog works with --nonet to resolve the an import href
to a local file.

bobs
Bob Stayton                                 400 Encinal Street
Publications Architect                      Santa Cruz, CA  95060
Technical Publications                      voice: (831) 427-7796
Caldera International, Inc.                 fax:   (831) 429-1887
                                            email: bobs@caldera.com


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC