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 <set> 00031 00032 00033 00034 #include <xalanc/XalanDOM/XalanDOMString.hpp> 00035 00036 00037 00038 XALAN_CPP_NAMESPACE_BEGIN 00039 00040 00041 00042 class Stylesheet; 00043 class StylesheetExecutionContext; 00044 class XalanElement; 00045 class XalanNode; 00046 class XalanQName; 00047 00048 00049 00050 class XALAN_XSLT_EXPORT ExtensionNSHandler : public ExtensionFunctionHandler 00051 { 00052 public: 00059 ExtensionNSHandler(const XalanDOMString& namespaceUri); 00060 00074 ExtensionNSHandler( 00075 const XalanDOMString& namespaceUri, 00076 const XalanDOMString& elemNames, 00077 const XalanDOMString& funcNames, 00078 const XalanDOMString& lang, 00079 const XalanDOMString& srcURL, 00080 const XalanDOMString& src); 00081 00089 virtual void 00090 setFunctions(const XalanDOMString& funcNames); 00091 00102 virtual void 00103 setScript( 00104 const XalanDOMString& lang, 00105 const XalanDOMString& srcURL, 00106 const XalanDOMString& scriptSrc); 00107 00114 void 00115 setElements(const XalanDOMString& elemNames); 00116 00123 bool 00124 isElementAvailable (const XalanDOMString& element) const; 00125 00144 void 00145 processElement ( 00146 StylesheetExecutionContext& executionContext, 00147 const XalanDOMString& localPart, 00148 const XalanElement* element, 00149 Stylesheet& stylesheetTree, 00150 const XalanNode* sourceTree, 00151 const XalanNode* sourceNode, 00152 const XalanQName& mode); 00153 00154 protected: 00155 00162 virtual void 00163 startupComponent(); 00164 00165 00166 private: 00167 00168 #if defined(XALAN_NO_STD_NAMESPACE) 00169 typedef set<XalanDOMString, 00170 less<XalanDOMString> > ExtensionSetType; 00171 #else 00172 typedef std::set<XalanDOMString> ExtensionSetType; 00173 #endif 00174 00175 // Extension elements of this namespace 00176 ExtensionSetType m_elements; 00177 00178 // True when info from the component description has been loaded. This gets 00179 // set as soon as any of the info has been specified. If this is false, 00180 // when processElement or processFunction is called it will use the 00181 // namespace URI as a URL and try to load that location as the component 00182 // description 00183 bool m_componentDescLoaded; 00184 00189 void 00190 loadComponentDescription(); 00191 00203 static XalanDOMString 00204 getScriptString(const XalanElement& elem); 00205 }; 00206 00207 00208 00209 XALAN_CPP_NAMESPACE_END 00210 00211 00212 00213 #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.8 |
|