Hi folks,
I recently made some additions to the built-in style task to have the
capability to use the Processing Instruction(PI)
embeded in the xml source file to locate the stylesheet for the transformation.
I feel that it's more convenient than using style attribute, especially
when there are a lot of xml files to transform and each one has it's a unique
stylesheet(stylesheets).
I hope this functionality can be integrated into the next version of style
task.
Soure file is attached to this email. Hope this helps.
Shengmeng Liu
**************************************************************************************
1)Description:
Process a set of documents via XSLT
This is useful for building views of XML based documentation, or in generating
code.
Added features:
* Now support using the Processing Instruction(PI) embeded in the xml source
file to locate the stylesheet
* Now support using nested Fileset elements to specify all the xml source to
be transformed
Library Dependencies:
1)JAXP compliant parser (such as xerces.jar or the one that comes with Ant)
2)An XSL transformer (Xalan only)
3)JDOM package (www.jdom.org)
2)Parameters: (updated)
Attribute Description
Required
basedir where to find the source XML file, default is the
project's basedir. No (deprecated), use nested fileset instead
style name of the stylesheet to use - given relative to the
basedir attribute No, it has became optional, if not specified,
of this task as well.
task will try to use Processing instructions
to locate the stylesheet to use
3)Parameters specified as nested elements:
fileset
FileSets are used to select xml files to transform.
use nested fileset, instead of the implicit fileset generated from attributes.
Note: either fileset or basedir is specified not both.
4)Examples:
<!-- define task styleX, the revised version of style with support of in-file
PI -->
<taskdef name="styleX"
classname="org.apache.tools.ant.taskdefs.XSLTProcessX"/>
(1)Single file:
<styleX in="xml\auto\stocks.xml"
out="xml\auto-result\stocks.html"
style="xml\stocks.xsl"
includes="**/*.xml"
/>
(2)Batch mode:
<styleX basedir="xml\auto"
destdir="xml\auto-result"
media="wap"
includes="**/*.xml"
>
<param name="date" expression="'07-01-2000'"/>
</styleX>
This will transform all files(recursively) under xml\auto\ that end
with *.xml to xml\auto-result with the same
directory structure, using processing instruction whose media type is
wap, in the xml source file to locate the
stylesheet for styling.
This will also replace an xsl:param definition<xsl:param
name="date"></xsl:param> with the text value 07-01-2000
<styleX destdir="xml\auto-result"
media="wap"
>
<param name="date" expression="'07-01-2000'"/>
<fileset dir="xml\auto">
<include name="**/*.xml"/>
</fileset>
</styleX>
This replaces basedir with nested fileset to specify the source xml
files
XSLTProcessX.java
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
