Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.8

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

ExtensionNSHandler.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(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

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.