[oXygen-user] how to make processing instructions work with an Oxygen Docbook transform?
Sorin Ristache
Thu Jul 17 04:03:57 CDT 2014
Hi,
A Docbook customization layer should be used in Oxygen too. The XSLT
file that is set in the built-in Docbook PDF transformation is already a
customization layer:
OXYGEN_INSTALL_DIR/frameworks/docbook/xsl/fo/docbook_custom.xsl
You can edit this file directly and add an xsl:import like:
<xsl:import href="pi-docbook.xsl"/>
or you can duplicate the built-in Docbook PDF transformation and change
the customization layer file in the XSL URL field with your own XSLT
file (for example pi-docbook.xsl) modified so that it imports the above
frameworks/docbook/xsl/fo/docbook_custom.xsl file.
Regards,
Sorin
Robert Nagle wrote:
> Hi, there,
>
> (I'm on the latest version of Oxygen Author, using FOP PDF transform).
>
> I'd like to use a Dcobook processing instruction for page breaks on PDF
> -- as mentioned in Bob's book.
> http://www.sagehill.net/docbookxsl/PageBreaking.html#HardPageBreaks
>
> I'd like to use one of the Oxygen transforms for Docbook. What are my
> options here? I see that in the transform dialog you have an "Additional
> XSLT stylesheet" option on the XSLT tab. Can I use that?
>
> I created a file pi-docbook.xsl which is just this:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:d="http://docbook.org/ns/docbook"
> exclude-result-prefixes="d"
> xmlns="http://www.w3.org/1999/xhtml" version="1.0">
> <xsl:template match="processing-instruction('hard-pagebreak')">
> <fo:block break-after='page'/>
> </xsl:template>
> </xsl:stylesheet>
>
> If I add this simple XSL file to use as an additional XSLT stylesheet
> (in the Edit Scenario dialog--> XSLT tab), it gave me an error. (See
> below). It seems to give me some prolog errors. I have used processing
> instructions successfully if I download my own Docbook XSLT and
> transform my project using a customization layer (which then imports the
> docbook files). I know how to do that.
>
> But I'm working for a client and would like to give them something easy
> which they can do entirely with the Oxygen transforms. Do you have any
> ideas about how to do PIs? or do you know why I get this error message?
> thanks.
>
>
>
> The process 'Apache FOP' ended with code: 1.
> The error was:
> ERROR - Exception
> org.apache.fop.apps.FOPException: org.xml.sax.SAXParseException; systemId: file:/C:/Users/kingrobert/Documents/Dropbox/job/source/index.xml_xslt; lineNumber: 1; columnNumber: 39; Content is not allowed in prolog.
> net.sf.saxon.trans.XPathException: org.xml.sax.SAXParseException; systemId: file:/C:/Users/kingrobert/Documents/Dropbox/job/source/index.xml_xslt; lineNumber: 1; columnNumber: 39; Content is not allowed in prolog.
> at org.apache.fop.cli.InputHandlerFOP.transformTo(Unknown Source)
> at org.apache.fop.cli.InputHandlerFOP.renderTo(Unknown Source)
> at org.apache.fop.cli.Main.startFOP(Main.java:177)
> at org.apache.fop.cli.Main.main(Main.java:208)
> Caused by: net.sf.saxon.trans.XPathException: org.xml.sax.SAXParseException; systemId: file:/C:/Users/kingrobert/Documents/Dropbox/job/source/index.xml_xslt; lineNumber: 1; columnNumber: 39; Content is not allowed in prolog.
> at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:420)
> at net.sf.saxon.event.Sender.send(Sender.java:143)
> at net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:46)
> ... 4 more
More information about the oXygen-user
mailing list