org.apache.xalan.processor
Class ProcessorInclude

java.lang.Object
  extended by org.apache.xml.utils.UnImplNode
      extended by org.apache.xalan.templates.ElemTemplateElement
          extended by org.apache.xalan.processor.XSLTElementProcessor
              extended by org.apache.xalan.processor.ProcessorInclude
All Implemented Interfaces:
java.io.Serializable, javax.xml.transform.SourceLocator, XSLTVisitable, PrefixResolver, ExpressionNode, WhitespaceStrippingElementMatcher, org.w3c.dom.Document, org.w3c.dom.Element, org.w3c.dom.Node, org.w3c.dom.NodeList
Direct Known Subclasses:
ProcessorImport

public class ProcessorInclude
extends XSLTElementProcessor

TransformerFactory class for xsl:include markup.

See Also:
XSLT DTD, include in XSLT Specification, Serialized Form

Field Summary
private  java.lang.String m_href
          The base URL of the XSL document.
(package private) static long serialVersionUID
           
 
Fields inherited from class org.apache.xalan.templates.ElemTemplateElement
m_docOrderNumber, m_hasVariableDecl, m_parentNode
 
Fields inherited from class org.apache.xml.utils.UnImplNode
actualEncoding, fDocumentURI
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
ProcessorInclude()
           
 
Method Summary
private  java.lang.String getBaseURIOfIncludedStylesheet(StylesheetHandler handler, javax.xml.transform.Source s)
          Get the base URI of the included or imported stylesheet, if the user provided a URIResolver, then get the Source object for the stylsheet from it, and get the systemId from that Source object, otherwise try to recover by using the SysteIDResolver to figure out the base URI.
 java.lang.String getHref()
          Get the base identifier with which this stylesheet is associated.
private  javax.xml.transform.Source getSourceFromUriResolver(StylesheetHandler handler)
          Get the Source object for the included or imported stylesheet module obtained from the user's URIResolver, if there is no user provided URIResolver null is returned.
protected  java.lang.String getStylesheetInclErr()
          Get the error number associated with this type of stylesheet including itself
protected  int getStylesheetType()
          Get the stylesheet type associated with an included stylesheet
protected  void parse(StylesheetHandler handler, java.lang.String uri, java.lang.String localName, java.lang.String rawName, org.xml.sax.Attributes attributes)
          Set off a new parse for an included or imported stylesheet.
protected  javax.xml.transform.Source processSource(StylesheetHandler handler, javax.xml.transform.Source source)
          This method does nothing, but a class that extends this class could over-ride it and do some processing of the source.
 void setHref(java.lang.String baseIdent)
          Get the base identifier with which this stylesheet is associated.
 void startElement(StylesheetHandler handler, java.lang.String uri, java.lang.String localName, java.lang.String rawName, org.xml.sax.Attributes attributes)
          Receive notification of the start of an xsl:include element.
 
Methods inherited from class org.apache.xalan.processor.XSLTElementProcessor
characters, endElement, getElemDef, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setElemDef, setPropertiesFromAttributes, setPropertiesFromAttributes, skippedEntity, startNonText, unparsedEntityDecl
 
Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
accept, appendChild, appendChild, callChildVisitors, callChildVisitors, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, compose, containsExcludeResultPrefix, endCompose, error, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDeclaredPrefixes, getDOMBackPointer, getEndColumnNumber, getEndLineNumber, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeName, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXmlSpace, getXSLToken, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, item, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setEndLocaterInfo, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace
 
Methods inherited from class org.apache.xml.utils.UnImplNode
adoptNode, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, getActualEncoding, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getBaseURI, getDoctype, getDocumentElement, getDocumentURI, getDomConfig, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getInputEncoding, getNamespaceURI, getNodeValue, getOwnerElement, getPrefix, getSchemaTypeInfo, getSpecified, getStrictErrorChecking, getTextContent, getUserData, getWholeText, getXmlEncoding, getXmlStandalone, getXmlVersion, hasAttribute, hasAttributeNS, hasAttributes, importNode, insertData, isDefaultNamespace, isEqualNode, isId, isSameNode, isSupported, isWhitespaceInElementContent, lookupNamespaceURI, lookupPrefix, normalize, normalizeDocument, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, renameNode, replaceData, replaceWholeText, setActualEncoding, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setDocumentURI, setIdAttribute, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInputEncoding, setNodeValue, setPrefix, setStrictErrorChecking, setTextContent, setUserData, setValue, setXmlEncoding, setXmlStandalone, setXmlVersion, splitText, substringData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_href

private java.lang.String m_href
The base URL of the XSL document.

Constructor Detail

ProcessorInclude

public ProcessorInclude()
Method Detail

getHref

public java.lang.String getHref()
Get the base identifier with which this stylesheet is associated.

Returns:
non-null reference to the href attribute string, or null if setHref has not been called.

setHref

public void setHref(java.lang.String baseIdent)
Get the base identifier with which this stylesheet is associated.

Parameters:
baseIdent - Should be a non-null reference to a valid URL string.

getStylesheetType

protected int getStylesheetType()
Get the stylesheet type associated with an included stylesheet

Returns:
the type of the stylesheet

getStylesheetInclErr

protected java.lang.String getStylesheetInclErr()
Get the error number associated with this type of stylesheet including itself

Returns:
the appropriate error number

startElement

public void startElement(StylesheetHandler handler,
                         java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String rawName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Receive notification of the start of an xsl:include element.

Overrides:
startElement in class XSLTElementProcessor
Parameters:
handler - The calling StylesheetHandler/TemplatesBuilder.
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
rawName - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.
attributes - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.

parse

protected void parse(StylesheetHandler handler,
                     java.lang.String uri,
                     java.lang.String localName,
                     java.lang.String rawName,
                     org.xml.sax.Attributes attributes)
              throws org.xml.sax.SAXException
Set off a new parse for an included or imported stylesheet. This will set the StylesheetHandler to a new state, and recurse in with a new set of parse events. Once this function returns, the state of the StylesheetHandler should be restored.

Parameters:
handler - non-null reference to current StylesheetHandler that is constructing the Templates.
uri - The Namespace URI, which should be the XSLT namespace.
localName - The local name (without prefix), which should be "include" or "import".
rawName - The qualified name (with prefix).
attributes - The list of attributes on the xsl:include or xsl:import element.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.

processSource

protected javax.xml.transform.Source processSource(StylesheetHandler handler,
                                                   javax.xml.transform.Source source)
This method does nothing, but a class that extends this class could over-ride it and do some processing of the source.

Parameters:
handler - The calling StylesheetHandler/TemplatesBuilder.
source - The source of the included stylesheet.
Returns:
the same or an equivalent source to what was passed in.

getSourceFromUriResolver

private javax.xml.transform.Source getSourceFromUriResolver(StylesheetHandler handler)
                                                     throws javax.xml.transform.TransformerException
Get the Source object for the included or imported stylesheet module obtained from the user's URIResolver, if there is no user provided URIResolver null is returned.

Throws:
javax.xml.transform.TransformerException

getBaseURIOfIncludedStylesheet

private java.lang.String getBaseURIOfIncludedStylesheet(StylesheetHandler handler,
                                                        javax.xml.transform.Source s)
                                                 throws javax.xml.transform.TransformerException
Get the base URI of the included or imported stylesheet, if the user provided a URIResolver, then get the Source object for the stylsheet from it, and get the systemId from that Source object, otherwise try to recover by using the SysteIDResolver to figure out the base URI.

Parameters:
handler - The handler that processes the stylesheet as SAX events, and maintains state
s - The Source object from a URIResolver, for the included stylesheet module, so this will be null if there is no URIResolver set.
Throws:
javax.xml.transform.TransformerException