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;
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,
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,
449 const XalanDOMChar* name,
462 const Locator* locator = 0);
482 m_imports.insert(m_imports.begin(), theStylesheet);
493 return m_isWrapperless;
499 const Locator* locator);
509 return m_includeStack;
524 const Locator* locator,
549 assert(targetNode != 0);
576 bool onlyUseImports)
const;
602 XalanSize_t& theArraySize);
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;
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(
801 bool m_isWrapperless;
834 double m_XSLTVerDeclared;
#define XALAN_CPP_NAMESPACE
#define XALAN_XSLT_EXPORT
#define XALAN_USES_MEMORY_MANAGER(Type)
XalanVector< TopLevelArg > ParamVectorType
This acts as the stylesheet root of the stylesheet tree, and holds values that are shared by all styl...
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
const XalanDOMChar * c_str() const
Xalan implementation of a hashtable.
XalanMapIterator< XalanMapConstIteratorTraits< value_type >, typename EntryListType::iterator > const_iterator
This class contains information concerning a match pattern in a stylesheet.
virtual NodeType getNodeType() const =0
An enum value representing the type of the underlying object.
Class to represent a qualified name.
XalanDeque< NameSpace, ConstructWithMemoryManagerTraits< NameSpace > > NamespaceVectorType
XalanDeque< NamespaceVectorType, ConstructWithMemoryManagerTraits< NamespaceVectorType > > NamespacesStackType
static const XalanDOMString * getNamespaceForPrefix(const NamespaceVectorType &namespaces, const XalanDOMString &prefix)
Get the namespace for a prefix by searching a vector of namespaces.
XalanVector< const XalanMatchPatternData * > PatternTableVectorTypeDecl
xercesc::AttributeList AttributeListType