18 #if !defined(STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680)
19 #define STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680
38 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION) || defined(XALAN_BUILD_DLL)
87 class XPathEnvSupport;
110 eDefaultXalanDOMCharVectorBlockSize = 1024,
111 eDefaultAVTBlockSize = 128,
112 eDefaultAVTPartSimpleBlockSize = 128,
113 eDefaultAVTPartXPathBlockSize = 128,
114 eDefaultXalanQNameByValueBlockSize = 32,
115 eDefaultPointerVectorBlockSize = 512,
116 eDefaultElemApplyTemplatesBlockSize = 10,
117 eDefaultElemAttributeBlockSize = 10,
118 eDefaultElemAttributeSetBlockSize = 10,
119 eDefaultElemCallTemplateBlockSize = 10,
120 eDefaultElemElementBlockSize = 10,
121 eDefaultElemLiteralResultBlockSize = 20,
122 eDefaultElemTemplateBlockSize = 10,
123 eDefaultElemTextLiteralBlockSize = 20,
124 eDefaultElemValueOfBlockSize = 10,
125 eDefaultElemVariableBlockSize = 10,
126 eDefaultMatchPatternDataBlockSize = 10 };
145 MemoryManager& theManager,
148 VectorAllocatorSizeType theXalanDOMCharVectorAllocatorBlockSize = eDefaultXalanDOMCharVectorBlockSize,
153 VectorAllocatorSizeType thePointerVectorAllocatorBlockSize = eDefaultPointerVectorBlockSize);
164 eClassification classification,
166 const Locator* locator,
172 eClassification classification,
184 const XalanDOMChar* theString,
207 virtual URLAutoPtrType
211 getURLStringFromString(
215 virtual URLAutoPtrType
221 getURLStringFromString(
227 getXSLTNamespaceURI()
const;
231 const Locator* locator,
234 bool allowVariableReferences =
true,
235 bool allowKeyFunction =
true);
239 const Locator* locator,
240 const XalanDOMChar* str,
242 bool allowVariableReferences =
true,
243 bool allowKeyFunction =
true);
247 const Locator* locator,
250 bool allowVariableReferences =
true,
251 bool allowKeyFunction =
true);
255 const Locator* locator,
256 const XalanDOMChar* str,
258 bool allowVariableReferences =
true,
259 bool allowKeyFunction =
true);
263 const Locator* locator,
264 const XalanDOMChar* str,
267 bool allowVariableReferences =
true,
268 bool allowKeyFunction =
true);
270 virtual const Locator*
271 getLocatorFromStack()
const;
274 pushLocatorOnStack(
const Locator* locator);
280 getXalanXSLNameSpaceURL()
const;
285 DocumentHandler* docHandler,
287 ErrorHandler* theErrorHandler = 0);
291 const XalanDOMChar* theAttributeName,
293 const Locator* theLocator = 0);
296 isXSLUseAttributeSetsAttribute(
297 const XalanDOMChar* theAttributeName,
299 const Locator* theLocator = 0);
303 const XalanDOMChar* theName,
305 const Locator* theLocator = 0);
307 virtual eElementToken
311 getXSLTVersionSupported()
const;
313 virtual XalanDOMChar*
316 virtual XalanDOMChar*
317 allocateXalanDOMCharVector(
318 const XalanDOMChar* theString,
320 bool fTerminate =
true);
324 const Locator* locator,
325 const XalanDOMChar* name,
326 const XalanDOMChar* stringedValue,
331 const XalanDOMChar* theString,
336 const Locator* locator,
337 const XalanDOMChar* str,
342 allocateAVTPointerVector(
size_type theLength);
345 allocateAVTPartPointerVector(
size_type theLength);
350 const NamespacesStackType& namespaces,
351 const Locator* locator = 0,
352 bool fUseDefault =
false);
356 const XalanDOMChar* qname,
357 const NamespacesStackType& namespaces,
358 const Locator* locator = 0,
359 bool fUseDefault =
false);
364 const XalanDOMChar* qnameTokens,
365 const NamespacesStackType& namespaces,
366 const Locator* locator = 0,
367 bool fUseDefault =
false);
374 const Locator* locator = 0);
380 const XalanDOMChar* name,
382 const Locator* locator = 0);
387 const XalanDOMChar* chars,
390 bool disableOutputEscaping,
391 const Locator* locator = 0);
396 const XalanDOMChar* name,
399 const Locator* locator = 0);
402 createXalanMatchPatternData(
406 const XPath& theMatchPattern,
419 doAllocateAVTPointerVector(
size_type theSize)
423 return reinterpret_cast<const AVT**
>(m_pointerVectorAllocator.allocate(theSize));
427 doAllocateAVTPartPointerVector(
size_type theSize)
429 assert(
sizeof(
AVTPart**) ==
sizeof(PointerVectorAllocatorType::value_type));
431 return reinterpret_cast<const AVTPart**
>(m_pointerVectorAllocator.allocate(theSize));
435 doAllocateXalanQNamePointerVector(
size_type theSize)
437 assert(
sizeof(XalanQName**) ==
sizeof(PointerVectorAllocatorType::value_type));
439 return reinterpret_cast<const XalanQName**
>(m_pointerVectorAllocator.allocate(theSize));
443 XSLTEngineImpl& m_processor;
445 XPathFactory& m_xpathFactory;
447 typedef XalanMemMgrAutoPtr<XPathProcessor> XPathProcessAutoPtr;
449 XPathProcessAutoPtr m_xpathProcessor;
451 StylesheetVectorType m_stylesheets;
453 XalanDOMStringPool m_stringPool;
455 XalanDOMCharVectorAllocatorType m_xalanDOMCharVectorAllocator;
457 mutable XalanDOMString m_tempBuffer;
459 XalanQNameByValue m_scratchQName;
461 XalanDOMStringCache m_stringCache;
463 XalanAVTAllocator m_avtAllocator;
465 XalanAVTPartSimpleAllocator m_avtPartSimpleAllocator;
467 XalanAVTPartXPathAllocator m_avtPartXPathAllocator;
469 XalanQNameByValueAllocator m_xalanQNameByValueAllocator;
471 const XalanQNameByReference m_useAttributeSetsQName;
473 PointerVectorAllocatorType m_pointerVectorAllocator;
475 ElemTemplateElementVectorType m_allocatedElements;
477 XalanElemApplyTemplatesAllocator m_elemApplyTemplatesAllocator;
479 XalanElemAttributeAllocator m_elemAttributeAllocator;
481 XalanElemAttributeSetAllocator m_elemAttributeSetAllocator;
483 XalanElemCallTemplateAllocator m_elemCallTemplateAllocator;
485 XalanElemElementAllocator m_elemElementAllocator;
487 XalanElemLiteralResultAllocator m_elemLiteralResultAllocator;
489 XalanElemTemplateAllocator m_elemTemplateAllocator;
491 XalanElemTextLiteralAllocator m_elemTextLiteralAllocator;
493 XalanElemValueOfAllocator m_elemValueOfAllocator;
495 XalanElemVariableAllocator m_elemVariableAllocator;
497 XalanMatchPatternDataAllocator m_matchPatternDataAllocator;
499 const XalanQNameByReference m_spaceAttrQName;
504 static const XalanDOMChar s_if[];
507 static const XalanDOMChar s_key[];
510 static const XalanDOMChar s_copy[];
513 static const XalanDOMChar s_sort[];
516 static const XalanDOMChar s_text[];
519 static const XalanDOMChar s_when[];
522 static const XalanDOMChar s_empty[];
525 static const XalanDOMChar s_param[];
528 static const XalanDOMChar s_choose[];
531 static const XalanDOMChar s_import[];
534 static const XalanDOMChar s_number[];
537 static const XalanDOMChar s_output[];
540 static const XalanDOMChar s_comment[];
543 static const XalanDOMChar s_copyOf[];
546 static const XalanDOMChar s_element[];
549 static const XalanDOMChar s_include[];
552 static const XalanDOMChar s_message[];
555 static const XalanDOMChar s_fallback[];
558 static const XalanDOMChar s_forEach[];
561 static const XalanDOMChar s_template[];
564 static const XalanDOMChar s_valueOf[];
567 static const XalanDOMChar s_variable[];
570 static const XalanDOMChar s_attribute[];
573 static const XalanDOMChar s_otherwise[];
576 static const XalanDOMChar s_transform[];
579 static const XalanDOMChar s_stylesheet[];
582 static const XalanDOMChar s_withParam[];
585 static const XalanDOMChar s_stripSpace[];
588 static const XalanDOMChar s_applyImports[];
591 static const XalanDOMChar s_attributeSet[];
594 static const XalanDOMChar s_callTemplate[];
597 static const XalanDOMChar s_decimalFormat[];
600 static const XalanDOMChar s_preserveSpace[];
603 static const XalanDOMChar s_applyTemplates[];
606 static const XalanDOMChar s_namespaceAlias[];
609 static const XalanDOMChar s_processingInstruction[];
613 struct ElementTokenTableEntry
615 const XalanDOMChar* m_name;
617 eElementToken m_token;
620 static const ElementTokenTableEntry s_elementTokenTable[];
622 static const XalanSize_t s_elementTokenTableSize;
624 static const ElementTokenTableEntry& s_elementTokenTableLast;
626 static const ElementTokenTableEntry& s_elementTokenTableDummy;
635 #endif // STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680