[oXygen-user] importing a custom docbook epub stylesheet

Robert Nagle
Sat Jun 27 04:05:30 CDT 2009

Hi, I noticed there is a good web demo of how to customize a docbook


Basically you create a customization layer which imports the standard
docbook stylesheet. Then you edit that customization layer.

I noticed something strange. Oxygen validates the imported stylesheet
when XSLT version is 1.0, but if you change it to 2.0, I get 19

this is fine
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

this produces saxon errors
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
here's a screenshot of the error messages

What it looks like is going on is that Oxygen is recognizing that the
XSL being imported is from docbook and therefore it uses a local copy
of the file. And it's seeing a mismatch between the latest version
online with the local xsl it is references.

So I changed it to this and got a smaller number of errors:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

SystemID: I:\My Documents\xml\rj2\test99ertest\2rjcustom.xsl
Engine name: Saxon-B
Severity: error
Description: Failed to compile stylesheet. 1 error detected.

SystemID: http://docbook.sourceforge.net/release/xsl/1.75.1/epub/docbook.xsl
Engine name: Saxon-B
Severity: fatal
Description: The priority attribute must be absent if the match
attribute is absent
Start location: 1308:30
URL: http://www.w3.org/TR/xslt20/#err-XTSE0500

SystemID: http://docbook.sourceforge.net/release/xsl/1.75.1/common/stripns.xsl
Engine name: Saxon-B
Severity: warning
Description: The attribute axis starting at a document node will never
select anything
Start location: 282:0

I have some meta questions with regard to the general process of
debugging here.

1. I assume that xslt v2 is better because it's a bigger number (and
I've glanced over the differences in syntax, etc). Can you think of a
reason why something would fail when version 2 is specified which
would not be the case if version 1 is specified? Is best practice just
to play it safe and go with version 1, or should I generally use 2
unless otherwise specified?

2. I'm guessing that it's easier to debug a local copy of a xsl file
than a remote one (in this case version of the epub-xsl
transform. which is different from the local version (which is 1.7.4
that came with 10.2).  Is there a way that Oxygen knows to associate
the URL in the xsl import command with a local file or files on my
Windows machine? I don't know how to do this.

3. (Now for my really naive question). What's the best way to debug
XSLT messages. Should I start at the source xsl of the file(s)  being
imported here. Or should I be looking up references in Saxon parser or
using some Oxygen debugging view.  I realize that the answer is
probably "it depends", but where does one start first?




Robert Nagle
12777 Ashford Point Dr #1417
Houston, Texas 77082
713 893 3424

More information about the oXygen-user mailing list