Xalan-C++ API Reference  1.12.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
xalanc::StylesheetHandler Class Reference

This class processes a stylesheet via SAX events, and inits the given stylesheet. More...

#include <xalanc/XSLT/StylesheetHandler.hpp>

Inheritance diagram for xalanc::StylesheetHandler:
[legend]
Collaboration diagram for xalanc::StylesheetHandler:
[legend]

Public Types

typedef XalanVector< ElemTemplateElement * > ElemTemplateStackType
 
typedef XalanVector< ElemTemplateElement * > ElemTextLiteralStackType
 
typedef XalanVector< bool > BoolStackType
 
typedef XalanSet< XalanQNameByReferenceQNameSetType
 
typedef XalanVector< QNameSetType, ConstructWithMemoryManagerTraits< QNameSetType > > QNameSetVectorType
 
- Public Types inherited from xalanc::FormatterListener
enum  eFormat {
  OUTPUT_METHOD_NONE = 0, OUTPUT_METHOD_XML = 1, OUTPUT_METHOD_HTML = 2, OUTPUT_METHOD_TEXT = 3,
  OUTPUT_METHOD_DOM = 4, OUTPUT_METHOD_OTHER = 5
}
 
enum  eXMLVersion { XML_VERSION_1_0 = 0, XML_VERSION_1_1 = 1 }
 
typedef xercesc::DocumentHandler ParentType
 
typedef XalanSize_t size_type
 

Public Member Functions

 StylesheetHandler (Stylesheet &stylesheetTree, StylesheetConstructionContext &constructionContext)
 Construct a StylesheetHandler ... More...
 
MemoryManager & getMemoryManager ()
 
virtual ~StylesheetHandler ()
 
virtual void characters (const XMLCh *const chars, const size_type length)
 Receive notification of character data. More...
 
virtual void charactersRaw (const XMLCh *const chars, const size_type length)
 Receive notification of character data. More...
 
virtual void cdata (const XMLCh *const ch, const size_type length)
 Receive notification of cdata. More...
 
virtual void ignorableWhitespace (const XMLCh *const chars, const size_type length)
 Receive notification of ignorable whitespace in element content. More...
 
virtual void processingInstruction (const XMLCh *const target, const XMLCh *const data)
 Receive notification of a processing instruction. More...
 
virtual void comment (const XMLCh *const data)
 Called when a Comment is to be constructed. More...
 
virtual void entityReference (const XMLCh *const data)
 Receive notification of a entityReference. More...
 
virtual void setDocumentLocator (const Locator *const locator)
 Receive an object for locating the origin of SAX document events. More...
 
virtual void startDocument ()
 Receive notification of the beginning of a document. More...
 
virtual void endDocument ()
 Receive notification of the end of a document. More...
 
virtual void startElement (const XMLCh *const name, AttributeListType &attrs)
 Receive notification of the beginning of an element. More...
 
virtual void endElement (const XMLCh *const name)
 Receive notification of the end of an element. More...
 
virtual void resetDocument ()
 This method allows the user installed Document Handler to 'reset' itself, freeing all the memory resources. More...
 
- Public Member Functions inherited from xalanc::FormatterListener
 FormatterListener (eFormat theFormat)
 
virtual ~FormatterListener ()
 
eFormat getOutputFormat () const
 Get the output format for the instance. More...
 
eXMLVersion getXMLVersion () const
 Get the version of XML the FormatterListener is generating. More...
 
bool isXML1_1Version () const
 Determine if the version of XML output is 1.1. More...
 
const PrefixResolvergetPrefixResolver () const
 Get the PrefixResolver for the FormatterListener. More...
 
void setPrefixResolver (const PrefixResolver *thePrefixResolver)
 Set the PrefixResolver for the FormatterListener. More...
 
virtual void startElement (const XMLCh *const name, AttributeList &attrs)=0
 
virtual WritergetWriter () const
 
virtual const XalanDOMStringgetDoctypeSystem () const
 
virtual const XalanDOMStringgetDoctypePublic () const
 
virtual const XalanDOMStringgetEncoding () const
 
virtual const XalanDOMStringgetMediaType () const
 
virtual int getIndent () const
 

Static Public Member Functions

static void initialize (MemoryManager &theManager)
 Perform static initialization. More...
 
static void terminate ()
 Perform static shut down. More...
 

Protected Member Functions

bool isAttrOK (const XalanDOMChar *attrName, const AttributeListType &atts, XalanSize_t which)
 See if this is a xmlns attribute, and, if so, process it. More...
 
bool processSpaceAttr (const XalanDOMChar *elementName, const XalanDOMChar *aname, const AttributeListType &atts, XalanSize_t which, const Locator *locator, bool &fPreserve)
 Tell whether or not this is a xml:space attribute and, if so, process it. More...
 
bool processSpaceAttr (const XalanDOMChar *elementName, const AttributeListType &atts, const Locator *locator, bool &fPreserve)
 Tell whether or not this is a xml:space attribute and, if so, process it. More...
 
void processImport (const XalanDOMChar *name, const AttributeListType &atts, const Locator *locator)
 Process xsl:import. More...
 
void processInclude (const XalanDOMChar *name, const AttributeListType &atts, const Locator *locator)
 Process xsl:include. More...
 
void doCleanup ()
 
- Protected Member Functions inherited from xalanc::FormatterListener
void setXMLVersion (eXMLVersion theVersion)
 Set the output version during serializing. More...
 

Friends

class LastPoppedHolder
 
class StylesheetHandler::PushPopIncludeState
 

Additional Inherited Members

- Static Public Attributes inherited from xalanc::FormatterListener
static const XalanDOMChar s_piTarget []
 
static const XalanDOMChar s_piData []
 
static const XalanDOMString::size_type s_piTargetLength
 
static const XalanDOMString::size_type s_piDataLength
 
- Protected Attributes inherited from xalanc::FormatterListener
const PrefixResolverm_prefixResolver
 
- Static Protected Attributes inherited from xalanc::FormatterListener
static const XalanDOMString s_emptyString
 

Detailed Description

This class processes a stylesheet via SAX events, and inits the given stylesheet.

If you need to alter the code in here, it is not for the faint-of-heart, due to the state tracking that has to be done due to the SAX event model.

Definition at line 69 of file StylesheetHandler.hpp.

Member Typedef Documentation

◆ BoolStackType

Definition at line 77 of file StylesheetHandler.hpp.

◆ ElemTemplateStackType

Definition at line 74 of file StylesheetHandler.hpp.

◆ ElemTextLiteralStackType

Definition at line 75 of file StylesheetHandler.hpp.

◆ QNameSetType

Definition at line 78 of file StylesheetHandler.hpp.

◆ QNameSetVectorType

Definition at line 80 of file StylesheetHandler.hpp.

Constructor & Destructor Documentation

◆ StylesheetHandler()

xalanc::StylesheetHandler::StylesheetHandler ( Stylesheet stylesheetTree,
StylesheetConstructionContext constructionContext 
)

Construct a StylesheetHandler ...

it will add the DOM nodes to the document fragment.

◆ ~StylesheetHandler()

virtual xalanc::StylesheetHandler::~StylesheetHandler ( )
virtual

Member Function Documentation

◆ cdata()

virtual void xalanc::StylesheetHandler::cdata ( const XMLCh *const  ch,
const size_type  length 
)
virtual

Receive notification of cdata.

The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

Parameters
chpointer to characters from the XML document
startstart position in the array
lengthnumber of characters to read from the array
Exceptions
SAXException
See also
ignorableWhitespace

Implements xalanc::FormatterListener.

◆ characters()

virtual void xalanc::StylesheetHandler::characters ( const XMLCh *const  chars,
const size_type  length 
)
virtual

Receive notification of character data.

The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

Parameters
charspointer to characters from the XML document
lengthnumber of characters to read from the array
Exceptions
SAXException
See also
ignorableWhitespace
org.xml.sax.Locator

Implements xalanc::FormatterListener.

◆ charactersRaw()

virtual void xalanc::StylesheetHandler::charactersRaw ( const XMLCh *const  chars,
const size_type  length 
)
virtual

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
Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ comment()

virtual void xalanc::StylesheetHandler::comment ( const XMLCh *const  data)
virtual

Called when a Comment is to be constructed.

Parameters
datacomment data
Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ doCleanup()

void xalanc::StylesheetHandler::doCleanup ( )
protected

◆ endDocument()

virtual void xalanc::StylesheetHandler::endDocument ( )
virtual

Receive notification of the end of a document.

The SAX parser will invoke this method only once, and it will be the last method invoked during the parse. The parser shall not invoke this method until it has either abandoned parsing (because of an unrecoverable error) or reached the end of input.

Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ endElement()

virtual void xalanc::StylesheetHandler::endElement ( const XMLCh *const  name)
virtual

Receive notification of the end of an element.

The SAX parser will invoke this method at the end of every element in the XML document; there will be a corresponding startElement() event for every endElement() event (even when the element is empty).

If the element name has a namespace prefix, the prefix will still be attached to the name.

Parameters
nameelement type name
Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ entityReference()

virtual void xalanc::StylesheetHandler::entityReference ( const XMLCh *const  data)
virtual

Receive notification of a entityReference.

Parameters
datapointer to characters from the XML document
Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ getMemoryManager()

MemoryManager& xalanc::StylesheetHandler::getMemoryManager ( )
inline

Definition at line 103 of file StylesheetHandler.hpp.

◆ ignorableWhitespace()

virtual void xalanc::StylesheetHandler::ignorableWhitespace ( const XMLCh *const  chars,
const size_type  length 
)
virtual

Receive notification of ignorable whitespace in element content.

Validating Parsers must use this method to report each chunk of ignorable whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.

SAX parsers may return all contiguous whitespace in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Parameters
charscharacters from the XML document
startstart position in the array
lengthnumber of characters to read from the array
Exceptions
SAXException
See also
characters

Implements xalanc::FormatterListener.

◆ initialize()

static void xalanc::StylesheetHandler::initialize ( MemoryManager &  theManager)
static

Perform static initialization.

See class XMLSupportInit.

◆ isAttrOK()

bool xalanc::StylesheetHandler::isAttrOK ( const XalanDOMChar *  attrName,
const AttributeListType atts,
XalanSize_t  which 
)
protected

See if this is a xmlns attribute, and, if so, process it.

Parameters
attrNameQualified name of attribute.
attsThe attribute list where the element comes from (not used at this time).
whichThe index into the attribute list (not used at this time).
Returns
True if this is a namespace name.

◆ processImport()

void xalanc::StylesheetHandler::processImport ( const XalanDOMChar *  name,
const AttributeListType atts,
const Locator *  locator 
)
protected

Process xsl:import.

◆ processInclude()

void xalanc::StylesheetHandler::processInclude ( const XalanDOMChar *  name,
const AttributeListType atts,
const Locator *  locator 
)
protected

Process xsl:include.

◆ processingInstruction()

virtual void xalanc::StylesheetHandler::processingInstruction ( const XMLCh *const  target,
const XMLCh *const  data 
)
virtual

Receive notification of a processing instruction.

The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.

A SAX parser should never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.

Parameters
targetpointer to processing instruction target
datapointer to processing instruction data, or null if none was supplied
Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ processSpaceAttr() [1/2]

bool xalanc::StylesheetHandler::processSpaceAttr ( const XalanDOMChar *  elementName,
const AttributeListType atts,
const Locator *  locator,
bool &  fPreserve 
)
protected

Tell whether or not this is a xml:space attribute and, if so, process it.

Parameters
elementNameThe name of the element that owns the attributes
attsThe attribute list that owns the attribute.
locatorA Locator instance for error reporting.
fPreserveset to true if an xml:space attribute value is "preserve"
Returns
True if this is a xml:space attribute.

◆ processSpaceAttr() [2/2]

bool xalanc::StylesheetHandler::processSpaceAttr ( const XalanDOMChar *  elementName,
const XalanDOMChar *  aname,
const AttributeListType atts,
XalanSize_t  which,
const Locator *  locator,
bool &  fPreserve 
)
protected

Tell whether or not this is a xml:space attribute and, if so, process it.

Parameters
elementNameThe name of the element that owns the attribute
anameThe name of the attribute in question.
attsThe attribute list that owns the attribute.
whichThe index of the attribute into the attribute list.
locatorA Locator instance for error reporting.
fPreserveset to true if the attribute value is "preserve"
Returns
True if this is a xml:space attribute.

◆ resetDocument()

virtual void xalanc::StylesheetHandler::resetDocument ( )
virtual

This method allows the user installed Document Handler to 'reset' itself, freeing all the memory resources.

The scanner calls this method before starting a new parse event.

Implements xalanc::FormatterListener.

◆ setDocumentLocator()

virtual void xalanc::StylesheetHandler::setDocumentLocator ( const Locator *const  locator)
virtual

Receive an object for locating the origin of SAX document events.

SAX parsers are strongly encouraged (though not absolutely required) to supply a locator: if it does so, it must supply the locator to the application by invoking this method before invoking any of the other methods in the DocumentHandler interface.

The locator allows the application to determine the end position of any document-related event, even if the parser is not reporting an error. Typically, the application will use this information for reporting its own errors (such as character content that does not match an application's business rules). The information returned by the locator is probably not sufficient for use with a search engine.

Note that the locator will return correct information only during the invocation of the events in this interface. The application should not attempt to use it at any other time.

Parameters
locatorobject that can return the location of any SAX document event.
See also
org.xml.sax.Locator

Implements xalanc::FormatterListener.

◆ startDocument()

virtual void xalanc::StylesheetHandler::startDocument ( )
virtual

Receive notification of the beginning of a document.

The SAX parser will invoke this method only once, before any other methods in this interface or in DTDHandler (except for setDocumentLocator).

Exceptions
SAXException

Implements xalanc::FormatterListener.

◆ startElement()

virtual void xalanc::StylesheetHandler::startElement ( const XMLCh *const  name,
AttributeListType attrs 
)
virtual

Receive notification of the beginning of an element.

The Parser will invoke this method at the beginning of every element in the XML document; there will be a corresponding endElement() event for every startElement() event (even when the element is empty). All of the element's content will be reported, in order, before the corresponding endElement() event.

If the element name has a namespace prefix, the prefix will still be attached. Note that the attribute list provided will contain only attributes with explicit values (specified or defaulted): #IMPLIED attributes will be omitted.

Parameters
nameelement type name
attsattributes attached to the element, if any
Exceptions
SAXException
See also
endElement
org.xml.sax.AttributeList

◆ terminate()

static void xalanc::StylesheetHandler::terminate ( )
static

Perform static shut down.

See class XMLSupportInit.

Friends And Related Function Documentation

◆ LastPoppedHolder

friend class LastPoppedHolder
friend

Definition at line 678 of file StylesheetHandler.hpp.

◆ StylesheetHandler::PushPopIncludeState

friend class StylesheetHandler::PushPopIncludeState
friend

Definition at line 743 of file StylesheetHandler.hpp.


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