TrAX-like API for XML::STX
Transformation API for XML (TrAX) is a generic Java API for performing a transformation from source to a result. See the links below for more details:
Apache TrAX PageJava 2 SDK SE TrAX Reference
This document describes a simple TrAX-like Perl API that has been developed for purposes of XML::STX transformation engine.
Objects
General rules and conventions: There are no set/get methods to access to properties. All properties can be passed to new() and set directly in the object. Objects and properties are all mixed case with initial upper-case. Method names have been converted to lower-case with underscores.
TransformerFactory
A factory for Templates objects, a direct factory for Transformer objects. Can also serve as factory for other objects (e.g. SAXSource, SAXResult). This class is used as a base class for the processor.
METHODS:
- new_templates(SAXSource) as Templates
-
Returns a new instance of Templates. The source can also be provided as InputSource or uri, which is turned into SAXSource object automatically using a default XML reader.
- new_transformer(SAXSource) as Transformer
-
Returns a new instance of Transformer. The source can also be provided as InputSource or uri, which is turned into SAXSource object automatically using a default XML reader.
This is a shortcut method that provides a default transformation context for a Templates object directly.
- new_source(uri, XMLReader?) as SAXSource
-
Returns a new instance of SAXSource. The second argument is optional; an instance of XML reader is created automatically if it's missing.
- new_result(Handler?) as SAXResult
-
Returns a new instance of SAXResult. The argument is optional; an instance of handler is created automatically if it's missing.
PROPERTIES:
- ErrorListener as ErrorListener
-
Error listener that is in use when parsing templates.
- URIResolver as URIResolver
-
URI resolver that is in use when parsing templates.
Templates
A runtime representation of the transformation instructions. A data bag for transformation instructions; act as a factory for Transformers.
METHODS:
- new_transformer( ) as Transformer
-
Returns a new instance of Transformer.
Transformer
An execution context for transformations, it serves as an interface for performing the transformation.
METHODS:
- transform(SAXSource, SAXResult?) as result
-
Performs the transformation. The source can also be provided as InputSource or uri, which is turned into SAXSource object automatically using a default XML reader. The second argument is optional; an instance of SAXResult is created automatically if it's missing.
- clear_parameters( )
-
Clears all parameters set for this transformer.
PROPERTIES:
- Parameters as hashref
-
Parameters is a hash keyed by parameter names in JClark's namespace notation. The keys are of the form
{NamespaceURI}LocalName
. If a parameter has no NamespaceURI, then it is simplyLocalName
. Values of the hash are scalar values of parameters. - ErrorListener as ErrorListener
-
Error listener that is in use during the transformation.
- URIResolver as URIResolver
-
URI resolver that is in use during the transformation.
SAXSource
A data holder for SAX input streams.
This object implements an interface called Source representing multiple types of input. Other implementations include DOMSource and StreamSource, none of them implemented by XML::STX.
PROPERTIES:
- SystemId as uri
-
System identifier for the source (optional).
- XMLReader as XMLReader
-
XML reader for the source.
- InputSource as InputSource
-
SAX InputSource for the source.
SAXResult
A data holder for SAX output streams.
This object implements an interface called Result representing multiple types of output. Other implementations include DOMResult and StreamResult, none of them implemented by XML::STX.
PROPERTIES:
- SystemId as uri
-
System identifier for the result (optional).
- Handler as Handler
-
Content handler for the result.
URIResolver
An object that can be called by the processor to turn URIs used in transformations into SAXSource objects.
METHODS:
- resolve(uri, uri) as SAXSource
-
Parameters are URI to be resolved and optional base URI. The function returns a SAXSource object or undef if the URI cannot be resolved.
PROPERTIES:
- Sources as hashref
-
Sources is a hash keyed by URIs. Values of the hash are SAXSource objects. These URI-Source pairs are used when trying to resolve an input URI before standard resolution mechanisms take place.
- Results as hashref
-
Results is a hash keyed by URIs. Values of the hash are SAXResult objects. These URI-Result pairs are used when trying to resolve an output URI before standard resolution mechanisms take place.
ErrorListener
This interface is used by TransformerFactory and Transformer to report all errors and warnings. The ErrorListener property of these objects is used to register an instance of this object.
METHODS:
- warning(Exception)
-
Receives notification of a warning.
- error(Exception)
-
Receives notification of a recoverable error.
- fatal_error(Exception)
-
Receives notification of a non-recoverable error.
Other definitions
Some terms referred in this document are defined in Perl SAX. These terms include:XMLReader
An implementation of Parser interface.
See Perl SAX 2.0 Binding.The default XML reader is chosen from compliant SAX2 parsers installed in system; XML::SAX::PurePerl being the fall-back.
InputSource
A hash representing input source.
See Advanced SAX.Handler
A content handler.
See Advanced SAX.The default handler is chosen from compliant SAX2 writers installed in system; XML::STX::Writer being the fall-back.
Exception
A (blessed) hash representing a Perl exception.
See Perl SAX 2.0 Binding.$Id: TrAXref.pod,v 1.9 2003/05/29 08:42:04 cvspetr Exp $