Provided by: libxml-saxon-xslt2-perl_0.007-2_all 

NAME
XML::Saxon::XSLT2 - process XSLT 2.0 using Saxon 9.x.
SYNOPSIS
use XML::Saxon::XSLT2;
# make sure to open filehandle in right encoding
open(my $input, '<:encoding(UTF-8)', 'path/to/xml') or die $!;
open(my $xslt, '<:encoding(UTF-8)', 'path/to/xslt') or die $!;
my $trans = XML::Saxon::XSLT2->new($xslt, $baseurl);
my $output = $trans->transform($input);
print $output;
my $output2 = $trans->transform_document($input);
my @paragraphs = $output2->getElementsByTagName('p');
DESCRIPTION
This module implements XSLT 1.0 and 2.0 using Saxon 9.x via Inline::Java.
It expects Saxon to be installed in either '/usr/share/java/saxon9he.jar' or
'/usr/local/share/java/saxon9he.jar'. Future versions should be more flexible. The saxon9he.jar file can
be found at <http://saxon.sourceforge.net/> - just dowload the latest Java release of Saxon-HE 9.x, open
the Zip archive, extract saxon9he.jar and save it to one of the two directories above.
Import
use XML::Saxon::XSLT2;
You can include additional parameters which will be passed straight on to Inline::Java, like this:
use XML::Saxon::XSLT2 EXTRA_JAVA_ARGS => '-Xmx256m';
The "import" function must be called. If you load this module without importing it, it will not work.
(Don't worry, it won't pollute your namespace.)
Constructor
"XML::Saxon::XSLT2->new($xslt, [$baseurl])"
Creates a new transformation. $xslt may be a string, a file handle or an XML::LibXML::Document.
$baseurl is an optional base URL for resolving relative URL references in, for instance, <xsl:import>
links. Otherwise, the current directory is assumed to be the base. (For base URIs which are
filesystem directories, remember to include the trailing slash.)
Methods
"$trans->parameters($key=>$value, $key2=>$value2, ...)"
Sets transformation parameters prior to running the transformation.
Each key is a parameter name.
Each value is the parameter value. This may be a scalar, in which case it's treated as an xs:string;
a DateTime object, which is treated as an xs:dateTime; a URI object, xs:anyURI; a Math::BigInt,
xs:long; or an arrayref where the first element is the type and the second the value. For example:
$trans->parameters(
now => DateTime->now,
madrid_is_capital_of_spain => [ boolean => 1 ],
price_of_fish => [ decimal => '1.99' ],
my_link => URI->new('http://example.com/'),
your_link => [ uri => 'http://example.net/' ],
);
The following types are supported via the arrayref notation: float, double, long (alias int,
integer), decimal, bool (alias boolean), string, qname, uri, date, datetime. These are case-
insensitive.
"$trans->transform($doc, [$output_method])"
Run a transformation, returning the output as a string.
$doc may be a string, a file handle or an XML::LibXML::Document.
$output_method may be 'xml', 'xhtml', 'html' or 'text' to override the XSLT output method; or
'default' to use the output method specified in the XSLT file. 'default' is the default. In the
current release, 'default' is broken. :-(
"$trans->transform_document($doc, [$output_method])"
As per <transform>, but returns the output as an XML::LibXML::Document.
This method is slower than "transform".
"$trans->messages"
Returns a list of string representations of messages output by <xsl:message> during the last
transformation run.
"$trans->media_type($default)"
Returns the output media type for the transformation.
If the transformation doesn't specify an output type, returns the default.
"$trans->doctype_public($default)"
Returns the output DOCTYPE public identifier for the transformation.
If the transformation doesn't specify a doctype, returns the default.
"$trans->doctype_system($default)"
Returns the output DOCTYPE system identifier for the transformation.
If the transformation doesn't specify a doctype, returns the default.
"$trans->version($default)"
Returns the output XML version for the transformation.
If the transformation doesn't specify a version, returns the default.
"$trans->encoding($default)"
Returns the output encoding for the transformation.
If the transformation doesn't specify an encoding, returns the default.
BUGS
Please report any bugs to <http://rt.cpan.org/>.
SEE ALSO
XML::LibXSLT is probably more reliable in terms of easy installation on a variety of platforms, and it
allows you to define your own XSLT extension functions. However, the libxslt library that it's based on
only supports XSLT 1.0.
This module uses Inline::Java.
<http://saxon.sourceforge.net/>.
AUTHOR
Toby Inkster <tobyink@cpan.org>.
COPYRIGHT
Copyright 2010-2012 Toby Inkster
This library is free software; you can redistribute it and/or modify it under the same terms as Perl
itself.
perl v5.14.2 2012-09-11 XML::Saxon::XSLT2(3pm)