19 #if !defined(XALAN_STYLESHEET_HEADER_GUARD) 20 #define XALAN_STYLESHEET_HEADER_GUARD 57 XALAN_CPP_NAMESPACE_BEGIN
128 create(MemoryManager& theManager,
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();
290 const XalanDOMChar* attrName,
306 return getNamespaceFromStack(nodeName.
c_str(), theBuffer);
316 getNamespaceFromStack(
317 const XalanDOMChar* nodeName,
369 const XalanDOMChar* prefix,
382 const XalanDOMChar* theValue)
384 m_namespacesHandler.processExcludeResultPrefixes(
385 theConstructionContext,
411 const XalanDOMChar* aname,
412 const XalanDOMChar* val,
437 return m_includeStack.
empty() ==
true ? getBaseIdentifier() : m_includeStack.back();
448 processNSAliasElement(
449 const XalanDOMChar* name,
459 processDecimalFormatElement(
462 const Locator* locator = 0);
472 getDecimalFormatSymbols(
const XalanQName& theQName)
const;
482 m_imports.insert(m_imports.begin(), theStylesheet);
493 return m_isWrapperless;
499 const Locator* locator);
509 return m_includeStack;
522 const PrefixResolver& nsContext,
524 const Locator* locator,
534 findNamedTemplate(
const XalanQName& qname)
const;
549 assert(targetNode != 0);
576 bool onlyUseImports)
const;
587 PatternTableVectorType& theVector);
602 XalanSize_t& theArraySize);
611 const PatternTableVectorType*
612 locateElementMatchPatternDataList(
const XalanDOMString& theName)
const;
621 const PatternTableVectorType*
622 locateAttributeMatchPatternDataList(
const XalanDOMString& theName)
const;
630 const PatternTableVectorType*
631 locateMatchPatternDataList(
644 processExtensionNamespace(
658 m_extensionNamespaces.find(uri);
660 return it == m_extensionNamespaces.end() ? 0 : (*it).second;
672 m_topLevelVariables.push_back(var);
685 const ParamVectorType& topLevelParams)
const;
699 return m_XSLTNamespaceURI;
705 m_XSLTNamespaceURI = theURI;
711 return m_firstTemplate;
750 XalanMessages::Codes theErrorCode,
751 const Locator* theLocator,
752 const XalanDOMChar* theParam1 = 0,
753 const XalanDOMChar* theParam2 = 0,
754 const XalanDOMChar* theParam3 = 0)
const;
767 findTemplateInImports(
782 StylesheetVectorType m_imports;
789 NamespacesStackType m_namespaces;
795 NamespaceVectorType m_namespaceDecls;
801 bool m_isWrapperless;
806 ExtensionNamespacesMapType m_extensionNamespaces;
817 URLStackType m_includeStack;
824 ElemTemplateMapType m_namedTemplates;
829 ElemVariableVectorType m_topLevelVariables;
834 double m_XSLTVerDeclared;
841 PatternTableMapType m_elementPatternTable;
843 const PatternTableMapType::const_iterator m_elementPatternTableEnd;
845 PatternTableVectorType m_elementAnyPatternList;
852 PatternTableMapType m_attributePatternTable;
854 const PatternTableMapType::const_iterator m_attributePatternTableEnd;
856 PatternTableVectorType m_attributeAnyPatternList;
861 PatternTableVectorType m_textPatternList;
863 PatternTableVectorType m_commentPatternList;
865 PatternTableVectorType m_rootPatternList;
867 PatternTableVectorType m_piPatternList;
872 PatternTableVectorType m_nodePatternList;
876 ElemDecimalFormatVectorType m_elemDecimalFormats;
882 static const PatternTableVectorType s_emptyTemplateList;
887 XALAN_CPP_NAMESPACE_END
891 #endif // XALAN_STYLESHEET_HEADER_GUARD NamespacesStackType & getNamespaces()
Retrieve the stack of namespace lists.
XalanDOMString m_baseIdent
The base URL of the XSL document.
static const XalanQNameByReference s_emptyQName
NamespacesHandler & getNamespacesHandler()
This class contains information concerning a match pattern in a stylesheet.
XalanQName::NamespaceVectorType NamespaceVectorType
XalanMap< XalanQNameByReference, const ElemTemplate *> ElemTemplateMapType
MemoryManager & getMemoryManager()
KeyDeclarationVectorType m_keyDeclarations
Table of KeyDeclaration objects, which are set by the xsl:key element.
const ElemTemplate * findTemplate(StylesheetExecutionContext &executionContext, XalanNode *targetNode) const
Given a target element, find the template that best matches in the given XSL document, according to the rules specified in the xsl draft.
const NamespacesHandler & getNamespacesHandler() const
XalanVector< XalanDOMString > URLStackType
This acts as the stylesheet root of the stylesheet tree, and holds values that are shared by all styl...
void popNamespaces()
Pop a namespace declaration from the namespace stack.
XalanVector< ElemVariable * > ElemVariableVectorType
URLStackType & getIncludeStack()
Retrieve the stack of who's including who.
NamespaceVectorType & getNamespaceDecls()
Retrieve the list of namespace declarations currently in effect.
void setTopLevelVariable(ElemVariable *var)
Set a top level variable.
XalanMap< XalanDOMString, ExtensionNSHandler * > ExtensionNamespacesMapType
const XalanDOMChar * c_str() const
Local implementation of NodeRefList.
const StylesheetRoot & getStylesheetRoot() const
Retrieve the root stylesheet object.
StylesheetRoot & m_stylesheetRoot
The root of the stylesheet tree.
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMString &prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
double getXSLTVerDeclared() const
Retrieve XSLT version number.
virtual NodeType getNodeType() const =0
An enum value representing the type of the underlying object.
void setNamespaceDecls(const NamespaceVectorType &ns)
Set the list of namespace declarations currently in effect.
void processExcludeResultPrefixes(StylesheetConstructionContext &theConstructionContext, const XalanDOMChar *theValue)
See if a namespace should be excluded.
virtual const XalanDOMString * getNamespaceForPrefix(const XalanDOMString &prefix) const =0
Retrieve the URI corresponding to a namespace prefix.
const XalanDOMString & getBaseIdentifier() const
Retrieve the base identifier with which this stylesheet is associated.
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
StylesheetConstructionContext::GetCachedString GetCachedString
XalanVector< const XalanMatchPatternData * > PatternTableVectorTypeDecl
StylesheetExecutionContext::ParamVectorType ParamVectorType
const XalanDOMString & getXSLTNamespaceURI() const
void addImport(Stylesheet *theStylesheet)
Add an imported stylesheet.
XalanVector< XalanSpaceNodeTester > WhitespaceElementsVectorType
This class defines an interface for classes that resolve namespace prefixes to their URIs...
const NamespaceVectorType & getNamespaceDecls() const
Retrieve the list of namespace declarations currently in effect.
static const XalanDOMString * getNamespaceForPrefix(const NamespaceVectorType &namespaces, const XalanDOMString &prefix)
Get the namespace for a prefix by searching a vector of namespaces.
const XalanDOMString * getNamespaceFromStack(const XalanDOMString &nodeName, XalanDOMString &theBuffer) const
Get the namespace from a qualified name.
Class to hold XPath return types.
void setXSLTNamespaceURI(const XalanDOMString &theURI)
XalanQName::NamespacesStackType NamespacesStackType
const XalanDOMString & getCurrentIncludeBaseIdentifier() const
Retrieve the base identifier for the most recently included stylesheet.
virtual void pushTopLevelVariables(const ParamVectorType &topLevelParams)=0
Set a list of top level variables in the specified execution context stylesheet.
#define XALAN_USES_MEMORY_MANAGER(Type)
XalanVector< KeyDeclaration > KeyDeclarationVectorType
#define XALAN_XSLT_EXPORT
WhitespaceElementsVectorType m_whitespaceElements
XalanMap< const XalanNode *, KeyTable *> KeyTablesTableType
bool operator==(const ElemAttributeSet &theLHS, const ElemAttributeSet &theRHS)
XERCES_CPP_NAMESPACE_QUALIFIER AttributeList AttributeListType
XalanVector< Stylesheet * > StylesheetVectorType
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMChar *prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
XalanVector< ElemDecimalFormat * > ElemDecimalFormatVectorType
This class represents the base stylesheet or an "import" stylesheet.
PatternTableVectorTypeDecl PatternTableVectorType
ExtensionNSHandler * lookupExtensionNSHandler(const XalanDOMString &uri) const
Return the handler for a given extension namespace.
Class to represent a qualified name.
XalanMap< XalanDOMString, PatternTableVectorType > PatternTableMapType
const NamespacesStackType & getNamespaces() const
Retrieve the stack of namespace lists.
const ElemTemplate * getFirstTemplate() const
StylesheetRoot & getStylesheetRoot()
Retrieve the root stylesheet object.
Xalan implementation of deque.
void setXSLTVerDeclared(double ver)
Set XSLT version number.
bool isWrapperless() const
whether there is a wrapper template