Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.7

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

StylesheetConstructionContextDefault.hpp

Go to the documentation of this file.
00001 /*
00002  * The Apache Software License, Version 1.1
00003  *
00004  *
00005  * Copyright (c) 1999-2004 The Apache Software Foundation.  All rights 
00006  * reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions
00010  * are met:
00011  *
00012  * 1. Redistributions of source code must retain the above copyright
00013  *    notice, this list of conditions and the following disclaimer. 
00014  *
00015  * 2. Redistributions in binary form must reproduce the above copyright
00016  *    notice, this list of conditions and the following disclaimer in
00017  *    the documentation and/or other materials provided with the
00018  *    distribution.
00019  *
00020  * 3. The end-user documentation included with the redistribution,
00021  *    if any, must include the following acknowledgment:  
00022  *       "This product includes software developed by the
00023  *        Apache Software Foundation (http://www.apache.org/)."
00024  *    Alternately, this acknowledgment may appear in the software itself,
00025  *    if and wherever such third-party acknowledgments normally appear.
00026  *
00027  * 4. The names "Xalan" and "Apache Software Foundation" must
00028  *    not be used to endorse or promote products derived from this
00029  *    software without prior written permission. For written 
00030  *    permission, please contact apache@apache.org.
00031  *
00032  * 5. Products derived from this software may not be called "Apache",
00033  *    nor may "Apache" appear in their name, without prior written
00034  *    permission of the Apache Software Foundation.
00035  *
00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00039  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
00040  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00041  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00042  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
00043  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00044  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00045  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
00046  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00047  * SUCH DAMAGE.
00048  * ====================================================================
00049  *
00050  * This software consists of voluntary contributions made by many
00051  * individuals on behalf of the Apache Software Foundation and was
00052  * originally based on software copyright (c) 1999, International
00053  * Business Machines, Inc., http://www.ibm.com.  For more
00054  * information on the Apache Software Foundation, please see
00055  * <http://www.apache.org/>.
00056  *
00057  * @author <a href="mailto:david_n_bertoni@lotus.com">David N. Bertoni</a>
00058  */
00059 #if !defined(STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680)
00060 #define STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_HEADER_GUARD_1357924680
00061 
00062 
00063 
00064 // Base include file.  Must be first.
00065 #include <xalanc/XSLT/XSLTDefinitions.hpp>
00066 
00067 
00068 
00069 #include <vector>
00070 
00071 
00072 
00073 #include <xalanc/PlatformSupport/ArenaAllocator.hpp>
00074 #include <xalanc/PlatformSupport/XalanArrayAllocator.hpp>
00075 #include <xalanc/PlatformSupport/XalanDOMStringPool.hpp>
00076 
00077 
00078 
00079 #if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION) || (XALAN_ALLINONE_BUILD_DLL)
00080 #include <xalanc/XPath/XPathProcessor.hpp>
00081 #endif
00082 
00083 
00084 
00085 #include <xalanc/Include/XalanAutoPtr.hpp>
00086 
00087 
00088 
00089 #include <xalanc/PlatformSupport/XalanDOMStringCache.hpp>
00090 
00091 
00092 
00093 #include <xalanc/XPath/XalanQNameByReference.hpp>
00094 #include <xalanc/XPath/XalanQNameByValue.hpp>
00095 #include <xalanc/XPath/XalanQNameByValueAllocator.hpp>
00096 
00097 
00098 
00099 // Base class header file...
00100 #include <xalanc/XSLT/StylesheetConstructionContext.hpp>
00101 
00102 
00103 
00104 #include <xalanc/XSLT/AVT.hpp>
00105 #include <xalanc/XSLT/XalanAVTAllocator.hpp>
00106 #include <xalanc/XSLT/AVTPartSimple.hpp>
00107 #include <xalanc/XSLT/XalanAVTPartSimpleAllocator.hpp>
00108 #include <xalanc/XSLT/AVTPartXPath.hpp>
00109 #include <xalanc/XSLT/XalanAVTPartXPathAllocator.hpp>
00110 #include <xalanc/XSLT/XalanElemApplyTemplatesAllocator.hpp>
00111 #include <xalanc/XSLT/XalanElemAttributeAllocator.hpp>
00112 #include <xalanc/XSLT/XalanElemAttributeSetAllocator.hpp>
00113 #include <xalanc/XSLT/XalanElemCallTemplateAllocator.hpp>
00114 #include <xalanc/XSLT/XalanElemElementAllocator.hpp>
00115 #include <xalanc/XSLT/XalanElemLiteralResultAllocator.hpp>
00116 #include <xalanc/XSLT/XalanElemTemplateAllocator.hpp>
00117 #include <xalanc/XSLT/XalanElemTextLiteralAllocator.hpp>
00118 #include <xalanc/XSLT/XalanElemValueOfAllocator.hpp>
00119 #include <xalanc/XSLT/XalanElemVariableAllocator.hpp>
00120 
00121 
00122 
00123 XALAN_CPP_NAMESPACE_BEGIN
00124 
00125 
00126 
00127 class XPathEnvSupport;
00128 class XPathFactory;
00129 class XPathProcessor;
00130 class XSLTEngineImpl;
00131 
00132 
00133 
00140 class XALAN_XSLT_EXPORT StylesheetConstructionContextDefault : public StylesheetConstructionContext
00141 {
00142 public:
00143 
00144     typedef XalanArrayAllocator<XalanDOMChar>           XalanDOMCharVectorAllocatorType;
00145     typedef XalanArrayAllocator<const void*>            PointerVectorAllocatorType;
00146     typedef XalanDOMCharVectorAllocatorType::size_type  VectorAllocatorSizeType;
00147 
00148     // Default size for vector allocation.
00149     enum {
00150             eDefaultXalanDOMCharVectorBlockSize = 1024,
00151             eDefaultAVTBlockSize = 128,
00152             eDefaultAVTPartSimpleBlockSize = 128,
00153             eDefaultAVTPartXPathBlockSize = 128,
00154             eDefaultXalanQNameByValueBlockSize = 32,
00155             eDefaultPointerVectorBlockSize = 512,
00156             eDefaultElemApplyTemplatesBlockSize = 10,
00157             eDefaultElemAttributeBlockSize = 10,
00158             eDefaultElemAttributeSetBlockSize = 10,
00159             eDefaultElemCallTemplateBlockSize = 10,
00160             eDefaultElemElementBlockSize = 10,
00161             eDefaultElemLiteralResultBlockSize = 20,
00162             eDefaultElemTemplateBlockSize = 10,
00163             eDefaultElemTextLiteralBlockSize = 20,
00164             eDefaultElemValueOfBlockSize = 10,
00165             eDefaultElemVariableBlockSize = 10 };
00166 
00167     /*
00168      * Construct an instance.  If the stylesheet(s) constructed is/are meant to be reused (a.k.a. "compiled"),
00169      * the XObjectFactory and XPathFactory instance must exist for the lifetime of the construction context
00170      * and, therefore, for the lifetime of the stylesheet(s).  Otherwise, XObject and XPath instance will be
00171      * destroyed when the corresponding factories are destryed, leaving pointers to destroyed objects in the.
00172      * stylesheet(s).
00173      *
00174      * @param processor a reference to an XSLTEngineImpl instance.  Used for error reporting.
00175      * @param xpathFactory a reference to an XPathFactory instance.  See comments above for important details.
00176      * @param theXalanDOMCharVectorAllocatorBlockSize The block size to use for allocating vectors of XalanDOMChars
00177      * @param theAVTAllocatorBlockSize The block size to use for allocating AVT instances.
00178      * @param theAVTPartSimpleAllocatorBlockSize The block size to use for allocating AVTPartSimple instances.
00179      * @param theAVTPartXPathAllocatorBlockSize The block size to use for allocating AVTPartXPath instances.
00180      * @param theXalanQNameByValueAllocatorBlockSize The block size to use for allocating XalanQNameByValue instances.
00181      * @param thePointerVectorAllocatorBlockSize The block size to use for allocating vectors of pointers.
00182      */
00183     StylesheetConstructionContextDefault(
00184             XSLTEngineImpl&                         processor,
00185             XPathFactory&                           xpathFactory,
00186             VectorAllocatorSizeType                 theXalanDOMCharVectorAllocatorBlockSize = eDefaultXalanDOMCharVectorBlockSize,
00187             XalanAVTAllocator::size_type            theAVTAllocatorBlockSize = eDefaultAVTBlockSize,
00188             XalanAVTPartSimpleAllocator::size_type  theAVTPartSimpleAllocatorBlockSize = eDefaultAVTPartSimpleBlockSize,
00189             XalanAVTPartXPathAllocator::size_type   theAVTPartXPathAllocatorBlockSize = eDefaultAVTPartXPathBlockSize,
00190             XalanQNameByValueAllocator::size_type   theXalanQNameByValueAllocatorBlockSize = eDefaultXalanQNameByValueBlockSize,
00191             VectorAllocatorSizeType                 thePointerVectorAllocatorBlockSize = eDefaultPointerVectorBlockSize);
00192 
00193     virtual
00194     ~StylesheetConstructionContextDefault();
00195 
00196 
00197     virtual void
00198     error(
00199             const XalanDOMString&       msg,
00200             const XalanNode*            sourceNode = 0,
00201             const ElemTemplateElement*  styleNode = 0) const;
00202 
00203     virtual void
00204     error(
00205             const XalanDOMString&   msg,
00206             const XalanNode*        sourceNode,
00207             const LocatorType*      locator) const;
00208 
00209     virtual void
00210     error(
00211             const char*                 msg,
00212             const XalanNode*            sourceNode = 0,
00213             const ElemTemplateElement*  styleNode = 0) const;
00214 
00215     virtual void
00216     error(
00217             const char*         msg,
00218             const XalanNode*    sourceNode,
00219             const LocatorType*  locator) const;
00220 
00221     virtual void
00222     warn(
00223             const XalanDOMString&       msg,
00224             const XalanNode*            sourceNode = 0,
00225             const ElemTemplateElement*  styleNode = 0) const;
00226 
00227     virtual void
00228     warn(
00229             const XalanDOMString&   msg,
00230             const XalanNode*        sourceNode,
00231             const LocatorType*      locator) const;
00232 
00233     virtual void
00234     warn(
00235             const char*                 msg,
00236             const XalanNode*            sourceNode = 0,
00237             const ElemTemplateElement*  styleNode = 0) const;
00238 
00239     virtual void
00240     warn(
00241             const char*         msg,
00242             const XalanNode*    sourceNode,
00243             const LocatorType*  locator) const;
00244 
00245     virtual void
00246     message(
00247             const XalanDOMString&       msg,
00248             const XalanNode*            sourceNode = 0,
00249             const ElemTemplateElement*  styleNode = 0) const;
00250 
00251     virtual void
00252     message(
00253             const XalanDOMString&   msg,
00254             const XalanNode*        sourceNode,
00255             const LocatorType*      locator) const;
00256 
00257     virtual void
00258     message(
00259             const char*                 msg,
00260             const XalanNode*            sourceNode = 0,
00261             const ElemTemplateElement*  styleNode = 0) const;
00262 
00263     virtual void
00264     message(
00265             const char*         msg,
00266             const XalanNode*    sourceNode,
00267             const LocatorType*  locator) const;
00268 
00269     // These interfaces are inherited from StylesheetConstructionContext...
00270 
00271     virtual void
00272     reset();
00273 
00274     virtual StylesheetRoot*
00275     create(const XalanDOMString&    theBaseIdentifier);
00276 
00277     virtual StylesheetRoot*
00278     create(const XSLTInputSource&   theInputSource);
00279 
00280     virtual Stylesheet*
00281     create(
00282             StylesheetRoot&         theStylesheetRoot,
00283             const XalanDOMString&   theBaseIdentifier);
00284 
00285     virtual void
00286     destroy(StylesheetRoot*     theStylesheetRoot);
00287 
00288     virtual URLAutoPtrType
00289     getURLFromString(const XalanDOMString&  urlString);
00290 
00291     virtual XalanDOMString
00292     getURLStringFromString(const XalanDOMString&    urlString);
00293 
00294     virtual URLAutoPtrType
00295     getURLFromString(
00296             const XalanDOMString&   urlString,
00297             const XalanDOMString&   base);
00298 
00299     virtual XalanDOMString
00300     getURLStringFromString(
00301             const XalanDOMString&   urlString,
00302             const XalanDOMString&   base);
00303 
00304     virtual const XalanDOMString&
00305     getXSLTNamespaceURI() const;
00306 
00307     virtual XPath*
00308     createMatchPattern(
00309             const LocatorType*      locator,
00310             const XalanDOMString&   str,
00311             const PrefixResolver&   resolver);
00312 
00313     virtual XPath*
00314     createMatchPattern(
00315             const LocatorType*      locator,
00316             const XalanDOMChar*     str,
00317             const PrefixResolver&   resolver);
00318 
00319     virtual XPath*
00320     createXPath(
00321             const LocatorType*      locator,
00322             const XalanDOMString&   str,
00323             const PrefixResolver&   resolver);
00324 
00325     virtual XPath*
00326     createXPath(
00327             const LocatorType*          locator,
00328             const XalanDOMChar*         str,
00329             XalanDOMString::size_type   len,
00330             const PrefixResolver&       resolver);
00331 
00332     virtual XPath*
00333     createXPath(
00334             const LocatorType*      locator,
00335             const XalanDOMChar*     str,
00336             const PrefixResolver&   resolver);
00337 
00338     virtual const LocatorType*
00339     getLocatorFromStack() const;
00340 
00341     virtual void
00342     pushLocatorOnStack(const LocatorType*   locator);
00343 
00344     virtual void
00345     popLocatorStack();
00346 
00347     virtual const XalanDOMString&
00348     getXalanXSLNameSpaceURL() const;
00349 
00350     virtual XalanDocument*
00351     parseXML(
00352             const XalanDOMString&   urlString,
00353             DocumentHandlerType*    docHandler, 
00354             XalanDocument*          docToRegister);
00355 
00356     virtual bool
00357     isXMLSpaceAttribute(
00358             const XalanDOMChar*     theAttributeName,
00359             const Stylesheet&       theStylesheet,
00360             const LocatorType*      theLocator = 0);
00361 
00362     virtual bool
00363     isXSLUseAttributeSetsAttribute(
00364             const XalanDOMChar*     theAttributeName,
00365             const Stylesheet&       theStylesheet,
00366             const LocatorType*      theLocator = 0);
00367 
00368     virtual bool
00369     isValidQName(
00370             const XalanDOMChar*     theName,
00371             const Stylesheet&       theStylesheet,
00372             const LocatorType*      theLocator = 0);
00373 
00374     virtual eElementToken
00375     getElementToken(const XalanDOMString&   name) const;
00376 
00377     virtual double
00378     getXSLTVersionSupported() const;
00379 
00380     virtual const XalanDOMString&
00381     getPooledString(const XalanDOMString&   theString);
00382 
00383     virtual const XalanDOMString&
00384     getPooledString(
00385             const XalanDOMChar*         theString,
00386             XalanDOMString::size_type   theLength = XalanDOMString::npos);
00387 
00388     virtual XalanDOMString&
00389     getCachedString();
00390 
00391     virtual bool
00392     releaseCachedString(XalanDOMString&     theString);
00393 
00394     virtual XalanDOMChar*
00395     allocateXalanDOMCharVector(XalanDOMString::size_type    theLength);
00396 
00397     virtual XalanDOMChar*
00398     allocateXalanDOMCharVector(
00399             const XalanDOMChar*         theString,
00400             XalanDOMString::size_type   theLength = XalanDOMString::npos,
00401             bool                        fTerminate = true);
00402 
00403     virtual const AVT*
00404     createAVT(
00405             const LocatorType*      locator,
00406             const XalanDOMChar*     name,
00407             const XalanDOMChar*     stringedValue,
00408             const PrefixResolver&   resolver);
00409 
00410     virtual const AVTPart*
00411     createAVTPart(
00412             const XalanDOMChar*         theString,
00413             XalanDOMString::size_type   theLength = XalanDOMString::npos);
00414 
00415     virtual const AVTPart*
00416     createAVTPart(
00417             const LocatorType*          locator,
00418             const XalanDOMChar*         str,
00419             XalanDOMString::size_type   len,
00420             const PrefixResolver&       resolver);
00421 
00422     virtual const AVT**
00423     allocateAVTPointerVector(size_type  theLength);
00424 
00425     virtual const AVTPart**
00426     allocateAVTPartPointerVector(size_type  theLength);
00427 
00428     virtual const XalanQName*
00429     createXalanQName(
00430             const XalanDOMString&       qname,
00431             const NamespacesStackType&  namespaces,
00432             const LocatorType*          locator = 0,
00433             bool                        fUseDefault = false);
00434 
00435     virtual const XalanQName*
00436     createXalanQName(
00437             const XalanDOMChar*         qname,
00438             const NamespacesStackType&  namespaces,
00439             const LocatorType*          locator = 0,
00440             bool                        fUseDefault = false);
00441 
00442     virtual const XalanQName**
00443     tokenizeQNames(
00444             size_type&                  count,
00445             const XalanDOMChar*         qnameTokens,
00446             const NamespacesStackType&  namespaces,
00447             const LocatorType*          locator = 0,
00448             bool                        fUseDefault = false);
00449 
00450     virtual ElemTemplateElement*
00451     createElement(
00452             int                         token,
00453             Stylesheet&                 stylesheetTree,
00454             const AttributeListType&    atts,
00455             const LocatorType*          locator = 0);
00456 
00457     virtual ElemTemplateElement*
00458     createElement(
00459             int                         token,
00460             Stylesheet&                 stylesheetTree,
00461             const XalanDOMChar*         name,
00462             const AttributeListType&    atts,
00463             const LocatorType*          locator = 0);
00464 
00465     virtual ElemTemplateElement*
00466     createElement(
00467             Stylesheet&                 stylesheetTree,
00468             const XalanDOMChar*         chars,
00469             XalanDOMString::size_type   length,
00470             bool                        preserveSpace,
00471             bool                        disableOutputEscaping,
00472             const LocatorType*          locator = 0);
00473 
00474     virtual ElemTemplateElement*
00475     createElement(
00476             Stylesheet&                 stylesheetTree,
00477             const XalanDOMChar*         name,
00478             const AttributeListType&    atts,
00479             ExtensionNSHandler&         handler,
00480             const LocatorType*          locator = 0);
00481 
00482     static eElementToken
00483     getElementNameToken(const XalanDOMString&   name);
00484 
00485 #if defined(XALAN_NO_STD_NAMESPACE)
00486     typedef vector<StylesheetRoot*>         StylesheetVectorType;
00487     typedef vector<ElemTemplateElement*>    ElemTemplateElementVectorType;
00488 #else
00489     typedef std::vector<StylesheetRoot*>        StylesheetVectorType;
00490     typedef std::vector<ElemTemplateElement*>   ElemTemplateElementVectorType;
00491 #endif
00492 
00493 private:
00494 
00495     const AVT**
00496     doAllocateAVTPointerVector(size_type    theSize)
00497     {
00498         assert(sizeof(AVT**) == sizeof(PointerVectorAllocatorType::value_type));
00499 
00500 #if defined(XALAN_OLD_STYLE_CASTS)
00501         return (const AVT**)m_pointerVectorAllocator.allocate(theSize);
00502 #else
00503         return reinterpret_cast<const AVT**>(m_pointerVectorAllocator.allocate(theSize));
00504 #endif
00505     }
00506 
00507     const AVTPart**
00508     doAllocateAVTPartPointerVector(size_type    theSize)
00509     {
00510         assert(sizeof(AVTPart**) == sizeof(PointerVectorAllocatorType::value_type));
00511 
00512 #if defined(XALAN_OLD_STYLE_CASTS)
00513         return (const AVTPart**)m_pointerVectorAllocator.allocate(theSize);
00514 #else
00515         return reinterpret_cast<const AVTPart**>(m_pointerVectorAllocator.allocate(theSize));
00516 #endif
00517     }
00518 
00519     const XalanQName**
00520     doAllocateXalanQNamePointerVector(size_type theSize)
00521     {
00522         assert(sizeof(XalanQName**) == sizeof(PointerVectorAllocatorType::value_type));
00523 
00524 #if defined(XALAN_OLD_STYLE_CASTS)
00525         return (const XalanQName**)m_pointerVectorAllocator.allocate(theSize);
00526 #else
00527         return reinterpret_cast<const XalanQName**>(m_pointerVectorAllocator.allocate(theSize));
00528 #endif
00529     }
00530 
00531 
00532     XSLTEngineImpl&                         m_processor;
00533 
00534     XPathFactory&                           m_xpathFactory;
00535 
00536     typedef XalanAutoPtr<XPathProcessor>    XPathProcessAutoPtr;
00537 
00538     XPathProcessAutoPtr                     m_xpathProcessor;
00539 
00540     StylesheetVectorType                    m_stylesheets;
00541 
00542     XalanDOMStringPool                      m_stringPool;
00543 
00544     XalanDOMCharVectorAllocatorType         m_xalanDOMCharVectorAllocator;
00545 
00546     mutable XalanDOMString                  m_tempBuffer;
00547 
00548     XalanQNameByValue                       m_scratchQName;
00549 
00550     XalanDOMStringCache                     m_stringCache;
00551 
00552     XalanAVTAllocator                       m_avtAllocator;
00553 
00554     XalanAVTPartSimpleAllocator             m_avtPartSimpleAllocator;
00555 
00556     XalanAVTPartXPathAllocator              m_avtPartXPathAllocator;
00557 
00558     XalanQNameByValueAllocator              m_xalanQNameByValueAllocator;
00559 
00560     const XalanQNameByReference             m_useAttributeSetsQName;
00561 
00562     PointerVectorAllocatorType              m_pointerVectorAllocator;
00563 
00564     ElemTemplateElementVectorType           m_allocatedElements;
00565 
00566     XalanElemApplyTemplatesAllocator        m_elemApplyTemplatesAllocator;
00567 
00568     XalanElemAttributeAllocator             m_elemAttributeAllocator;
00569 
00570     XalanElemAttributeSetAllocator          m_elemAttributeSetAllocator;
00571 
00572     XalanElemCallTemplateAllocator          m_elemCallTemplateAllocator;
00573 
00574     XalanElemElementAllocator               m_elemElementAllocator;
00575 
00576     XalanElemLiteralResultAllocator         m_elemLiteralResultAllocator;
00577 
00578     XalanElemTemplateAllocator              m_elemTemplateAllocator;
00579 
00580     XalanElemTextLiteralAllocator           m_elemTextLiteralAllocator;
00581 
00582     XalanElemValueOfAllocator               m_elemValueOfAllocator;
00583 
00584     XalanElemVariableAllocator              m_elemVariableAllocator;
00585 
00586     const XalanQNameByReference             m_spaceAttrQName;
00587 
00588     // Static strings for stylesheet compilation...
00589 
00590     // The string "if"
00591     static const XalanDOMChar   s_if[];
00592 
00593     // The string "key"
00594     static const XalanDOMChar   s_key[];
00595 
00596     // The string "copy"
00597     static const XalanDOMChar   s_copy[];
00598 
00599     // The string "sort"
00600     static const XalanDOMChar   s_sort[];
00601 
00602     // The string "text"
00603     static const XalanDOMChar   s_text[];
00604 
00605     // The string "when"
00606     static const XalanDOMChar   s_when[];
00607 
00608     // The string "empty"
00609     static const XalanDOMChar   s_empty[];
00610 
00611     // The string "param"
00612     static const XalanDOMChar   s_param[];
00613 
00614     // The string "choose"
00615     static const XalanDOMChar   s_choose[];
00616 
00617     // The string "import"
00618     static const XalanDOMChar   s_import[];
00619 
00620     // The string "number"
00621     static const XalanDOMChar   s_number[];
00622 
00623     // The string "output"
00624     static const XalanDOMChar   s_output[];
00625 
00626     // The string "comment"
00627     static const XalanDOMChar   s_comment[];
00628 
00629     // The string "copy-of"
00630     static const XalanDOMChar   s_copyOf[];
00631 
00632     // The string "element"
00633     static const XalanDOMChar   s_element[];
00634 
00635     // The string "include"
00636     static const XalanDOMChar   s_include[];
00637 
00638     // The string "message"
00639     static const XalanDOMChar   s_message[];
00640 
00641     // The string "fallback"
00642     static const XalanDOMChar   s_fallback[];
00643 
00644     // The string "for-each"
00645     static const XalanDOMChar   s_forEach[];
00646 
00647     // The string "template"
00648     static const XalanDOMChar   s_template[];
00649 
00650     // The string "value-of"
00651     static const XalanDOMChar   s_valueOf[];
00652 
00653     // The string "variable"
00654     static const XalanDOMChar   s_variable[];
00655 
00656     // The string "attribute"
00657     static const XalanDOMChar   s_attribute[];
00658 
00659     // The string "otherwise"
00660     static const XalanDOMChar   s_otherwise[];
00661 
00662     // The string "transform"
00663     static const XalanDOMChar   s_transform[];
00664 
00665     // The string "stylesheet"
00666     static const XalanDOMChar   s_stylesheet[];
00667 
00668     // The string "with-param"
00669     static const XalanDOMChar   s_withParam[];
00670 
00671     // The string "strip-space"
00672     static const XalanDOMChar   s_stripSpace[];
00673 
00674     // The string "apply-imports"
00675     static const XalanDOMChar   s_applyImports[];
00676 
00677     // The string "attribute-set"
00678     static const XalanDOMChar   s_attributeSet[];
00679 
00680     // The string "call-template"
00681     static const XalanDOMChar   s_callTemplate[];
00682 
00683     // The string "decimal-format"
00684     static const XalanDOMChar   s_decimalFormat[];
00685 
00686     // The string "preserve-space"
00687     static const XalanDOMChar   s_preserveSpace[];
00688 
00689     // The string "apply-templates"
00690     static const XalanDOMChar   s_applyTemplates[];
00691 
00692     // The string "namespace-alias"
00693     static const XalanDOMChar   s_namespaceAlias[];
00694 
00695     // The string "processing-instruction"
00696     static const XalanDOMChar   s_processingInstruction[];
00697 
00698     // A struct for an array that maps stylesheet element names
00699     // to int tokens.
00700     struct ElementTokenTableEntry
00701     {
00702         const XalanDOMChar*     m_name;
00703 
00704         eElementToken           m_token;
00705     };
00706 
00707     static const ElementTokenTableEntry     s_elementTokenTable[];
00708 
00709     static const unsigned int               s_elementTokenTableSize;
00710 
00711     static const ElementTokenTableEntry&    s_elementTokenTableLast;
00712 
00713     static const ElementTokenTableEntry&    s_elementTokenTableDummy;
00714 };
00715 
00716 
00717 
00718 XALAN_CPP_NAMESPACE_END
00719 
00720 
00721 
00722 #endif  // STYLESHEETCONSTRUCTIONCONTEXTDEFAULT_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.7
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.