19 #if !defined(XALAN_STYLESHEET_HEADER_GUARD)
20 #define XALAN_STYLESHEET_HEADER_GUARD
61 class ExtensionNSHandler;
62 class XalanDecimalFormatSymbols;
63 class ElemDecimalFormat;
65 class ElemTemplateElement;
68 class NodeRefListBase;
70 class StylesheetConstructionContext;
72 class XalanMatchPatternData;
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,
330 return XalanQName::getNamespaceForPrefix(m_namespaces, prefix);
345 return XalanQName::getNamespaceForPrefix(m_namespaces, (
const XalanDOMChar*)prefix);
356 getNamespaceForPrefix(
368 getNamespaceForPrefix(
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);
683 pushTopLevelVariables(
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;
845 PatternTableVectorType m_elementAnyPatternList;
852 PatternTableMapType m_attributePatternTable;
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;
891 #endif // XALAN_STYLESHEET_HEADER_GUARD
const XalanDOMString & getCurrentIncludeBaseIdentifier() const
Retrieve the base identifier for the most recently included stylesheet.
StylesheetExecutionContext::ParamVectorType ParamVectorType
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)
void popNamespaces()
Pop a namespace declaration from the namespace stack.
XalanMap< const XalanNode *, KeyTable * > KeyTablesTableType
const NamespaceVectorType & getNamespaceDecls() const
Retrieve the list of namespace declarations currently in effect.
xercesc::AttributeList AttributeListType
StylesheetRoot & m_stylesheetRoot
The root of the stylesheet tree.
void setXSLTVerDeclared(double ver)
Set XSLT version number.
XalanVector< Stylesheet * > StylesheetVectorType
XalanVector< KeyDeclaration > KeyDeclarationVectorType
ExtensionNSHandler * lookupExtensionNSHandler(const XalanDOMString &uri) const
Return the handler for a given extension namespace.
NamespaceVectorType & getNamespaceDecls()
Retrieve the list of namespace declarations currently in effect.
const StylesheetRoot & getStylesheetRoot() const
Retrieve the root stylesheet object.
XalanQName::NamespaceVectorType NamespaceVectorType
void processExcludeResultPrefixes(StylesheetConstructionContext &theConstructionContext, const XalanDOMChar *theValue)
See if a namespace should be excluded.
StylesheetConstructionContext::GetCachedString GetCachedString
PatternTableVectorTypeDecl PatternTableVectorType
This class defines an interface for classes that resolve namespace prefixes to their URIs...
XalanQName::NamespacesStackType NamespacesStackType
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
XalanVector< XalanDOMString > URLStackType
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.
This class represents the base stylesheet or an "import" stylesheet.
Class to represent a qualified name.
void setTopLevelVariable(ElemVariable *var)
Set a top level variable.
This class contains information concerning a match pattern in a stylesheet.
void addImport(Stylesheet *theStylesheet)
Add an imported stylesheet.
XalanVector< ElemVariable * > ElemVariableVectorType
MemoryManager & getMemoryManager()
XalanDOMString m_baseIdent
The base URL of the XSL document.
void setNamespaceDecls(const NamespaceVectorType &ns)
Set the list of namespace declarations currently in effect.
const XalanDOMChar * c_str() const
XalanMap< XalanQNameByReference, const ElemTemplate * > ElemTemplateMapType
StylesheetRoot & getStylesheetRoot()
Retrieve the root stylesheet object.
XalanVector< ElemDecimalFormat * > ElemDecimalFormatVectorType
XalanMap< XalanDOMString, ExtensionNSHandler * > ExtensionNamespacesMapType
KeyDeclarationVectorType m_keyDeclarations
Table of KeyDeclaration objects, which are set by the xsl:key element.
NamespacesHandler & getNamespacesHandler()
virtual NodeType getNodeType() const =0
An enum value representing the type of the underlying object.
URLStackType & getIncludeStack()
Retrieve the stack of who's including who.
double getXSLTVerDeclared() const
Retrieve XSLT version number.
const ElemTemplate * getFirstTemplate() const
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMChar *prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
const XalanDOMString * getNamespaceForPrefixFromStack(const XalanDOMString &prefix) const
Get the namespace from a prefix by searching the stack of namespace lists.
#define XALAN_USES_MEMORY_MANAGER(Type)
#define XALAN_XSLT_EXPORT
const XalanDOMString & getBaseIdentifier() const
Retrieve the base identifier with which this stylesheet is associated.
NamespacesStackType & getNamespaces()
Retrieve the stack of namespace lists.
const NamespacesStackType & getNamespaces() const
Retrieve the stack of namespace lists.
const NamespacesHandler & getNamespacesHandler() const
WhitespaceElementsVectorType m_whitespaceElements
This acts as the stylesheet root of the stylesheet tree, and holds values that are shared by all styl...
XalanVector< XalanSpaceNodeTester > WhitespaceElementsVectorType
const XalanDOMString * getNamespaceFromStack(const XalanDOMString &nodeName, XalanDOMString &theBuffer) const
Get the namespace from a qualified name.
const XalanDOMString & getXSLTNamespaceURI() const
XalanVector< const XalanMatchPatternData * > PatternTableVectorTypeDecl
XalanMap< XalanDOMString, PatternTableVectorType > PatternTableMapType
static const XalanQNameByReference s_emptyQName
Xalan implementation of deque.
void setXSLTNamespaceURI(const XalanDOMString &theURI)
bool isWrapperless() const
whether there is a wrapper template