19#if !defined(XALAN_STYLESHEET_HEADER_GUARD)
20#define XALAN_STYLESHEET_HEADER_GUARD
61class ExtensionNSHandler;
62class XalanDecimalFormatSymbols;
63class ElemDecimalFormat;
65class ElemTemplateElement;
70class StylesheetConstructionContext;
72class XalanMatchPatternData;
75class StylesheetExecutionContext;
136 return m_elementPatternTable.getMemoryManager();
147 return m_XSLTVerDeclared;
158 m_XSLTVerDeclared =
ver;
169 return m_stylesheetRoot;
180 return m_stylesheetRoot;
188 const NamespacesStackType&
208 return m_namespacesHandler;
214 return m_namespacesHandler;
222 const NamespaceVectorType&
225 return m_namespaceDecls;
236 return m_namespaceDecls;
247 m_namespaceDecls =
ns;
265 assert(m_namespaces.empty() ==
false);
267 m_namespaces.pop_back();
330 return XalanQName::getNamespaceForPrefix(m_namespaces,
prefix);
384 m_namespacesHandler.processExcludeResultPrefixes(
437 return m_includeStack.empty() ==
true ? getBaseIdentifier() : m_includeStack.back();
493 return m_isWrapperless;
509 return m_includeStack;
658 m_extensionNamespaces.find(
uri);
660 return it == m_extensionNamespaces.end() ? 0 : (*it).second;
672 m_topLevelVariables.push_back(
var);
699 return m_XSLTNamespaceURI;
705 m_XSLTNamespaceURI =
theURI;
711 return m_firstTemplate;
767 findTemplateInImports(
801 bool m_isWrapperless;
834 double m_XSLTVerDeclared;
#define XALAN_XSLT_EXPORT
#define XALAN_USES_MEMORY_MANAGER(Type)
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
This class defines an interface for classes that resolve namespace prefixes to their URIs.
This acts as the stylesheet root of the stylesheet tree, and holds values that are shared by all styl...
This class represents the base stylesheet or an "import" stylesheet.
const ElemTemplate * findNamedTemplate(const XalanQName &qname) const
Locate a template via the "name" attribute.
const XalanDecimalFormatSymbols * getDecimalFormatSymbols(const XalanQName &theQName) const
Retrieve the XalanDecimalFormatSymbols instance associated with the QName.
StylesheetRoot & getStylesheetRoot()
Retrieve the root stylesheet object.
Stylesheet(StylesheetRoot &root, const XalanDOMString &baseIdentifier, StylesheetConstructionContext &constructionContext)
Constructor for a Stylesheet needs a Document.
virtual void postConstruction(StylesheetConstructionContext &constructionContext)
Called after construction is completed.
XalanMap< const XalanNode *, KeyTable * > KeyTablesTableType
void processDecimalFormatElement(StylesheetConstructionContext &constructionContext, const AttributeListType &atts, const Locator *locator=0)
Process an xsl:decimal-format element.
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMString &prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
static void addObjectIfNotFound(const XalanMatchPatternData *thePattern, PatternTableVectorType &theVector)
Add object to vector of match patterns if not already there.
const XalanDOMString * getNamespaceFromStack(const XalanDOMString &nodeName, XalanDOMString &theBuffer) const
Get the namespace from a qualified name.
const ElemTemplate * findTemplate(StylesheetExecutionContext &executionContext, XalanNode *targetNode) const
Given a target element, find the template that best matches in the given XSL document,...
XalanVector< XalanSpaceNodeTester > WhitespaceElementsVectorType
XalanVector< ElemDecimalFormat * > ElemDecimalFormatVectorType
XalanVector< KeyDeclaration > KeyDeclarationVectorType
StylesheetConstructionContext::GetCachedString GetCachedString
ExtensionNSHandler * lookupExtensionNSHandler(const XalanDOMString &uri) const
Return the handler for a given extension namespace.
XalanMap< XalanDOMString, ExtensionNSHandler * > ExtensionNamespacesMapType
void processExtensionNamespace(StylesheetConstructionContext &theConstructionContext, const XalanDOMString &uri)
Add an extension namespace handler.
const ElemTemplate * findTemplate(StylesheetExecutionContext &executionContext, XalanNode *targetNode, XalanNode::NodeType targetNodeType, const XalanQName &mode, bool onlyUseImports) const
Given a target element, find the template that best matches in the given XSL document,...
NamespaceVectorType & getNamespaceDecls()
Retrieve the list of namespace declarations currently in effect.
double getXSLTVerDeclared() const
Retrieve XSLT version number.
NamespacesHandler & getNamespacesHandler()
URLStackType & getIncludeStack()
Retrieve the stack of who's including who.
void addImport(Stylesheet *theStylesheet)
Add an imported stylesheet.
NamespacesStackType & getNamespaces()
Retrieve the stack of namespace lists.
void addWhitespaceElement(const XalanSpaceNodeTester &theTester)
XalanVector< XalanDOMString > URLStackType
PatternTableVectorTypeDecl PatternTableVectorType
const XalanDOMString & getCurrentIncludeBaseIdentifier() const
Retrieve the base identifier for the most recently included stylesheet.
const XalanDOMString & getXSLTNamespaceURI() const
virtual const XalanDOMString * getNamespaceForPrefix(const XalanDOMString &prefix) const
Retrieve a namespace corresponding to a prefix.
void setNamespaceDecls(const NamespaceVectorType &ns)
Set the list of namespace declarations currently in effect.
const XalanDOMString * getNamespaceFromStack(const XalanDOMChar *nodeName, XalanDOMString &theBuffer) const
Get the namespace from a qualified name.
void setXSLTVerDeclared(double ver)
Set XSLT version number.
static const XalanQNameByReference s_emptyQName
const XalanDOMString * getNamespaceForPrefix(const XalanDOMString &prefix, StylesheetConstructionContext &constructionContext) const
Get the namespace for a prefix, and report an error if it wasn't found.
KeyDeclarationVectorType m_keyDeclarations
Table of KeyDeclaration objects, which are set by the xsl:key element.
XalanMap< XalanDOMString, PatternTableVectorType > PatternTableMapType
XalanVector< Stylesheet * > StylesheetVectorType
void addTemplate(ElemTemplate *theTemplate, StylesheetConstructionContext &constructionContext)
Add a template to the list of names templates.
const NamespaceVectorType & getNamespaceDecls() const
Retrieve the list of namespace declarations currently in effect.
void processNSAliasElement(const XalanDOMChar *name, const AttributeListType &atts, StylesheetConstructionContext &constructionContext)
Process an xsl:namespace-alias element.
void setTopLevelVariable(ElemVariable *var)
Set a top level variable.
void setXSLTNamespaceURI(const XalanDOMString &theURI)
void pushTopLevelVariables(StylesheetExecutionContext &executionContext, const ParamVectorType &topLevelParams) const
Set a list of top level variables in the specified execution context stylesheet.
WhitespaceElementsVectorType m_whitespaceElements
ElemTemplateElement * initWrapperless(StylesheetConstructionContext &constructionContext, const Locator *locator)
void pushNamespaces(const AttributeListType &atts)
Push the namespace declarations from the current attribute list onto the namespace stack.
const PatternTableVectorType * locateElementMatchPatternDataList(const XalanDOMString &theName) const
Given a name, locate the start of a list of possible templates that match that name.
bool getYesOrNo(const XalanDOMChar *aname, const XalanDOMChar *val, StylesheetConstructionContext &constructionContext) const
Process an attribute that has the value of 'yes' or 'no'.
XalanVector< ElemVariable * > ElemVariableVectorType
static Stylesheet * create(MemoryManager &theManager, StylesheetRoot &root, const XalanDOMString &baseIdentifier, StylesheetConstructionContext &constructionContext)
const XalanDOMString * getNamespaceForPrefix(const XalanDOMChar *prefix, StylesheetConstructionContext &constructionContext) const
Get the namespace for a prefix, and report an error if it wasn't found.
void processExcludeResultPrefixes(StylesheetConstructionContext &theConstructionContext, const XalanDOMChar *theValue)
See if a namespace should be excluded.
const ElemTemplate * getFirstTemplate() const
const XalanDOMString & getBaseIdentifier() const
Retrieve the base identifier with which this stylesheet is associated.
bool isWrapperless() const
whether there is a wrapper template
static void addObjectIfNotFound(const XalanMatchPatternData *thePattern, const XalanMatchPatternData *theArray[], XalanSize_t &theArraySize)
Add object to array of match patterns if not already there.
void processKeyElement(const PrefixResolver &nsContext, const AttributeListType &atts, const Locator *locator, StylesheetConstructionContext &constructionContext)
Process the xsl:key element.
XalanMap< XalanQNameByReference, const ElemTemplate * > ElemTemplateMapType
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMChar *prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
XalanQName::NamespaceVectorType NamespaceVectorType
XalanDOMString m_baseIdent
The base URL of the XSL document.
MemoryManager & getMemoryManager()
StylesheetExecutionContext::ParamVectorType ParamVectorType
virtual const XalanDOMString & getURI() const
Retrieve the base URI for the resolver.
const StylesheetRoot & getStylesheetRoot() const
Retrieve the root stylesheet object.
const NamespacesStackType & getNamespaces() const
Retrieve the stack of namespace lists.
bool isAttrOK(const XalanDOMChar *attrName, const AttributeListType &atts, XalanSize_t which, StylesheetConstructionContext &constructionContext) const
See if this is a xmlns attribute, and, if so, process it.
StylesheetRoot & m_stylesheetRoot
The root of the stylesheet tree.
void popNamespaces()
Pop a namespace declaration from the namespace stack.
const PatternTableVectorType * locateMatchPatternDataList(const XalanNode &theNode, XalanNode::NodeType targetNodeType) const
Given a XalanNode, locate the start of a list of possible templates that match it.
const PatternTableVectorType * locateAttributeMatchPatternDataList(const XalanDOMString &theName) const
Given a name, locate the start of a list of possible templates that match that name.
XalanQName::NamespacesStackType NamespacesStackType
const NamespacesHandler & getNamespacesHandler() const
Xalan implementation of deque.
Xalan implementation of a hashtable.
This class contains information concerning a match pattern in a stylesheet.
Class to represent a qualified name.
xercesc::AttributeList AttributeListType
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)