Re: XSLT call to arms! (was Re: [PHP-DOC] revcheck.html)
| From: | Gabor Hojtsy | Date: | Thu, 07 Feb 2002 17:34:21 +0000 |
| Subject: | Re: XSLT call to arms! (was Re: [PHP-DOC] revcheck.html) | ||
| References: | 1 2 3 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969342044@lists.php.net to get a copy of this message | ||
> creating bightml using xslt stylesheets and saxon takes less than
> 10 minutes compared to over an hour using jade
>
> creating chunked html takes about an hour using jade and about 5(!)
> using saxon, but here gnome libxslt does the job within 20 minutes
>
> for the print version i have no comparison values yet. it takes about
> 10 minutes to generate the xsl/foo, but i didn't manage to get apache
> fot to create pdf from it and i do not know of any other open/free
> fo processor :( (ok, passiveTeX, but even its creator says its only
> a proof of concept and not meant to by of any real use yet)
>
> so we could gain a lot of speed by finaly switching from dsssl to xslt
> at least for the html based formats (including txt, chm and palmdoc),
> but ...
OK, So I wanted to test this stuff with XSL[T] processors on Windows.
I tried:
MSXML (actually msxsl.exe is able to use MSXML from command line):
| $ ./msxsl.exe manual.xml xsl/html.xsl
| Error occurred while compiling stylesheet 'xsl/html.xsl'.
| Code: 0x80004005
| The xsl:apply-imports instruction may only occur within an
| xsl:template instruction with a match attribute, and may not
| occur within an xsl:for-each instruction.
| Error occurred during compilation of included or imported
| stylesheet 'chunk-common.xsl'.
Actually the error message is buggy, because <xsl:apply-templates/>
is only used in <xsl:template>, <xsl:when> and <xsl:otherwise>
tags. So I searched up the content models for these tags, template
is ok, but when and otherwise specifies the model this way:
<!ELEMENT xsl:when %template;>
<!ELEMENT xsl:otherwise %template;>
%template is:
<!ENTITY % template "(#PCDATA %instructions; %result-elements;)">
Nor %instructions;, nor %result-elements; contain apply-templates,
as possible children, so MSXML is right here, and chunk-common.xsl
is not conforming to the XSLT DTD as presented in Appendix C of
the XSLT spec.
Saxon:
| $ ./saxon.exe manual.xml xsl/html.xsl
| Error on line 35 column 5 of file:/g:/phpcvs/phpdoc/manual.xml:
| Error reported by XML parser: Cannot read from
| file:/g:/phpcvs/phpdoc/entities/en/bookinfo.xml
| (\g:\phpcvs\phpdoc\entities\en\bookinfo.xml)
| Transformation failed: Run-time errors were reported
Saxon errors are because the "what is the base for relative paths?"
question of saxon handled differently than jade/openjade. Saxon
would like to open the files relative to the entity file, and not
relative to the manual.xml file. Hartmut how you can handle this
in your tests with XSL[T] processors?
I also searched up XT, but it is quite old, and not updated
since 1999 as I can see. I have not downloaded xalan, as thought,
one of the programs above should work. :((
I would be very happy to see MSXML working, as it must beat in
spead any Java app on Windows, as it is native MS code. Though
this prog is not a solution for general phpdoc needs, it would
be enough for CHM related tasks, if I can get it working...
BTW I tested with "MSXML 4.0 RTM" and "MSXSL 4.0".
Goba