Provided by: libxml-saxon-xslt2-perl_0.010-2_all bug

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, 2014 Toby Inkster

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.