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(XALAN_EXTENSIONNSHANDLER_HEADER_GUARD) 00017 #define XALAN_EXTENSIONNSHANDLER_HEADER_GUARD 00018 00019 00020 // Base include file. Must be first. 00021 #include "XSLTDefinitions.hpp" 00022 00023 00024 00025 // Base class 00026 #include "ExtensionFunctionHandler.hpp" 00027 00028 00029 00030 #include <xalanc/Include/XalanSet.hpp> 00031 00032 00033 00034 #include <xalanc/XalanDOM/XalanDOMString.hpp> 00035 00036 00037 00038 #include <xalanc/PlatformSupport/DOMStringHelper.hpp> 00039 00040 00041 00042 XALAN_CPP_NAMESPACE_BEGIN 00043 00044 00045 00046 class Stylesheet; 00047 class StylesheetExecutionContext; 00048 class XalanElement; 00049 class XalanNode; 00050 class XalanQName; 00051 00052 00053 00054 class XALAN_XSLT_EXPORT ExtensionNSHandler : public ExtensionFunctionHandler 00055 { 00056 public: 00063 ExtensionNSHandler(const XalanDOMString& namespaceUri, 00064 MemoryManagerType& theManager); 00065 00066 static ExtensionNSHandler* 00067 create(const XalanDOMString& namespaceUri, 00068 MemoryManagerType& theManager); 00082 ExtensionNSHandler( 00083 MemoryManagerType& theManager, 00084 const XalanDOMString& namespaceUri, 00085 const XalanDOMString& elemNames, 00086 const XalanDOMString& funcNames, 00087 const XalanDOMString& lang, 00088 const XalanDOMString& srcURL, 00089 const XalanDOMString& src); 00090 00098 virtual void 00099 setFunctions(const XalanDOMString& funcNames); 00100 00111 virtual void 00112 setScript( 00113 const XalanDOMString& lang, 00114 const XalanDOMString& srcURL, 00115 const XalanDOMString& scriptSrc); 00116 00123 void 00124 setElements(const XalanDOMString& elemNames); 00125 00132 bool 00133 isElementAvailable (const XalanDOMString& element) const; 00134 00153 void 00154 processElement ( 00155 StylesheetExecutionContext& executionContext, 00156 const XalanDOMString& localPart, 00157 const XalanElement* element, 00158 Stylesheet& stylesheetTree, 00159 const XalanNode* sourceTree, 00160 const XalanNode* sourceNode, 00161 const XalanQName& mode); 00162 00163 protected: 00164 00171 virtual void 00172 startupComponent(); 00173 00174 00175 private: 00176 00177 typedef XalanSet<XalanDOMString> ExtensionSetType; 00178 00179 // Extension elements of this namespace 00180 ExtensionSetType m_elements; 00181 00182 // True when info from the component description has been loaded. This gets 00183 // set as soon as any of the info has been specified. If this is false, 00184 // when processElement or processFunction is called it will use the 00185 // namespace URI as a URL and try to load that location as the component 00186 // description 00187 bool m_componentDescLoaded; 00188 00193 void 00194 loadComponentDescription(); 00195 00207 static XalanDOMString& 00208 getScriptString(const XalanElement& elem, XalanDOMString& theResult); 00209 }; 00210 00211 00212 00213 XALAN_CPP_NAMESPACE_END 00214 00215 00216 00217 #endif // XALAN_EXTENSIONNSHANDLER_HEADER_GUARD
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.9 |
|