18 #if !defined(XALAN_XSLTENGINEIMPL_HEADER_GUARD)
19 #define XALAN_XSLTENGINEIMPL_HEADER_GUARD
43 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
81 XALAN_DECLARE_XERCES_CLASS(InputSource)
82 XALAN_DECLARE_XERCES_CLASS(DocumentHandler)
86 XALAN_CPP_NAMESPACE_BEGIN
139 if (theLHS == 0 && theRHS != 0)
143 else if (theRHS == 0)
149 return theLHS->
compare(*theRHS) < 0 ?
true :
false;
170 assert(theString != 0);
172 return *theString == m_string;
204 MemoryManager& theManager,
205 XMLParserLiaison& parserLiaison,
206 XPathEnvSupport& xpathEnvSupport,
207 DOMSupport& domSupport,
209 XPathFactory& xpathFactory);
217 return m_xpathConstructionContext.getMemoryManager();
223 return m_xpathConstructionContext.getMemoryManager();
231 initialize(MemoryManager& theManager);
244 eClassification classification,
246 const Locator* locator,
252 eClassification classification,
260 XSLTResultTarget& outputTarget,
261 StylesheetConstructionContext& constructionContext,
267 XSLTResultTarget& outputTarget,
270 virtual StylesheetRoot*
273 StylesheetConstructionContext& constructionContext);
275 virtual StylesheetRoot*
278 StylesheetConstructionContext& constructionContext);
286 virtual XMLParserLiaison&
287 getXMLParserLiaison()
const;
303 clearStylesheetParams();
306 getFormatterListener()
const;
314 getTraceListeners()
const;
323 fireGenerateEvent(
const GenerateEvent& ge);
332 getTraceSelects()
const;
335 setTraceSelects(
bool b);
342 const XPath* xpath)
const;
345 setQuietConflictWarnings(
bool b);
348 setDiagnosticsOutput(PrintWriter* pw);
386 DocumentHandler* docHandler,
388 ErrorHandler* theErrorHandler = 0);
403 const InputSource& inputSource,
404 DocumentHandler* docHandler,
406 ErrorHandler* theErrorHandler = 0);
421 getStylesheetFromPIURL(
426 StylesheetConstructionContext& constructionContext);
445 addResultNamespaceDecl(
447 namespaceVal.
c_str(),
461 const XalanDOMChar* namespaceVal,
464 m_resultNamespacesStack.addDeclaration(
485 bool fromCopy =
false,
486 const Locator* locator = 0)
510 const XalanDOMChar* value,
511 bool fromCopy =
false,
512 const Locator* locator = 0)
538 const XalanDOMChar* value,
540 bool fromCopy =
false,
541 const Locator* locator = 0);
555 const XalanDOMChar* value,
556 bool fromCopy =
false,
557 const Locator* locator = 0)
559 assert(m_outputContextStack.empty() ==
false);
562 getPendingAttributesImpl(),
582 bool fromCopy =
false,
583 const Locator* locator = 0)
585 assert(m_outputContextStack.empty() ==
false);
588 getPendingAttributesImpl(),
601 reportDuplicateNamespaceNodeError(
603 const Locator* locator);
606 setDocumentLocator(
const Locator* locator);
616 const XalanDOMChar* name,
620 endElement(
const XalanDOMChar* name);
624 const XalanDOMChar* ch,
629 const XalanDOMChar* ch,
633 processingInstruction(
634 const XalanDOMChar* target,
635 const XalanDOMChar* data);
649 const XalanDOMChar* ch,
676 startElement(
const XalanDOMChar* name);
689 const XalanDOMChar* ch,
715 comment(
const XalanDOMChar* data);
724 entityReference(
const XalanDOMChar* data);
735 const XalanDOMChar* ch,
749 bool cloneTextNodesOnly,
750 const Locator* locator);
767 bool shouldCloneAttributes,
768 bool cloneTextNodesOnly,
769 const Locator* locator);
780 const XObject& value,
781 bool outputTextNodesOnly,
782 const Locator* locator);
794 const XObject& theTree,
795 bool outputTextNodesOnly,
796 const Locator* locator)
798 outputResultTreeFragment(
813 outputResultTreeFragment(
815 bool outputTextNodesOnly,
816 const Locator* locator);
823 virtual const StylesheetRoot*
824 getStylesheetRoot()
const;
832 setStylesheetRoot(
const StylesheetRoot* theStylesheet);
851 return s_XSLNameSpaceURL;
862 return s_XalanNamespaceURL;
873 return m_quietConflictWarnings;
892 getResultPrefixForNamespace(
const XalanDOMString& theNamespace)
const;
929 const PrefixResolver& resolver);
938 returnXPath(
const XPath* xpath);
946 copyNamespaceAttributes(
const XalanNode& src);
973 const PrefixResolver& prefixResolver,
1000 copyAttributeToTarget(
1013 return m_xpathFactory;
1024 return *m_xpathProcessor.get();
1042 return m_xpathEnvSupport;
1056 m_problemListener = l;
1070 return m_problemListener;
1081 m_outputContextStack.pushContext(theListener);
1090 m_outputContextStack.popContext();
1100 return getHasPendingStartDocumentImpl();
1110 setHasPendingStartDocumentImpl(b);
1120 return getMustFlushPendingStartDocumentImpl();
1130 setMustFlushPendingStartDocumentImpl(b);
1141 return getPendingAttributesImpl();
1152 getPendingAttributesImpl() = pendingAttributes;
1164 const XalanDOMChar* theName,
1165 const XalanDOMChar* theNewType,
1166 const XalanDOMChar* theNewValue)
1170 getPendingAttributesImpl().addAttribute(theName, theNewType, theNewValue);
1176 return !getPendingElementNameImpl().empty();
1187 return getPendingElementNameImpl();
1198 setPendingElementNameImpl(elementName);
1204 setPendingElementNameImpl(elementName);
1215 return m_stylesheetLocatorStack.empty() ==
true ? 0 : m_stylesheetLocatorStack.back();
1226 m_stylesheetLocatorStack.push_back(locator);
1235 if (m_stylesheetLocatorStack.empty() ==
false)
1237 m_stylesheetLocatorStack.pop_back();
1251 return m_outputContextStack.getPendingAttributes();
1262 return m_outputContextStack.getPendingAttributes();
1273 getPendingAttributesImpl() = pendingAttributes;
1284 return m_outputContextStack.getPendingElementName();
1295 return m_outputContextStack.getPendingElementName();
1306 m_outputContextStack.getPendingElementName() = elementName;
1317 assert(elementName != 0);
1319 m_outputContextStack.getPendingElementName() = elementName;
1329 return m_outputContextStack.getHasPendingStartDocument();
1339 m_outputContextStack.getHasPendingStartDocument() = b;
1349 return m_outputContextStack.getMustFlushPendingStartDocument();
1359 m_outputContextStack.getMustFlushPendingStartDocument() = b;
1365 return m_outputContextStack.getFormatterListener();
1371 m_outputContextStack.getFormatterListener() = flistener;
1393 copyAttributesToAttList(
1421 warnCopyTextNodesOnly(
1423 const Locator* locator);
1433 const XalanText& node,
1434 bool overrideStrip);
1441 pendingAttributesHasDefaultNS()
const;
1449 bool fOnlyIfPrefixNotPresent);
1455 bool fOnlyIfPrefixNotPresent =
false);
1461 LocatorStack m_stylesheetLocatorStack;
1476 const StylesheetRoot* m_stylesheetRoot;
1496 bool m_traceSelects;
1502 bool m_quietConflictWarnings;
1507 PrintWriter* m_diagnosticsPrintWriter;
1513 TraceListenerVectorType m_traceListeners;
1526 const Locator& locator,
1541 unsigned long m_uniqueNSValue;
1543 ParamVectorType m_topLevelParams;
1553 m_topLevelParams.
clear();
1559 generateCDATASection()
const
1561 if (m_hasCDATASectionElements ==
false)
1567 assert(m_cdataStack.
empty() ==
false);
1569 return m_cdataStack.
back();
1576 setMustFlushPendingStartDocument(
true);
1592 fireCharacterGenerateEvent(
1597 fireCharacterGenerateEvent(
1602 fireCharacterGenerateEvent(
1607 fireCharacterGenerateEvent(
1608 const XalanDOMChar* ch,
1614 checkDefaultNamespace(
1621 const Locator* theLocator,
1627 const Locator* theLocator,
1633 const Locator* theLocator,
1637 XMLParserLiaison& m_parserLiaison;
1639 XPathEnvSupport& m_xpathEnvSupport;
1641 DOMSupport& m_domSupport;
1665 XalanDOMStringPointerVectorType m_attributeNamesVisited;
1667 bool m_hasCDATASectionElements;
1671 ParamMapType m_stylesheetParams;
1674 installFunctions(MemoryManager& theManager);
1677 uninstallFunctions();
1703 XALAN_CPP_NAMESPACE_END
1707 #endif // XALAN_XSLTENGINEIMPL_HEADER_GUARD