Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.8

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

StylesheetConstructionContext.hpp

Go to the documentation of this file.
00001 /* 00002 * Copyright 1999-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #if !defined(STYLESHEETCONSTRUCTIONCONTEXT_HEADER_GUARD_1357924680) 00017 #define STYLESHEETCONSTRUCTIONCONTEXT_HEADER_GUARD_1357924680 00018 00019 00020 00021 // Base include file. Must be first. 00022 #include <xalanc/XSLT/XSLTDefinitions.hpp> 00023 00024 00025 00026 #include <xalanc/PlatformSupport/URISupport.hpp> 00027 00028 00029 00030 #include <xalanc/XalanDOM/XalanDOMString.hpp> 00031 00032 00033 00034 #include <xalanc/XPath/XalanQName.hpp> 00035 #include <xalanc/XPath/XPathConstructionContext.hpp> 00036 00037 00038 00039 XALAN_DECLARE_XERCES_CLASS(AttributeList) 00040 XALAN_DECLARE_XERCES_CLASS(DocumentHandler) 00041 00042 00043 00044 XALAN_CPP_NAMESPACE_BEGIN 00045 00046 00047 00048 typedef XERCES_CPP_NAMESPACE_QUALIFIER AttributeList AttributeListType; 00049 typedef XERCES_CPP_NAMESPACE_QUALIFIER DocumentHandler DocumentHandlerType; 00050 00051 00052 00053 class AVT; 00054 class AVTPart; 00055 class ElemTemplateElement; 00056 class ExtensionNSHandler; 00057 class PrefixResolver; 00058 class Stylesheet; 00059 class StylesheetRoot; 00060 class XalanDocument; 00061 class XalanNode; 00062 class XPath; 00063 class XSLTInputSource; 00064 00065 00066 00067 // 00068 // An abstract class which provides support for constructing the internal 00069 // representation of a stylesheet. 00070 // 00071 class XALAN_XSLT_EXPORT StylesheetConstructionContext : public XPathConstructionContext 00072 { 00073 public: 00074 00075 typedef XalanQName::NamespacesStackType NamespacesStackType; 00076 00077 #if defined(XALAN_STRICT_ANSI_HEADERS) 00078 typedef std::size_t size_type; 00079 #else 00080 typedef size_t size_type; 00081 #endif 00082 00087 enum eElementToken 00088 { 00089 ELEMNAME_UNDEFINED = -2, 00090 ELEMNAME_EMPTY = -1, 00091 ELEMNAME_WITH_PARAM, 00092 ELEMNAME_APPLY_TEMPLATES, 00093 ELEMNAME_CHOOSE, 00094 ELEMNAME_COMMENT, 00095 ELEMNAME_COPY, 00096 ELEMNAME_COPY_OF, 00097 ELEMNAME_ATTRIBUTE, 00098 ELEMNAME_ATTRIBUTE_SET, 00099 ELEMNAME_EXTENSION, 00100 ELEMNAME_FOR_EACH, 00101 ELEMNAME_KEY, 00102 ELEMNAME_IF, 00103 ELEMNAME_IMPORT, 00104 ELEMNAME_INCLUDE, 00105 ELEMNAME_CALL_TEMPLATE, 00106 ELEMNAME_PARAM, 00107 ELEMNAME_NUMBER, 00108 ELEMNAME_OTHERWISE, 00109 ELEMNAME_PI, 00110 ELEMNAME_PRESERVE_SPACE, 00111 ELEMNAME_TEMPLATE, 00112 ELEMNAME_SORT, 00113 ELEMNAME_STRIP_SPACE, 00114 ELEMNAME_STYLESHEET, 00115 ELEMNAME_TEXT, 00116 ELEMNAME_VALUE_OF, 00117 ELEMNAME_WHEN, 00118 ELEMNAME_FALLBACK, 00119 ELEMNAME_ELEMENT, 00120 00121 ELEMNAME_APPLY_IMPORTS, 00122 00123 ELEMNAME_VARIABLE, 00124 ELEMNAME_MESSAGE, 00125 00126 ELEMNAME_OUTPUT, 00127 ELEMNAME_DECIMAL_FORMAT, 00128 ELEMNAME_NAMESPACE_ALIAS, 00129 00130 // This one doesn't really have a name. 00131 // It's used for any literal result 00132 // element. 00133 ELEMNAME_LITERAL_RESULT, 00134 00135 // This one doesn't really have a name. 00136 // It's used for any literal text in 00137 // the content of a literal result 00138 // element. 00139 ELEMNAME_TEXT_LITERAL_RESULT, 00140 00141 // This one doesn't really have a name. 00142 // It's used for forward-compatible 00143 // processing. 00144 ELEMNAME_FORWARD_COMPATIBLE, 00145 00146 // Extension handling. 00147 ELEMNAME_EXTENSION_CALL, 00148 ELEMNAME_EXTENSION_HANDLER 00149 }; 00150 00151 typedef URISupport::URLAutoPtrType URLAutoPtrType; 00152 00153 explicit 00154 StylesheetConstructionContext(); 00155 00156 virtual 00157 ~StylesheetConstructionContext(); 00158 00159 00164 virtual void 00165 reset() = 0; 00166 00175 virtual StylesheetRoot* 00176 create(const XalanDOMString& theBaseIdentifier) = 0; 00177 00186 virtual StylesheetRoot* 00187 create(const XSLTInputSource& theInputSource) = 0; 00188 00198 virtual Stylesheet* 00199 create( 00200 StylesheetRoot& theStylesheetRoot, 00201 const XalanDOMString& theBaseIdentifier) = 0; 00202 00209 virtual void 00210 destroy(StylesheetRoot* theStylesheetRoot) = 0; 00211 00218 virtual URLAutoPtrType 00219 getURLFromString(const XalanDOMString& urlString) = 0; 00220 00227 virtual XalanDOMString 00228 getURLStringFromString(const XalanDOMString& urlString) = 0; 00229 00237 virtual URLAutoPtrType 00238 getURLFromString( 00239 const XalanDOMString& urlString, 00240 const XalanDOMString& base) = 0; 00241 00249 virtual XalanDOMString 00250 getURLStringFromString( 00251 const XalanDOMString& urlString, 00252 const XalanDOMString& base) = 0; 00253 00260 virtual const XalanDOMString& 00261 getXSLTNamespaceURI() const = 0; 00262 00273 virtual XPath* 00274 createMatchPattern( 00275 const LocatorType* locator, 00276 const XalanDOMString& str, 00277 const PrefixResolver& resolver) = 0; 00278 00289 virtual XPath* 00290 createMatchPattern( 00291 const LocatorType* locator, 00292 const XalanDOMChar* str, 00293 const PrefixResolver& resolver) = 0; 00294 00305 virtual XPath* 00306 createXPath( 00307 const LocatorType* locator, 00308 const XalanDOMString& str, 00309 const PrefixResolver& resolver) = 0; 00310 00321 virtual XPath* 00322 createXPath( 00323 const LocatorType* locator, 00324 const XalanDOMChar* str, 00325 const PrefixResolver& resolver) = 0; 00326 00337 virtual XPath* 00338 createXPath( 00339 const LocatorType* locator, 00340 const XalanDOMChar* str, 00341 XalanDOMString::size_type len, 00342 const PrefixResolver& resolver) = 0; 00343 00349 virtual const LocatorType* 00350 getLocatorFromStack() const = 0; 00351 00357 virtual void 00358 pushLocatorOnStack(const LocatorType* locator) = 0; 00359 00363 virtual void 00364 popLocatorStack() = 0; 00365 00371 virtual const XalanDOMString& 00372 getXalanXSLNameSpaceURL() const = 0; 00373 00385 virtual XalanDocument* 00386 parseXML( 00387 const XalanDOMString& urlString, 00388 DocumentHandlerType* docHandler, 00389 XalanDocument* docToRegister) = 0; 00390 00400 virtual bool 00401 isXMLSpaceAttribute( 00402 const XalanDOMChar* theAttributeName, 00403 const Stylesheet& theStylesheet, 00404 const LocatorType* theLocator = 0) = 0; 00405 00415 virtual bool 00416 isXSLUseAttributeSetsAttribute( 00417 const XalanDOMChar* theAttributeName, 00418 const Stylesheet& theStylesheet, 00419 const LocatorType* theLocator = 0) = 0; 00420 00430 virtual bool 00431 isValidQName( 00432 const XalanDOMChar* theName, 00433 const Stylesheet& theStylesheet, 00434 const LocatorType* theLocator = 0) = 0; 00435 00443 virtual eElementToken 00444 getElementToken(const XalanDOMString& name) const = 0; 00445 00451 virtual double 00452 getXSLTVersionSupported() const = 0; 00453 00454 virtual const XalanDOMString& 00455 getPooledString(const XalanDOMString& theString) = 0; 00456 00457 virtual const XalanDOMString& 00458 getPooledString( 00459 const XalanDOMChar* theString, 00460 XalanDOMString::size_type theLength = XalanDOMString::npos) = 0; 00461 00462 virtual XalanDOMString& 00463 getCachedString() = 0; 00464 00465 virtual bool 00466 releaseCachedString(XalanDOMString& theString) = 0; 00467 00475 virtual XalanDOMChar* 00476 allocateXalanDOMCharVector(XalanDOMString::size_type theLength) = 0; 00477 00487 virtual XalanDOMChar* 00488 allocateXalanDOMCharVector( 00489 const XalanDOMChar* theString, 00490 XalanDOMString::size_type theLength = XalanDOMString::npos, 00491 bool fTerminate = true) = 0; 00492 00502 virtual const AVT* 00503 createAVT( 00504 const LocatorType* locator, 00505 const XalanDOMChar* name, 00506 const XalanDOMChar* stringedValue, 00507 const PrefixResolver& resolver) = 0; 00508 00517 virtual const AVTPart* 00518 createAVTPart( 00519 const XalanDOMChar* theString, 00520 XalanDOMString::size_type theLength = XalanDOMString::npos) = 0; 00521 00531 virtual const AVTPart* 00532 createAVTPart( 00533 const LocatorType* locator, 00534 const XalanDOMChar* str, 00535 XalanDOMString::size_type len, 00536 const PrefixResolver& resolver) = 0; 00537 00545 virtual const AVT** 00546 allocateAVTPointerVector(size_type theLength) = 0; 00547 00555 virtual const AVTPart** 00556 allocateAVTPartPointerVector(size_type theLength) = 0; 00557 00567 virtual const XalanQName* 00568 createXalanQName( 00569 const XalanDOMString& qname, 00570 const NamespacesStackType& namespaces, 00571 const LocatorType* locator = 0, 00572 bool fUseDefault = false) = 0; 00573 00583 virtual const XalanQName* 00584 createXalanQName( 00585 const XalanDOMChar* qname, 00586 const NamespacesStackType& namespaces, 00587 const LocatorType* locator = 0, 00588 bool fUseDefault = false) = 0; 00589 00601 virtual const XalanQName** 00602 tokenizeQNames( 00603 size_type& count, 00604 const XalanDOMChar* qnameTokens, 00605 const NamespacesStackType& namespaces, 00606 const LocatorType* locator = 0, 00607 bool fUseDefault = false) = 0; 00608 00622 virtual ElemTemplateElement* 00623 createElement( 00624 int token, 00625 Stylesheet& stylesheetTree, 00626 const AttributeListType& atts, 00627 const LocatorType* locator = 0) = 0; 00628 00642 virtual ElemTemplateElement* 00643 createElement( 00644 int token, 00645 Stylesheet& stylesheetTree, 00646 const XalanDOMChar* name, 00647 const AttributeListType& atts, 00648 const LocatorType* locator = 0) = 0; 00649 00664 virtual ElemTemplateElement* 00665 createElement( 00666 Stylesheet& stylesheetTree, 00667 const XalanDOMChar* chars, 00668 XalanDOMString::size_type length, 00669 bool preserveSpace, 00670 bool disableOutputEscaping, 00671 const LocatorType* locator = 0) = 0; 00672 00687 virtual ElemTemplateElement* 00688 createElement( 00689 Stylesheet& stylesheetTree, 00690 const XalanDOMChar* name, 00691 const AttributeListType& atts, 00692 ExtensionNSHandler& handler, 00693 const LocatorType* locator = 0) = 0; 00694 00695 // These are inherited from XPathConstructionContext... 00696 00697 virtual void 00698 error( 00699 const XalanDOMString& msg, 00700 const XalanNode* sourceNode = 0, 00701 const ElemTemplateElement* styleNode = 0) const = 0; 00702 00703 virtual void 00704 error( 00705 const XalanDOMString& msg, 00706 const XalanNode* sourceNode, 00707 const LocatorType* locator) const = 0; 00708 00709 virtual void 00710 error( 00711 const char* msg, 00712 const XalanNode* sourceNode = 0, 00713 const ElemTemplateElement* styleNode = 0) const = 0; 00714 00715 virtual void 00716 error( 00717 const char* msg, 00718 const XalanNode* sourceNode, 00719 const LocatorType* locator) const = 0; 00720 00721 virtual void 00722 warn( 00723 const XalanDOMString& msg, 00724 const XalanNode* sourceNode = 0, 00725 const ElemTemplateElement* styleNode = 0) const = 0; 00726 00727 virtual void 00728 warn( 00729 const XalanDOMString& msg, 00730 const XalanNode* sourceNode, 00731 const LocatorType* locator) const = 0; 00732 00733 virtual void 00734 warn( 00735 const char* msg, 00736 const XalanNode* sourceNode = 0, 00737 const ElemTemplateElement* styleNode = 0) const = 0; 00738 00739 virtual void 00740 warn( 00741 const char* msg, 00742 const XalanNode* sourceNode, 00743 const LocatorType* locator) const = 0; 00744 00745 virtual void 00746 message( 00747 const XalanDOMString& msg, 00748 const XalanNode* sourceNode = 0, 00749 const ElemTemplateElement* styleNode = 0) const = 0; 00750 00751 virtual void 00752 message( 00753 const XalanDOMString& msg, 00754 const XalanNode* sourceNode, 00755 const LocatorType* locator) const = 0; 00756 00757 virtual void 00758 message( 00759 const char* msg, 00760 const XalanNode* sourceNode = 0, 00761 const ElemTemplateElement* styleNode = 0) const = 0; 00762 00763 virtual void 00764 message( 00765 const char* msg, 00766 const XalanNode* sourceNode, 00767 const LocatorType* locator) const = 0; 00768 }; 00769 00770 00771 00772 XALAN_CPP_NAMESPACE_END 00773 00774 00775 00776 #endif // STYLESHEETCONSTRUCTIONCONTEXT_HEADER_GUARD_1357924680

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.8
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.