16 #if !defined(STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680)
17 #define STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680
36 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION) || (XALAN_ALLINONE_BUILD_DLL)
81 XALAN_CPP_NAMESPACE_BEGIN
108 eDefaultXalanDOMCharVectorBlockSize = 1024,
109 eDefaultAVTBlockSize = 128,
110 eDefaultAVTPartSimpleBlockSize = 128,
111 eDefaultAVTPartXPathBlockSize = 128,
112 eDefaultXalanQNameByValueBlockSize = 32,
113 eDefaultPointerVectorBlockSize = 512,
114 eDefaultElemApplyTemplatesBlockSize = 10,
115 eDefaultElemAttributeBlockSize = 10,
116 eDefaultElemAttributeSetBlockSize = 10,
117 eDefaultElemCallTemplateBlockSize = 10,
118 eDefaultElemElementBlockSize = 10,
119 eDefaultElemLiteralResultBlockSize = 20,
120 eDefaultElemTemplateBlockSize = 10,
121 eDefaultElemTextLiteralBlockSize = 20,
122 eDefaultElemValueOfBlockSize = 10,
123 eDefaultElemVariableBlockSize = 10,
124 eDefaultMatchPatternDataBlockSize = 10 };
146 VectorAllocatorSizeType theXalanDOMCharVectorAllocatorBlockSize = eDefaultXalanDOMCharVectorBlockSize,
151 VectorAllocatorSizeType thePointerVectorAllocatorBlockSize = eDefaultPointerVectorBlockSize);
212 virtual URLAutoPtrType
219 virtual URLAutoPtrType
238 bool allowVariableReferences =
true,
239 bool allowKeyFunction =
true);
244 const XalanDOMChar* str,
246 bool allowVariableReferences =
true,
247 bool allowKeyFunction =
true);
254 bool allowVariableReferences =
true,
255 bool allowKeyFunction =
true);
260 const XalanDOMChar* str,
262 bool allowVariableReferences =
true,
263 bool allowKeyFunction =
true);
268 const XalanDOMChar* str,
271 bool allowVariableReferences =
true,
272 bool allowKeyFunction =
true);
294 const XalanDOMChar* theAttributeName,
300 const XalanDOMChar* theAttributeName,
306 const XalanDOMChar* theName,
310 virtual eElementToken
321 const XalanDOMChar* theString,
330 virtual XalanDOMChar*
333 virtual XalanDOMChar*
335 const XalanDOMChar* theString,
337 bool fTerminate =
true);
342 const XalanDOMChar* name,
343 const XalanDOMChar* stringedValue,
348 const XalanDOMChar* theString,
354 const XalanDOMChar* str,
367 const NamespacesStackType& namespaces,
369 bool fUseDefault =
false);
373 const XalanDOMChar* qname,
374 const NamespacesStackType& namespaces,
376 bool fUseDefault =
false);
381 const XalanDOMChar* qnameTokens,
382 const NamespacesStackType& namespaces,
384 bool fUseDefault =
false);
397 const XalanDOMChar* name,
404 const XalanDOMChar* chars,
407 bool disableOutputEscaping,
413 const XalanDOMChar* name,
423 const XPath& theMatchPattern,
436 doAllocateAVTPointerVector(
size_type theSize)
440 #if defined(XALAN_OLD_STYLE_CASTS)
441 return (
const AVT**)m_pointerVectorAllocator.allocate(theSize);
443 return reinterpret_cast<const AVT**
>(m_pointerVectorAllocator.allocate(theSize));
448 doAllocateAVTPartPointerVector(
size_type theSize)
450 assert(
sizeof(
AVTPart**) ==
sizeof(PointerVectorAllocatorType::value_type));
452 #if defined(XALAN_OLD_STYLE_CASTS)
453 return (
const AVTPart**)m_pointerVectorAllocator.allocate(theSize);
455 return reinterpret_cast<const AVTPart**
>(m_pointerVectorAllocator.allocate(theSize));
460 doAllocateXalanQNamePointerVector(
size_type theSize)
462 assert(
sizeof(
XalanQName**) ==
sizeof(PointerVectorAllocatorType::value_type));
464 #if defined(XALAN_OLD_STYLE_CASTS)
465 return (
const XalanQName**)m_pointerVectorAllocator.allocate(theSize);
467 return reinterpret_cast<const XalanQName**
>(m_pointerVectorAllocator.allocate(theSize));
478 XPathProcessAutoPtr m_xpathProcessor;
480 StylesheetVectorType m_stylesheets;
484 XalanDOMCharVectorAllocatorType m_xalanDOMCharVectorAllocator;
502 PointerVectorAllocatorType m_pointerVectorAllocator;
504 ElemTemplateElementVectorType m_allocatedElements;
533 static const XalanDOMChar s_if[];
536 static const XalanDOMChar s_key[];
539 static const XalanDOMChar s_copy[];
542 static const XalanDOMChar s_sort[];
545 static const XalanDOMChar s_text[];
548 static const XalanDOMChar s_when[];
551 static const XalanDOMChar s_empty[];
554 static const XalanDOMChar s_param[];
557 static const XalanDOMChar s_choose[];
560 static const XalanDOMChar s_import[];
563 static const XalanDOMChar s_number[];
566 static const XalanDOMChar s_output[];
569 static const XalanDOMChar s_comment[];
572 static const XalanDOMChar s_copyOf[];
575 static const XalanDOMChar s_element[];
578 static const XalanDOMChar s_include[];
581 static const XalanDOMChar s_message[];
584 static const XalanDOMChar s_fallback[];
587 static const XalanDOMChar s_forEach[];
590 static const XalanDOMChar s_template[];
593 static const XalanDOMChar s_valueOf[];
596 static const XalanDOMChar s_variable[];
599 static const XalanDOMChar s_attribute[];
602 static const XalanDOMChar s_otherwise[];
605 static const XalanDOMChar s_transform[];
608 static const XalanDOMChar s_stylesheet[];
611 static const XalanDOMChar s_withParam[];
614 static const XalanDOMChar s_stripSpace[];
617 static const XalanDOMChar s_applyImports[];
620 static const XalanDOMChar s_attributeSet[];
623 static const XalanDOMChar s_callTemplate[];
626 static const XalanDOMChar s_decimalFormat[];
629 static const XalanDOMChar s_preserveSpace[];
632 static const XalanDOMChar s_applyTemplates[];
635 static const XalanDOMChar s_namespaceAlias[];
638 static const XalanDOMChar s_processingInstruction[];
642 struct ElementTokenTableEntry
644 const XalanDOMChar* m_name;
646 eElementToken m_token;
649 static const ElementTokenTableEntry s_elementTokenTable[];
651 static const unsigned int s_elementTokenTableSize;
653 static const ElementTokenTableEntry& s_elementTokenTableLast;
655 static const ElementTokenTableEntry& s_elementTokenTableDummy;
660 XALAN_CPP_NAMESPACE_END
664 #endif // STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680
virtual bool isXMLSpaceAttribute(const XalanDOMChar *theAttributeName, const Stylesheet &theStylesheet, const LocatorType *theLocator=0)=0
Given an name, determine if it is the xml:space attribute.
Definition: XalanNode.hpp:44
virtual const XalanQName ** tokenizeQNames(size_type &count, const XalanDOMChar *qnameTokens, const NamespacesStackType &namespaces, const LocatorType *locator=0, bool fUseDefault=false)=0
Tokenize a string and return the QNames corresponding to those tokens.
ArenaAllocatorType::size_type size_type
Definition: XalanAVTPartXPathAllocator.hpp:53
Definition: ElemTemplate.hpp:41
virtual const XalanDOMString & getXSLTNamespaceURI() const =0
Retrieve the URI for the current XSLT namespace, for example, "http://www.w3.org/1999/XSL/Transform"...
XERCES_CPP_NAMESPACE_QUALIFIER AttributeList AttributeListType
Definition: AttributeListImpl.hpp:39
VectorType::size_type size_type
Definition: XalanArrayAllocator.hpp:45
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
XalanVector< ElemTemplateElement * > ElemTemplateElementVectorType
Definition: StylesheetConstructionContextDefault.hpp:431
This class contains information concerning a match pattern in a stylesheet.
Definition: XalanMatchPatternData.hpp:50
virtual void popLocatorStack()=0
Pop the locator from the top of the locator stack.
virtual StylesheetRoot * create(const XalanDOMString &theBaseIdentifier)=0
Create a new StylesheetRoot instance.
virtual void warn(const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const =0
eMatchScore
Definition: XPath.hpp:84
Definition: ElemTemplateElement.hpp:74
virtual void error(const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const =0
Definition: XalanElemLiteralResultAllocator.hpp:39
This acts as the stylesheet root of the stylesheet tree, and holds values that are shared by all styl...
Definition: StylesheetRoot.hpp:61
Definition: XalanElemElementAllocator.hpp:39
Definition: XalanMatchPatternDataAllocator.hpp:39
virtual URLAutoPtrType getURLFromString(const XalanDOMString &urlString)=0
Determine the fully qualified URI for a string.
virtual XalanDOMString & getCachedString()=0
Get a cached string for temporary use.
virtual XalanDOMString & getURLStringFromString(const XalanDOMString &urlString, XalanDOMString &theResult)=0
Determine the fully qualified URI for a string.
virtual bool releaseCachedString(XalanDOMString &theString)=0
Return a cached string.
virtual bool isValidQName(const XalanDOMChar *theName, const Stylesheet &theStylesheet, const LocatorType *theLocator=0)=0
Given an name, determine if it is a valid QName.
Definition: XalanQNameByReference.hpp:35
virtual void reset()=0
Reset the StylesheetConstructionContext instance.
virtual const AVT ** allocateAVTPointerVector(size_type theLength)=0
Allocate a vector of const AVT* of the specified length.
Definition: XalanElemAttributeAllocator.hpp:39
It's the responsibility of the XSLTEngineImpl class, collaborating with the XML parser liaison...
Definition: XSLTEngineImpl.hpp:122
virtual const LocatorType * getLocatorFromStack() const =0
Get the locator from the top of the locator stack.
virtual const XalanDOMString & getXalanXSLNameSpaceURL() const =0
Get the Xalan namespace for built-in extensions.
Definition: XalanElemCallTemplateAllocator.hpp:39
Definition: XalanElemAttributeSetAllocator.hpp:39
virtual XalanDOMChar * allocateXalanDOMCharVector(XalanDOMString::size_type theLength)=0
Allocate a vector of XalanDOMChar of the specified size.
size_t size_type
Definition: StylesheetConstructionContext.hpp:82
virtual XPath * createXPath(const LocatorType *locator, const XalanDOMString &str, const PrefixResolver &resolver, bool allowVariableReferences=true, bool allowKeyFunction=true)=0
Create and initialize an xpath and return it.
virtual void destroy(StylesheetRoot *theStylesheetRoot)=0
Destroy a StylesheetRoot instance.
virtual ElemTemplateElement * createElement(int token, Stylesheet &stylesheetTree, const AttributeListType &atts, const LocatorType *locator=0)=0
Create a stylesheet element for the provided type.
virtual const XalanDOMString & getPooledString(const XalanDOMString &theString)=0
Get a pooled string given the source string.
Definition: XalanAVTPartXPathAllocator.hpp:39
Definition: XalanDOMStringPool.hpp:37
Class to hold a part, either a string or XPath, of an Attribute Value Template.
Definition: AVTPart.hpp:46
ArenaAllocatorType::size_type size_type
Definition: XalanAVTAllocator.hpp:53
Class to hold an Attribute Value Template.
Definition: AVT.hpp:52
Definition: XalanDOMStringCache.hpp:42
virtual const AVT * createAVT(const LocatorType *locator, const XalanDOMChar *name, const XalanDOMChar *stringedValue, const PrefixResolver &resolver)=0
Create an AVT instance.
XalanVector< StylesheetRoot * > StylesheetVectorType
Definition: StylesheetConstructionContextDefault.hpp:430
const void * value_type
Definition: XalanArrayAllocator.hpp:50
Definition: XPathEnvSupport.hpp:62
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
Definition: XalanMap.hpp:44
XalanDOMCharVectorAllocatorType::size_type VectorAllocatorSizeType
Definition: StylesheetConstructionContextDefault.hpp:104
virtual void pushLocatorOnStack(const LocatorType *locator)=0
Push a locator on to the locator stack.
ArenaAllocatorType::size_type size_type
Definition: XalanAVTPartSimpleAllocator.hpp:53
virtual const AVTPart ** allocateAVTPartPointerVector(size_type theLength)=0
Allocate a vector of const AVTPart* of the specified length.
ArenaAllocatorType::size_type size_type
Definition: XalanQNameByValueAllocator.hpp:55
virtual const XalanQName * createXalanQName(const XalanDOMString &qname, const NamespacesStackType &namespaces, const LocatorType *locator=0, bool fUseDefault=false)=0
Create a XalanQName-derived instance.
This class defines an interface for classes that resolve namespace prefixes to their URIs...
Definition: PrefixResolver.hpp:37
Definition: XalanElemApplyTemplatesAllocator.hpp:39
virtual XPath * createMatchPattern(const LocatorType *locator, const XalanDOMString &str, const PrefixResolver &resolver, bool allowVariableReferences=true, bool allowKeyFunction=true)=0
Create and initialize an xpath for a match pattern and return it.
Definition: ExtensionNSHandler.hpp:54
Definition: XalanElemValueOfAllocator.hpp:39
virtual eElementToken getElementToken(const XalanDOMString &name) const =0
Given an XSL tag name, return an integer token that corresponds to the enums defined above...
Definition: XalanDocument.hpp:51
XalanArrayAllocator< const void * > PointerVectorAllocatorType
Definition: StylesheetConstructionContextDefault.hpp:103
XERCES_CPP_NAMESPACE_QUALIFIER DocumentHandler DocumentHandlerType
Definition: StylesheetConstructionContext.hpp:50
#define XALAN_XSLT_EXPORT
Definition: XSLTDefinitions.hpp:25
virtual void message(const XalanDOMString &msg, const XalanNode *sourceNode=0, const ElemTemplateElement *styleNode=0) const =0
Definition: XalanQNameByValue.hpp:43
Definition: XPathProcessor.hpp:47
virtual const XalanMatchPatternData * createXalanMatchPatternData(const ElemTemplate &theTemplate, size_type thePosition, const XalanDOMString &theTargetString, const XPath &theMatchPattern, const XalanDOMString &thePatternString, XPath::eMatchScore thePriority)=0
Create an instance of XalanMatchPatternData, which describes data related to a match pattern and temp...
Definition: XPathFactory.hpp:39
Definition: XalanDOMString.hpp:42
XalanDOMString::size_type length(const XalanDOMString &theString)
Get the length of a XalanDOMString.
Definition: DOMStringHelper.hpp:277
Definition: XalanAVTPartSimpleAllocator.hpp:39
Definition: StylesheetConstructionContext.hpp:73
Definition: XalanAVTAllocator.hpp:39
XalanArrayAllocator< XalanDOMChar > XalanDOMCharVectorAllocatorType
Definition: StylesheetConstructionContextDefault.hpp:102
virtual const AVTPart * createAVTPart(const XalanDOMChar *theString, XalanDOMString::size_type theLength=XalanDOMString::npos)=0
Create an AVTPart instance.
This class represents the base stylesheet or an "import" stylesheet.
Definition: Stylesheet.hpp:84
Definition: XalanQNameByValueAllocator.hpp:39
virtual bool isXSLUseAttributeSetsAttribute(const XalanDOMChar *theAttributeName, const Stylesheet &theStylesheet, const LocatorType *theLocator=0)=0
Given an name, determine if it is the xsl:use-attribute-sets attribute.
virtual double getXSLTVersionSupported() const =0
Get the latest XSLT version currently supported.
unsigned int size_type
Definition: XalanDOMString.hpp:53
Class to represent a qualified name: "The name of an internal XSLT object, specifically a named templ...
Definition: XalanQName.hpp:68
virtual XalanDocument * parseXML(const XalanDOMString &urlString, DocumentHandlerType *docHandler, XalanDocument *docToRegister)=0
Read in the XML file, either producing a Document or calling SAX events, and register the document in...
Definition: XalanElemTextLiteralAllocator.hpp:39
Definition: XalanDOMString.hpp:63
Definition: XalanElemVariableAllocator.hpp:39
Definition: XalanElemTemplateAllocator.hpp:39
An default implementation of an abtract class which provides support for constructing the internal re...
Definition: StylesheetConstructionContextDefault.hpp:98