Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
XSLTEngineImpl Class Reference

It's the responsibility of the XSLTEngineImpl class, collaborating with the XML parser liaison, the DOM, and the XPath engine, to transform a source tree of nodes into a result tree according to instructions and templates specified by a stylesheet tree. More...

Inheritance diagram for XSLTEngineImpl:
XSLTProcessor PrefixResolver

Classes

struct  FindStringPointerFunctor
struct  LessXalanDOMStringPointers

Public Types

typedef XalanVector< const
LocatorType * > 
LocatorStack
typedef XalanVector
< TraceListener * > 
TraceListenerVectorType
typedef XalanVector< const
XalanDOMString * > 
XalanDOMStringPointerVectorType
typedef XalanVector< bool > BoolVectorType
typedef XalanMemMgrAutoPtr
< XPathProcessor, true > 
XPathProcessorPtrType
typedef
Function::XObjectArgVectorType 
XObjectArgVectorType
typedef
StylesheetExecutionContext::ParamVectorType 
ParamVectorType
typedef
XPathConstructionContext::GetAndReleaseCachedString 
CCGetAndReleaseCachedString
typedef
XPathExecutionContext::GetAndReleaseCachedString 
ECGetAndReleaseCachedString
- Public Types inherited from XSLTProcessor
typedef size_t size_type

Public Member Functions

 XSLTEngineImpl (MemoryManagerType &theManager, XMLParserLiaison &parserLiaison, XPathEnvSupport &xpathEnvSupport, DOMSupport &domSupport, XObjectFactory &xobjectFactory, XPathFactory &xpathFactory)
 Construct an XSL processor that can call back to a XML processor, so it can handle included files, and the like.
virtual ~XSLTEngineImpl ()
MemoryManagerTypegetMemoryManager ()
virtual void process (const XSLTInputSource &inputSource, const XSLTInputSource &stylesheetSource, XSLTResultTarget &outputTarget, StylesheetConstructionContext &constructionContext, StylesheetExecutionContext &executionContext)
 Transform the source tree to the output in the given result tree target.
virtual void process (const XSLTInputSource &inputSource, XSLTResultTarget &outputTarget, StylesheetExecutionContext &executionContext)
 Transform the source tree to the output in the given result tree target.
virtual StylesheetRootprocessStylesheet (const XSLTInputSource &stylesheetSource, StylesheetConstructionContext &constructionContext)
 Given a stylesheet input source, compile the stylesheet into an internal representation.
virtual StylesheetRootprocessStylesheet (const XalanDOMString &xsldocURLString, StylesheetConstructionContext &constructionContext)
 Given a URI to an XSL stylesheet, compile the stylesheet into an internal representation.
virtual XalanNodegetSourceTreeFromInput (const XSLTInputSource &inputSource)
 Given an input source, get the source tree.
virtual void resolveTopLevelParams (StylesheetExecutionContext &executionContext)
 Resolve the params that were pushed by the caller.
virtual XMLParserLiaisongetXMLParserLiaison () const
 Get the XML Parser Liaison that this processor uses.
virtual void getUniqueNamespaceValue (XalanDOMString &theValue)
 Generate a random namespace prefix guaranteed to be unique.
virtual void setStylesheetParam (const XalanDOMString &key, const XalanDOMString &expression)
 Push a top-level stylesheet parameter.
virtual void setStylesheetParam (const XalanDOMString &key, XObjectPtr value)
 Push a top-level stylesheet parameter.
virtual FormatterListenergetFormatterListener () const
 Get the current formatter listener.
virtual void setFormatterListener (FormatterListener *flistener)
 Set the current formatter listener.
virtual size_type getTraceListeners () const
 Determine the number of trace listeners.
virtual void addTraceListener (TraceListener *tl)
 Add a trace listener for the purposes of debugging and diagnosis.
virtual void removeTraceListener (TraceListener *tl)
 Remove a trace listener.
virtual void fireGenerateEvent (const GenerateEvent &ge)
 Fire a generate event.
virtual void fireTraceEvent (const TracerEvent &te)
 Fire a trace event.
virtual void fireSelectEvent (const SelectionEvent &se)
 Fire a selection event.
virtual bool getTraceSelects () const
 If this is set to true, simple traces of template calls are made.
virtual void setTraceSelects (bool b)
void traceSelect (StylesheetExecutionContext &executionContext, const ElemTemplateElement &theTemplate, const NodeRefListBase &nl, const XPath *xpath) const
 Compose a diagnostic trace of the current selection.
virtual void setQuietConflictWarnings (bool b)
 If the quietConflictWarnings property is set to true, warnings about pattern conflicts won't be printed to the diagnostics stream.
virtual void setDiagnosticsOutput (PrintWriter *pw)
 If this is set, diagnostics will be written to the m_diagnosticsPrintWriter stream.
virtual const XalanDOMStringgetNamespaceForPrefix (const XalanDOMString &prefix) const
 Retrieve a namespace corresponding to a prefix.
virtual const XalanDOMStringgetURI () const
 Retrieve the base URI for the resolver.
XalanDocumentparseXML (const XalanDOMString &urlString, DocumentHandlerType *docHandler, XalanDocument *docToRegister)
 Read in the XML file, either producing a Document or calling SAX events, and register the document in a table.
XalanDocumentparseXML (const InputSourceType &inputSource, DocumentHandlerType *docHandler, XalanDocument *docToRegister)
 Read in the XML file, either producing a Document or calling SAX events, and register the document in a table.
StylesheetgetStylesheetFromPIURL (const XalanDOMString &xslURLString, XalanNode &fragBase, const XalanDOMString &xmlBaseIdent, bool isRoot, StylesheetConstructionContext &constructionContext)
 Reset the state of the XSL processor by reading in a new XSL stylesheet from a processing instruction.
void flushPending ()
 Flush the pending element.
void addResultNamespaceDecl (const XalanDOMString &prefix, const XalanDOMString &namespaceVal)
 Add a namespace declaration to the namespace stack.
void addResultNamespaceDecl (const XalanDOMString &prefix, const XalanDOMChar *namespaceVal, XalanDOMString::size_type len)
 Add a namespace declaration to the namespace stack.
void addResultAttribute (AttributeListImpl &attList, const XalanDOMString &aname, const XalanDOMString &value, bool fromCopy=false, const LocatorType *locator=0)
 Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.
void addResultAttribute (AttributeListImpl &attList, const XalanDOMString &aname, const XalanDOMChar *value, bool fromCopy=false, const LocatorType *locator=0)
 Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.
void addResultAttribute (AttributeListImpl &attList, const XalanDOMString &aname, const XalanDOMChar *value, XalanDOMString::size_type theLength, bool fromCopy=false, const LocatorType *locator=0)
 Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.
void addResultAttribute (const XalanDOMString &aname, const XalanDOMChar *value, bool fromCopy=false, const LocatorType *locator=0)
 Add attribute to pending attributes list, and if it is a namespace, add it to the namespaces stack.
void addResultAttribute (const XalanDOMString &aname, const XalanDOMString &value, bool fromCopy=false, const LocatorType *locator=0)
 Add attribute to pending attributes list, and if it is a namespace, add it to the namespaces stack.
void reportDuplicateNamespaceNodeError (const XalanDOMString &theName, const LocatorType *locator)
 Report an error copying a duplicate namespace node.
void setDocumentLocator (const LocatorType *locator)
void startDocument ()
void endDocument ()
void startElement (const XalanDOMChar *name, AttributeListType &atts)
void endElement (const XalanDOMChar *name)
void characters (const XalanDOMChar *ch, XalanDOMString::size_type length)
void ignorableWhitespace (const XalanDOMChar *ch, XalanDOMString::size_type length)
void processingInstruction (const XalanDOMChar *target, const XalanDOMChar *data)
void resetDocument ()
void characters (const XalanDOMChar *ch, XalanDOMString::size_type start, XalanDOMString::size_type length)
 Receive notification of character data.
void characters (const XalanNode &node)
 Send character data from the node to the result tree.
void characters (const XObjectPtr &xobject)
 Send character data from an XObject to the result tree.
void startElement (const XalanDOMChar *name)
 Receive notification of the beginning of an element with an empty attribute list.
void charactersRaw (const XalanDOMChar *ch, XalanDOMString::size_type start, XalanDOMString::size_type length)
 Receive notification of character data.
void charactersRaw (const XalanNode &node)
 Send raw character data from the node to the result tree.
void charactersRaw (const XObjectPtr &xobject)
 Send raw character data from an XObject to the result tree.
void comment (const XalanDOMChar *data)
 Called when a Comment is to be constructed.
void entityReference (const XalanDOMChar *data)
 Receive notification of a entityReference.
void cdata (const XalanDOMChar *ch, XalanDOMString::size_type start, XalanDOMString::size_type length)
 Receive notification of cdata.
void cloneToResultTree (const XalanNode &node, bool cloneTextNodesOnly, const LocatorType *locator)
 Clone a node to the result tree.
void cloneToResultTree (const XalanNode &node, XalanNode::NodeType nodeType, bool overrideStrip, bool shouldCloneAttributes, bool cloneTextNodesOnly, const LocatorType *locator)
 Clone a node to the result tree.
void outputToResultTree (const XObject &value, bool outputTextNodesOnly, const LocatorType *locator)
 Output an object to the result tree by doing the right conversions.
void outputResultTreeFragment (const XObject &theTree, bool outputTextNodesOnly, const LocatorType *locator)
 Given a result tree fragment, walk the tree and output it to the result stream.
void outputResultTreeFragment (const XalanDocumentFragment &theTree, bool outputTextNodesOnly, const LocatorType *locator)
 Given a result tree fragment, walk the tree and output it to the result stream.
virtual const StylesheetRootgetStylesheetRoot () const
 Retrieve the root stylesheet.
virtual void setStylesheetRoot (const StylesheetRoot *theStylesheet)
 Set the root stylesheet.
virtual void setExecutionContext (StylesheetExecutionContext *theExecutionContext)
 Set the execution context.
bool getQuietConflictWarnings () const
 Whether to warn about pattern match conflicts.
virtual void message (const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const
 Report a message.
virtual void message (const XalanDOMString &msg, const LocatorType &locator, const XalanNode *sourceNode=0) const
 Report a message.
virtual void warn (const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const
 Report a warning.
virtual void warn (const XalanDOMString &msg, const LocatorType &locator, const XalanNode *sourceNode=0) const
 Report a warning.
virtual void error (const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const
 Report an error and throw an exception.
virtual void error (const XalanDOMString &msg, const LocatorType &locator, const XalanNode *sourceNode=0) const
 Report an error and throw an exception.
const XalanDOMStringgetResultNamespaceForPrefix (const XalanDOMString &prefix) const
 Retrieve the result namespace corresponding to a prefix.
const XalanDOMStringgetResultPrefixForNamespace (const XalanDOMString &theNamespace) const
 Retrieve the result prefix corresponding to a namespace.
bool isPendingResultPrefix (const XalanDOMString &thePrefix) const
 Determine whether or not a prefix is in use on the pending element or the pending attributes.
double evalMatchPatternStr (const XalanDOMString &str, XalanNode *context, XPathExecutionContext &executionContext)
 Evaluate an xpath string and return the result as a numberic score.
const XPathcreateMatchPattern (const XalanDOMString &str, const PrefixResolver &resolver)
 Create and initialize an xpath and return it.
void returnXPath (const XPath *xpath)
 Return the xpath created by createXPath() or createMatchPattern().
void copyNamespaceAttributes (const XalanNode &src)
 Copy XMLNS: attributes in if not already in scope.
const XObjectPtr evalXPathStr (const XalanDOMString &str, XPathExecutionContext &executionContext)
 Evaluate an xpath string and return the result.
const XObjectPtr evalXPathStr (const XalanDOMString &str, XalanNode *contextNode, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext)
 Evaluate an xpath string and return the result.
const XObjectPtr evalXPathStr (const XalanDOMString &str, XalanNode *contextNode, const XalanElement &prefixResolver, XPathExecutionContext &executionContext)
 Evaluate an xpath string and return the result.
void copyAttributeToTarget (const XalanDOMString &attrName, const XalanDOMString &attrValue, AttributeListImpl &attrList)
 Copy an attribute to an AttributeListImpl.
XPathFactorygetXPathFactory ()
 Get the factory for making xpaths.
XPathProcessorgetXPathProcessor ()
 Get the XPath processor object.
virtual void reset ()
 Reset the state.
XPathEnvSupportgetXPathEnvSupport ()
 Retrieve the XPath environment support object.
void setProblemListener (ProblemListener *l)
 Set the problem listener property.
ProblemListenergetProblemListener () const
 Get the problem listener property.
void pushOutputContext (FormatterListener *theListener)
void popOutputContext ()
bool getHasPendingStartDocument () const
void setHasPendingStartDocument (bool b)
bool getMustFlushPendingStartDocument () const
void setMustFlushPendingStartDocument (bool b)
const AttributeListTypegetPendingAttributes () const
 Get the list of attributes yet to be processed.
void setPendingAttributes (const AttributeListType &pendingAttributes)
 Set the list of attributes yet to be processed.
void replacePendingAttribute (const XalanDOMChar *theName, const XalanDOMChar *theNewType, const XalanDOMChar *theNewValue)
 Replace the contents of a pending attribute.
bool isElementPending () const
const XalanDOMStringgetPendingElementName () const
 Retrieve name of the pending element currently being processed.
void setPendingElementName (const XalanDOMString &elementName)
 Changes the currently pending element name.
void setPendingElementName (const XalanDOMChar *elementName)
const LocatorTypegetLocatorFromStack () const
 Get the locator from the top of the locator stack.
void pushLocatorOnStack (const LocatorType *locator)
 Push a locator on to the locator stack.
void popLocatorStack ()
 Pop the locator from the top of the locator stack.
void clearTopLevelParams ()
 Reset the vector of top level parameters.
- Public Member Functions inherited from XSLTProcessor
 XSLTProcessor ()
virtual ~XSLTProcessor ()
- Public Member Functions inherited from PrefixResolver
 PrefixResolver ()
 PrefixResolver (const PrefixResolver &)
virtual ~PrefixResolver ()

Static Public Member Functions

static void initialize (MemoryManagerType &theManager)
 Perform initialization of statics – must be called before any processing occurs.
static void terminate ()
 Perform termination of statics.
static const XalanDOMStringgetXSLNameSpaceURL ()
 Retrieve the URI for the current XSL namespace, for example, "http://www.w3.org/1999/XSL/Transform".
static const XalanDOMStringgetXalanXSLNameSpaceURL ()
 Special Xalan namespace for built-in extensions.

Protected Member Functions

const AttributeListImplgetPendingAttributesImpl () const
 Get the list of attributes yet to be processed.
AttributeListImplgetPendingAttributesImpl ()
 Get the list of attributes yet to be processed.
void setPendingAttributesImpl (const AttributeListType &pendingAttributes)
 Set the list of attributes yet to be processed.
const XalanDOMStringgetPendingElementNameImpl () const
 Retrieve name of the pending element currently being processed.
XalanDOMStringgetPendingElementNameImpl ()
 Retrieve name of the pending element currently being processed.
void setPendingElementNameImpl (const XalanDOMString &elementName)
 Changes the currently pending element name.
void setPendingElementNameImpl (const XalanDOMChar *elementName)
 Changes the currently pending element name.
bool getHasPendingStartDocumentImpl () const
void setHasPendingStartDocumentImpl (bool b)
bool getMustFlushPendingStartDocumentImpl () const
void setMustFlushPendingStartDocumentImpl (bool b)
FormatterListenergetFormatterListenerImpl () const
void setFormatterListenerImpl (FormatterListener *flistener)
void copyAttributesToAttList (const XalanNode &node, AttributeListImpl &attList)
 Copy the attributes from the XSL element to the created output element.

Protected Attributes

XalanDOMString m_resultNameSpacePrefix
 The namespace that the result tree conforms to.
XalanDOMString m_resultNameSpaceURL
 The URL that belongs to the result namespace.
XPathFactorym_xpathFactory
XObjectFactorym_xobjectFactory
const XPathProcessorPtrType m_xpathProcessor
BoolVectorType m_cdataStack
 Stack of Booleans to keep track of if we should be outputting cdata instead of escaped text.

Detailed Description

It's the responsibility of the XSLTEngineImpl class, collaborating with the XML parser liaison, the DOM, and the XPath engine, to transform a source tree of nodes into a result tree according to instructions and templates specified by a stylesheet tree.

The process method is the primary

public entry points.

If you reuse the processor instance, you should call reset() between calls.

Member Typedef Documentation

Constructor & Destructor Documentation

XSLTEngineImpl::XSLTEngineImpl ( MemoryManagerType theManager,
XMLParserLiaison parserLiaison,
XPathEnvSupport xpathEnvSupport,
DOMSupport domSupport,
XObjectFactory xobjectFactory,
XPathFactory xpathFactory 
)

Construct an XSL processor that can call back to a XML processor, so it can handle included files, and the like.

You must create a new instance of the XSLTEngineImpl class each time you run a transformation.

Parameters
XMLParserLiaisonliaison to an object that can help with a specific parser implementation
xpathEnvSupportAn XPathEnvSupport instance
domSupportA DOMSupport instance for the DOM being used
xobjectFactoryobject responsible for XObject objects
xpathFactoryobject responsible for XPath objects
virtual XSLTEngineImpl::~XSLTEngineImpl ( )
virtual

Member Function Documentation

void XSLTEngineImpl::addResultAttribute ( AttributeListImpl attList,
const XalanDOMString aname,
const XalanDOMString value,
bool  fromCopy = false,
const LocatorType locator = 0 
)

Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.

Parameters
attListattribute list added to
anamename of attribute
valuevalue of attribute
fromCopytrue if the attribute is being copied from the source tree
locatorThe Locator for reporting errors.
void XSLTEngineImpl::addResultAttribute ( AttributeListImpl attList,
const XalanDOMString aname,
const XalanDOMChar *  value,
bool  fromCopy = false,
const LocatorType locator = 0 
)

Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.

Parameters
attListattribute list added to
anamename of attribute
valuevalue of attribute
fromCopytrue if the attribute is being copied from the source tree
locatorThe Locator for reporting errors.
void XSLTEngineImpl::addResultAttribute ( AttributeListImpl attList,
const XalanDOMString aname,
const XalanDOMChar *  value,
XalanDOMString::size_type  theLength,
bool  fromCopy = false,
const LocatorType locator = 0 
)

Add attribute to attribute list, and if it is a namespace, add it to the namespaces stack.

Parameters
attListattribute list added to
anamename of attribute
valuevalue of attribute
theLengthThe length of the value
fromCopytrue if the attribute is being copied from the source tree
locatorThe Locator for reporting errors.
void XSLTEngineImpl::addResultAttribute ( const XalanDOMString aname,
const XalanDOMChar *  value,
bool  fromCopy = false,
const LocatorType locator = 0 
)

Add attribute to pending attributes list, and if it is a namespace, add it to the namespaces stack.

Parameters
anamename of attribute
valuevalue of attribute
fromCopytrue if the attribute is being copied from the source tree
locatorThe Locator for reporting errors.
void XSLTEngineImpl::addResultAttribute ( const XalanDOMString aname,
const XalanDOMString value,
bool  fromCopy = false,
const LocatorType locator = 0 
)

Add attribute to pending attributes list, and if it is a namespace, add it to the namespaces stack.

Parameters
anamename of attribute
valuevalue of attribute
fromCopytrue if the attribute is being copied from the source tree
locatorThe Locator for reporting errors.
void XSLTEngineImpl::addResultNamespaceDecl ( const XalanDOMString prefix,
const XalanDOMString namespaceVal 
)

Add a namespace declaration to the namespace stack.

Parameters
prefixnamespace prefix
namespaceValvalue of namespace
void XSLTEngineImpl::addResultNamespaceDecl ( const XalanDOMString prefix,
const XalanDOMChar *  namespaceVal,
XalanDOMString::size_type  len 
)

Add a namespace declaration to the namespace stack.

Parameters
prefixnamespace prefix
namespaceValvalue of namespace
lenlength of namespace
virtual void XSLTEngineImpl::addTraceListener ( TraceListener tl)
virtual

Add a trace listener for the purposes of debugging and diagnosis.

Parameters
tlpointer to listener to add

Implements XSLTProcessor.

void XSLTEngineImpl::cdata ( const XalanDOMChar *  ch,
XalanDOMString::size_type  start,
XalanDOMString::size_type  length 
)

Receive notification of cdata.

Parameters
chpointer to characters from the XML document
startstart position in the array
lengthnumber of characters to read from the array
void XSLTEngineImpl::characters ( const XalanDOMChar *  ch,
XalanDOMString::size_type  length 
)
void XSLTEngineImpl::characters ( const XalanDOMChar *  ch,
XalanDOMString::size_type  start,
XalanDOMString::size_type  length 
)

Receive notification of character data.

Parameters
chpointer to characters from the XML document
startstartng offset in 'ch' array
lengthnumber of characters to read from the array
void XSLTEngineImpl::characters ( const XalanNode node)

Send character data from the node to the result tree.

Parameters
nodeThe node to send.
void XSLTEngineImpl::characters ( const XObjectPtr xobject)

Send character data from an XObject to the result tree.

Parameters
nodeThe xobject to send.
void XSLTEngineImpl::charactersRaw ( const XalanDOMChar *  ch,
XalanDOMString::size_type  start,
XalanDOMString::size_type  length 
)

Receive notification of character data.

If available, when the disable-output-escaping attribute is used, output raw text without escaping.

Parameters
chpointer to characters from the XML document
startstart position in the array
lengthnumber of characters to read from the array
void XSLTEngineImpl::charactersRaw ( const XalanNode node)

Send raw character data from the node to the result tree.

Parameters
nodeThe node to send.
void XSLTEngineImpl::charactersRaw ( const XObjectPtr xobject)

Send raw character data from an XObject to the result tree.

Parameters
nodeThe xobject to send.
void XSLTEngineImpl::clearTopLevelParams ( )

Reset the vector of top level parameters.

void XSLTEngineImpl::cloneToResultTree ( const XalanNode node,
bool  cloneTextNodesOnly,
const LocatorType locator 
)

Clone a node to the result tree.

Parameters
nodenode to clone
cloneTextNodesOnlyif true, only text nodes will be cloned
locatorthe Locator for the event, if any.
void XSLTEngineImpl::cloneToResultTree ( const XalanNode node,
XalanNode::NodeType  nodeType,
bool  overrideStrip,
bool  shouldCloneAttributes,
bool  cloneTextNodesOnly,
const LocatorType locator 
)

Clone a node to the result tree.

Parameters
nodenode to clone
nodeTypethe type of the node
overrideStripfalse if white space stripping should be done
shouldCloneAttributestrue if attributes should be cloned
cloneTextNodesOnlyif true, only text nodes will be cloned
locatorthe Locator for the event, if any.
void XSLTEngineImpl::comment ( const XalanDOMChar *  data)

Called when a Comment is to be constructed.

Parameters
datapointer to comment data
void XSLTEngineImpl::copyAttributesToAttList ( const XalanNode node,
AttributeListImpl attList 
)
protected

Copy the attributes from the XSL element to the created output element.

void XSLTEngineImpl::copyAttributeToTarget ( const XalanDOMString attrName,
const XalanDOMString attrValue,
AttributeListImpl attrList 
)

Copy an attribute to an AttributeListImpl.

Parameters
attrNameThe name of the attribute
attrValueThe value of the attribute
attrListThe attribute list added to
void XSLTEngineImpl::copyNamespaceAttributes ( const XalanNode src)

Copy XMLNS: attributes in if not already in scope.

Parameters
srcsource node
const XPath* XSLTEngineImpl::createMatchPattern ( const XalanDOMString str,
const PrefixResolver resolver 
)

Create and initialize an xpath and return it.

Parameters
strstring for XPath
resolverresolver for namespace resolution
Returns
pointer to XPath created
void XSLTEngineImpl::endDocument ( )
void XSLTEngineImpl::endElement ( const XalanDOMChar *  name)
void XSLTEngineImpl::entityReference ( const XalanDOMChar *  data)

Receive notification of a entityReference.

Parameters
datapointer to characters from the XML document
Exceptions
SAXException
virtual void XSLTEngineImpl::error ( const XalanDOMString msg,
const XalanNode sourceNode = 0,
const ElemTemplateElement styleNode = 0 
) const
virtual

Report an error and throw an exception.

Parameters
msgtext of message to output
sourceNodenode in source where error occurred
styleNodenode in stylesheet where error occurred

Implements XSLTProcessor.

virtual void XSLTEngineImpl::error ( const XalanDOMString msg,
const LocatorType locator,
const XalanNode sourceNode = 0 
) const
virtual

Report an error and throw an exception.

Parameters
msgtext of message to output
locatorA LocatorType for error reporting
sourceNodenode in source where error occurred

Implements XSLTProcessor.

double XSLTEngineImpl::evalMatchPatternStr ( const XalanDOMString str,
XalanNode context,
XPathExecutionContext executionContext 
)

Evaluate an xpath string and return the result as a numberic score.

Parameters
strstring to evaluate
contextcontext node
executionContextcurrent execution context
Returns
score number, higher representing better match
const XObjectPtr XSLTEngineImpl::evalXPathStr ( const XalanDOMString str,
XPathExecutionContext executionContext 
)

Evaluate an xpath string and return the result.

Parameters
strstring to evaluate
executionContextcurrent execution context
Returns
pointer to XObject result
const XObjectPtr XSLTEngineImpl::evalXPathStr ( const XalanDOMString str,
XalanNode contextNode,
const PrefixResolver prefixResolver,
XPathExecutionContext executionContext 
)

Evaluate an xpath string and return the result.

Parameters
strstring to evaluate
contextNodecontext node
prefixResolverprefix resolver to use
executionContextcurrent execution context
Returns
pointer to XObject result
const XObjectPtr XSLTEngineImpl::evalXPathStr ( const XalanDOMString str,
XalanNode contextNode,
const XalanElement prefixResolver,
XPathExecutionContext executionContext 
)

Evaluate an xpath string and return the result.

Parameters
strstring to evaluate
contextNodecontext node
prefixResolverprefix resolver to use
executionContextcurrent execution context
Returns
pointer to XObject result
virtual void XSLTEngineImpl::fireGenerateEvent ( const GenerateEvent ge)
virtual

Fire a generate event.

Parameters
gegenerate event to fire

Implements XSLTProcessor.

virtual void XSLTEngineImpl::fireSelectEvent ( const SelectionEvent se)
virtual

Fire a selection event.

Parameters
seselection event to fire

Implements XSLTProcessor.

virtual void XSLTEngineImpl::fireTraceEvent ( const TracerEvent te)
virtual

Fire a trace event.

Parameters
tetrace event to fire

Implements XSLTProcessor.

void XSLTEngineImpl::flushPending ( )

Flush the pending element.

virtual FormatterListener* XSLTEngineImpl::getFormatterListener ( ) const
virtual

Get the current formatter listener.

Returns
pointer to formatter listener

Implements XSLTProcessor.

FormatterListener* XSLTEngineImpl::getFormatterListenerImpl ( ) const
protected
bool XSLTEngineImpl::getHasPendingStartDocument ( ) const
bool XSLTEngineImpl::getHasPendingStartDocumentImpl ( ) const
protected
const LocatorType* XSLTEngineImpl::getLocatorFromStack ( ) const

Get the locator from the top of the locator stack.

Returns
A pointer to the Locator, or 0 if there is nothing on the stack.
MemoryManagerType& XSLTEngineImpl::getMemoryManager ( )
bool XSLTEngineImpl::getMustFlushPendingStartDocument ( ) const
bool XSLTEngineImpl::getMustFlushPendingStartDocumentImpl ( ) const
protected
virtual const XalanDOMString* XSLTEngineImpl::getNamespaceForPrefix ( const XalanDOMString prefix) const
virtual

Retrieve a namespace corresponding to a prefix.

This assumes that the PrevixResolver hold's its own namespace context, or is a namespace context itself.

Parameters
prefixPrefix to resolve
Returns
namespace that prefix resolves to, or null if prefix is not found

Implements PrefixResolver.

const AttributeListType& XSLTEngineImpl::getPendingAttributes ( ) const

Get the list of attributes yet to be processed.

Returns
attribute list
const AttributeListImpl& XSLTEngineImpl::getPendingAttributesImpl ( ) const
protected

Get the list of attributes yet to be processed.

Returns
attribute list
AttributeListImpl& XSLTEngineImpl::getPendingAttributesImpl ( )
protected

Get the list of attributes yet to be processed.

Returns
attribute list
const XalanDOMString& XSLTEngineImpl::getPendingElementName ( ) const

Retrieve name of the pending element currently being processed.

Returns
element name
const XalanDOMString& XSLTEngineImpl::getPendingElementNameImpl ( ) const
protected

Retrieve name of the pending element currently being processed.

Returns
element name
XalanDOMString& XSLTEngineImpl::getPendingElementNameImpl ( )
protected

Retrieve name of the pending element currently being processed.

Returns
element name
ProblemListener* XSLTEngineImpl::getProblemListener ( ) const

Get the problem listener property.

The XSL class can have a single listener that can be informed of errors and warnings, and can normally control if an exception is thrown or not (or the problem listeners can throw their own RuntimeExceptions).

Returns
pointer to ProblemListener interface
bool XSLTEngineImpl::getQuietConflictWarnings ( ) const

Whether to warn about pattern match conflicts.

Returns
true to not warn about pattern match conflicts
const XalanDOMString* XSLTEngineImpl::getResultNamespaceForPrefix ( const XalanDOMString prefix) const

Retrieve the result namespace corresponding to a prefix.

Parameters
prefixprefix for namespace
Returns
string for namespace URI
const XalanDOMString* XSLTEngineImpl::getResultPrefixForNamespace ( const XalanDOMString theNamespace) const

Retrieve the result prefix corresponding to a namespace.

Parameters
theNamespacenamespace for prefix
Returns
string for namespace prefix
virtual XalanNode* XSLTEngineImpl::getSourceTreeFromInput ( const XSLTInputSource inputSource)
virtual

Given an input source, get the source tree.

Parameters
inputSourcepointer to input source
Returns
source tree

Implements XSLTProcessor.

Stylesheet* XSLTEngineImpl::getStylesheetFromPIURL ( const XalanDOMString xslURLString,
XalanNode fragBase,
const XalanDOMString xmlBaseIdent,
bool  isRoot,
StylesheetConstructionContext constructionContext 
)

Reset the state of the XSL processor by reading in a new XSL stylesheet from a processing instruction.

Parameters
xslURLStringvalid URI to an XSL stylesheet
fragBasebase of tree if URI represents document fragment
xmlBaseIdentbase identifier for stylesheet URI
isRoottrue if stylesheet is root of tree
constructionContextcontext for construction of object
Returns
pointer to stylesheet
virtual const StylesheetRoot* XSLTEngineImpl::getStylesheetRoot ( ) const
virtual

Retrieve the root stylesheet.

Returns
pointer to root stylesheet

Implements XSLTProcessor.

virtual size_type XSLTEngineImpl::getTraceListeners ( ) const
virtual

Determine the number of trace listeners.

Returns
number of listeners

Implements XSLTProcessor.

virtual bool XSLTEngineImpl::getTraceSelects ( ) const
virtual

If this is set to true, simple traces of template calls are made.

Returns
true if traces made

Implements XSLTProcessor.

virtual void XSLTEngineImpl::getUniqueNamespaceValue ( XalanDOMString theValue)
virtual

Generate a random namespace prefix guaranteed to be unique.

Parameters
theValueA string for returning the new prefix

Implements XSLTProcessor.

virtual const XalanDOMString& XSLTEngineImpl::getURI ( ) const
virtual

Retrieve the base URI for the resolver.

Returns
URI string

Implements PrefixResolver.

static const XalanDOMString& XSLTEngineImpl::getXalanXSLNameSpaceURL ( )
static

Special Xalan namespace for built-in extensions.

Returns
Xalan namespace for extensions
virtual XMLParserLiaison& XSLTEngineImpl::getXMLParserLiaison ( ) const
virtual

Get the XML Parser Liaison that this processor uses.

Returns
XML parser liaison object

Implements XSLTProcessor.

XPathEnvSupport& XSLTEngineImpl::getXPathEnvSupport ( )

Retrieve the XPath environment support object.

Returns
XPath environment support object
XPathFactory& XSLTEngineImpl::getXPathFactory ( )

Get the factory for making xpaths.

Returns
XPath factory object
XPathProcessor& XSLTEngineImpl::getXPathProcessor ( )

Get the XPath processor object.

Returns
XPathProcessor interface being used
static const XalanDOMString& XSLTEngineImpl::getXSLNameSpaceURL ( )
static

Retrieve the URI for the current XSL namespace, for example, "http://www.w3.org/1999/XSL/Transform".

Returns
URI string
void XSLTEngineImpl::ignorableWhitespace ( const XalanDOMChar *  ch,
XalanDOMString::size_type  length 
)
static void XSLTEngineImpl::initialize ( MemoryManagerType theManager)
static

Perform initialization of statics – must be called before any processing occurs.

See class XSLTInit.

bool XSLTEngineImpl::isElementPending ( ) const
bool XSLTEngineImpl::isPendingResultPrefix ( const XalanDOMString thePrefix) const

Determine whether or not a prefix is in use on the pending element or the pending attributes.

Parameters
thePrefixprefix for namespace
Returns
true if the prefix is in use, false if not.
virtual void XSLTEngineImpl::message ( const XalanDOMString msg,
const XalanNode sourceNode = 0,
const ElemTemplateElement styleNode = 0 
) const
virtual

Report a message.

Parameters
msgtext of message to output
sourceNodenode in source where message occurred
styleNodenode in stylesheet where message occurred

Implements XSLTProcessor.

virtual void XSLTEngineImpl::message ( const XalanDOMString msg,
const LocatorType locator,
const XalanNode sourceNode = 0 
) const
virtual

Report a message.

Parameters
msgtext of message to output
locatorA LocatorType for error reporting
sourceNodenode in source where message occurred

Implements XSLTProcessor.

void XSLTEngineImpl::outputResultTreeFragment ( const XObject theTree,
bool  outputTextNodesOnly,
const LocatorType locator 
)

Given a result tree fragment, walk the tree and output it to the result stream.

Parameters
theTreeresult tree fragment
outputTextNodesOnlyif true, only text nodes will be copied
locatorthe Locator for the event, if any.
void XSLTEngineImpl::outputResultTreeFragment ( const XalanDocumentFragment theTree,
bool  outputTextNodesOnly,
const LocatorType locator 
)

Given a result tree fragment, walk the tree and output it to the result stream.

Parameters
theTreeresult tree fragment
outputTextNodesOnlyif true, only text nodes will be copied
locatorthe Locator for the event, if any.
void XSLTEngineImpl::outputToResultTree ( const XObject value,
bool  outputTextNodesOnly,
const LocatorType locator 
)

Output an object to the result tree by doing the right conversions.

Parameters
valuethe XObject to output
outputTextNodesOnlyif true, only text nodes will be copied
locatorthe Locator for the event, if any.
XalanDocument* XSLTEngineImpl::parseXML ( const XalanDOMString urlString,
DocumentHandlerType docHandler,
XalanDocument docToRegister 
)

Read in the XML file, either producing a Document or calling SAX events, and register the document in a table.

If the document has already been read in, it will not be reparsed.

Parameters
urlStringlocation of the XML
docHandlerpointer to SAX event handler
docToRegisterif using a SAX event handler, the object to register in the source docs table.
Returns
document object, which represents the parsed XML
Exceptions
SAXException
XalanDocument* XSLTEngineImpl::parseXML ( const InputSourceType inputSource,
DocumentHandlerType docHandler,
XalanDocument docToRegister 
)

Read in the XML file, either producing a Document or calling SAX events, and register the document in a table.

If the document has already been read in, it will not be reparsed.

Parameters
inputSourcelocation of the XML
docHandlerpointer to SAX event handler
docToRegisterif using a SAX event handler, the object to register in the source docs table.
Returns
document object, which represents the parsed XML
Exceptions
SAXException
void XSLTEngineImpl::popLocatorStack ( )

Pop the locator from the top of the locator stack.

void XSLTEngineImpl::popOutputContext ( )
virtual void XSLTEngineImpl::process ( const XSLTInputSource inputSource,
const XSLTInputSource stylesheetSource,
XSLTResultTarget outputTarget,
StylesheetConstructionContext constructionContext,
StylesheetExecutionContext executionContext 
)
virtual

Transform the source tree to the output in the given result tree target.

The processor will process the input source, the stylesheet source, and transform to the output target.

Parameters
inputSourceinput source
stylesheetSourcestylesheet source
outputTargetoutput source tree
constructionContextcontext for construction of objects
executionContextcurrent execution context
Exceptions
XSLProcessorException

Implements XSLTProcessor.

virtual void XSLTEngineImpl::process ( const XSLTInputSource inputSource,
XSLTResultTarget outputTarget,
StylesheetExecutionContext executionContext 
)
virtual

Transform the source tree to the output in the given result tree target.

This function does not create a stylesheet tree, it assumes the provided StylesheetExecutionContext has the stylesheet tree to use. This is set by calling StylesheetExecutionContext::setStylesheetRoot().

Parameters
inputSourceinput source
outputTargetoutput source tree
executionContextcurrent execution context
Exceptions
XSLProcessorException

Implements XSLTProcessor.

void XSLTEngineImpl::processingInstruction ( const XalanDOMChar *  target,
const XalanDOMChar *  data 
)
virtual StylesheetRoot* XSLTEngineImpl::processStylesheet ( const XSLTInputSource stylesheetSource,
StylesheetConstructionContext constructionContext 
)
virtual

Given a stylesheet input source, compile the stylesheet into an internal representation.

Parameters
stylesheetSourceinput source for the stylesheet
constructionContextcontext for construction of objects
Returns
pointer to the compiled stylesheet object
Exceptions
XSLProcessorException

Implements XSLTProcessor.

virtual StylesheetRoot* XSLTEngineImpl::processStylesheet ( const XalanDOMString xsldocURLString,
StylesheetConstructionContext constructionContext 
)
virtual

Given a URI to an XSL stylesheet, compile the stylesheet into an internal representation.

Parameters
xmldocURLStringURI to the input XML document
constructionContextcontext for construction of objects
Returns
pointer to compiled stylesheet object
Exceptions
XSLProcessorException

Implements XSLTProcessor.

void XSLTEngineImpl::pushLocatorOnStack ( const LocatorType locator)

Push a locator on to the locator stack.

Parameters
Apointer to the Locator to push.
void XSLTEngineImpl::pushOutputContext ( FormatterListener theListener)
virtual void XSLTEngineImpl::removeTraceListener ( TraceListener tl)
virtual

Remove a trace listener.

Parameters
tlTrace listener to be removed.

Implements XSLTProcessor.

void XSLTEngineImpl::replacePendingAttribute ( const XalanDOMChar *  theName,
const XalanDOMChar *  theNewType,
const XalanDOMChar *  theNewValue 
)

Replace the contents of a pending attribute.

Parameters
theNamename of attribute
theNewTypetype of attribute
theNewValuenew value of attribute
void XSLTEngineImpl::reportDuplicateNamespaceNodeError ( const XalanDOMString theName,
const LocatorType locator 
)

Report an error copying a duplicate namespace node.

Parameters
theNameThe name of the node.
virtual void XSLTEngineImpl::reset ( )
virtual

Reset the state.

This needs to be called after a process() call is invoked, if the processor is to be used again.

Implements XSLTProcessor.

void XSLTEngineImpl::resetDocument ( )
virtual void XSLTEngineImpl::resolveTopLevelParams ( StylesheetExecutionContext executionContext)
virtual

Resolve the params that were pushed by the caller.

Implements XSLTProcessor.

void XSLTEngineImpl::returnXPath ( const XPath xpath)

Return the xpath created by createXPath() or createMatchPattern().

Parameters
xpathThe XPath to return.
virtual void XSLTEngineImpl::setDiagnosticsOutput ( PrintWriter pw)
virtual

If this is set, diagnostics will be written to the m_diagnosticsPrintWriter stream.

If the value is null, then diagnostics will be turned off.

Parameters
pwpointer to print writer

Implements XSLTProcessor.

void XSLTEngineImpl::setDocumentLocator ( const LocatorType locator)
virtual void XSLTEngineImpl::setExecutionContext ( StylesheetExecutionContext theExecutionContext)
virtual

Set the execution context.

Parameters
theExecutionContextpointer to new execution context.

Implements XSLTProcessor.

virtual void XSLTEngineImpl::setFormatterListener ( FormatterListener flistener)
virtual

Set the current formatter listener.

Parameters
flistenerpointer to new formatter listener

Implements XSLTProcessor.

void XSLTEngineImpl::setFormatterListenerImpl ( FormatterListener flistener)
protected
void XSLTEngineImpl::setHasPendingStartDocument ( bool  b)
void XSLTEngineImpl::setHasPendingStartDocumentImpl ( bool  b)
protected
void XSLTEngineImpl::setMustFlushPendingStartDocument ( bool  b)
void XSLTEngineImpl::setMustFlushPendingStartDocumentImpl ( bool  b)
protected
void XSLTEngineImpl::setPendingAttributes ( const AttributeListType pendingAttributes)

Set the list of attributes yet to be processed.

Parameters
pendingAttributesThe attribute list
void XSLTEngineImpl::setPendingAttributesImpl ( const AttributeListType pendingAttributes)
protected

Set the list of attributes yet to be processed.

Parameters
pendingAttributesThe attribute list
void XSLTEngineImpl::setPendingElementName ( const XalanDOMString elementName)

Changes the currently pending element name.

Parameters
elementNamenew name of element
void XSLTEngineImpl::setPendingElementName ( const XalanDOMChar *  elementName)
void XSLTEngineImpl::setPendingElementNameImpl ( const XalanDOMString elementName)
protected

Changes the currently pending element name.

Parameters
elementNamenew name of element
void XSLTEngineImpl::setPendingElementNameImpl ( const XalanDOMChar *  elementName)
protected

Changes the currently pending element name.

Parameters
elementNamenew name of element
void XSLTEngineImpl::setProblemListener ( ProblemListener l)

Set the problem listener property.

The XSL class can have a single listener that can be informed of errors and warnings, and can normally control if an exception is thrown or not (or the problem listeners can throw their own RuntimeExceptions).

Parameters
lpointer to ProblemListener interface
virtual void XSLTEngineImpl::setQuietConflictWarnings ( bool  b)
virtual

If the quietConflictWarnings property is set to true, warnings about pattern conflicts won't be printed to the diagnostics stream.

True by default.

Parameters
btrue if conflict warnings should be suppressed.

Implements XSLTProcessor.

virtual void XSLTEngineImpl::setStylesheetParam ( const XalanDOMString key,
const XalanDOMString expression 
)
virtual

Push a top-level stylesheet parameter.

This value can be evaluated via xsl:param-variable.

Parameters
keyname of the param
expressionexpression that will be evaluated

Implements XSLTProcessor.

virtual void XSLTEngineImpl::setStylesheetParam ( const XalanDOMString key,
XObjectPtr  value 
)
virtual

Push a top-level stylesheet parameter.

This value can be evaluated via xsl:param-variable.

Parameters
keyname of the parameter
valueXObject value for parameter

Implements XSLTProcessor.

virtual void XSLTEngineImpl::setStylesheetRoot ( const StylesheetRoot theStylesheet)
virtual

Set the root stylesheet.

Parameters
theStylesheetpointer to new root stylesheet

Implements XSLTProcessor.

virtual void XSLTEngineImpl::setTraceSelects ( bool  b)
virtual
void XSLTEngineImpl::startDocument ( )
void XSLTEngineImpl::startElement ( const XalanDOMChar *  name,
AttributeListType atts 
)
void XSLTEngineImpl::startElement ( const XalanDOMChar *  name)

Receive notification of the beginning of an element with an empty attribute list.

Parameters
nameelement type name
static void XSLTEngineImpl::terminate ( )
static

Perform termination of statics.

See class XSLTInit.

void XSLTEngineImpl::traceSelect ( StylesheetExecutionContext executionContext,
const ElemTemplateElement theStylesheetElement,
const NodeRefListBase nl,
const XPath xpath 
) const
virtual

Compose a diagnostic trace of the current selection.

Parameters
executionContextThe current execution context
theStylesheetElementThe executing stylesheet element
nlThe list of selected nodes
xpathA pointer to the XPath which generated the list of nodes, if any.

Implements XSLTProcessor.

virtual void XSLTEngineImpl::warn ( const XalanDOMString msg,
const XalanNode sourceNode = 0,
const ElemTemplateElement styleNode = 0 
) const
virtual

Report a warning.

Parameters
msgtext of message to output
sourceNodenode in source where warning occurred
styleNodenode in stylesheet where warning occurred

Implements XSLTProcessor.

virtual void XSLTEngineImpl::warn ( const XalanDOMString msg,
const LocatorType locator,
const XalanNode sourceNode = 0 
) const
virtual

Report a warning.

Parameters
msgtext of message to output
locatorA LocatorType for error reporting
sourceNodenode in source where error occurred

Implements XSLTProcessor.

Member Data Documentation

BoolVectorType XSLTEngineImpl::m_cdataStack
protected

Stack of Booleans to keep track of if we should be outputting cdata instead of escaped text.

XalanDOMString XSLTEngineImpl::m_resultNameSpacePrefix
protected

The namespace that the result tree conforms to.

A null value indicates that result-ns is not used and there is no checking. A empty string indicates that the result tree conforms to the default namespace.

XalanDOMString XSLTEngineImpl::m_resultNameSpaceURL
protected

The URL that belongs to the result namespace.

XObjectFactory& XSLTEngineImpl::m_xobjectFactory
protected
XPathFactory& XSLTEngineImpl::m_xpathFactory
protected
const XPathProcessorPtrType XSLTEngineImpl::m_xpathProcessor
protected

The documentation for this class was generated from the following file:

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

dot

Xalan-C++ XSLT Processor Version 1.10
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.

Apache Logo