source: NonGTP/Xerces/xercesc/dom/impl/DOMConfigurationImpl.hpp @ 188

Revision 188, 7.8 KB checked in by mattausch, 19 years ago (diff)

added xercesc to support

Line 
1/*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 2003 The Apache Software Foundation.  All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in
16 *    the documentation and/or other materials provided with the
17 *    distribution.
18 *
19 * 3. The end-user documentation included with the redistribution,
20 *    if any, must include the following acknowledgment:
21 *       "This product includes software developed by the
22 *        Apache Software Foundation (http://www.apache.org/)."
23 *    Alternately, this acknowledgment may appear in the software itself,
24 *    if and wherever such third-party acknowledgments normally appear.
25 *
26 * 4. The names "Xerces" and "Apache Software Foundation" must
27 *    not be used to endorse or promote products derived from this
28 *    software without prior written permission. For written
29 *    permission, please contact apache\@apache.org.
30 *
31 * 5. Products derived from this software may not be called "Apache",
32 *    nor may "Apache" appear in their name, without prior written
33 *    permission of the Apache Software Foundation.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation, and was
51 * originally based on software copyright (c) 2001, International
52 * Business Machines, Inc., http://www.ibm.com .  For more information
53 * on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57//
58//  This file is part of the internal implementation of the C++ XML DOM.
59//  It should NOT be included or used directly by application programs.
60//
61//  Applications should include the file <xercesc/dom/DOM.hpp> for the entire
62//  DOM API, or xercesc/dom/DOM*.hpp for individual DOM classes, where the class
63//  name is substituded for the *.
64//
65
66
67
68#if !defined(DOMCONFIGURATIONIMPL_HPP)
69#define DOMCONFIGURATIONIMPL_HPP
70
71//------------------------------------------------------------------------------------
72//  Includes
73//------------------------------------------------------------------------------------
74#include <xercesc/dom/DOMConfiguration.hpp>
75#include <xercesc/dom/DOMErrorHandler.hpp>
76#include <xercesc/util/XMLString.hpp>
77
78XERCES_CPP_NAMESPACE_BEGIN
79
80class DOMDocumentImpl;
81
82class CDOM_EXPORT DOMConfigurationImpl : public DOMConfiguration
83{
84private:
85    //unimplemented
86    DOMConfigurationImpl(const DOMConfiguration &);
87    DOMConfigurationImpl & operator = (const DOMConfiguration &);
88
89
90public:
91
92    //-----------------------------------------------------------------------------------
93    //  Constructor
94    //-----------------------------------------------------------------------------------
95    DOMConfigurationImpl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
96    ~DOMConfigurationImpl();
97   
98    enum DOMConfigurationFeature {
99        FEATURE_CANONICAL_FORM                = 0x0001,
100        FEATURE_CDATA_SECTIONS                = 0x0002,
101        FEATURE_COMMENTS                      = 0x0004,
102        FEATURE_DATATYPE_NORMALIZATION        = 0x0008,
103        FEATURE_DISCARD_DEFAULT_CONTENT       = 0x0010,
104        FEATURE_ENTITIES                      = 0x0020, 
105        FEATURE_INFOSET                       = 0x0040,
106        FEATURE_NAMESPACES                    = 0x0080,
107        FEATURE_NAMESPACE_DECLARATIONS        = 0x0100,
108        FEATURE_NORMALIZE_CHARACTERS          = 0x0200,
109        FEATURE_SPLIT_CDATA_SECTIONS          = 0x0400,
110        FEATURE_VALIDATE                      = 0x0800,
111        FEATURE_VALIDATE_IF_SCHEMA            = 0x1000,
112        FEATURE_WHITESPACE_IN_ELEMENT_CONTENT = 0x2000
113    };
114
115    unsigned short featureValues;
116
117    // -----------------------------------------------------------------------
118    //  Setter methods
119    // -----------------------------------------------------------------------
120
121    void setParameter(const XMLCh* name, const void* value);
122
123    // -----------------------------------------------------------------------
124    //  Getter methods
125    // -----------------------------------------------------------------------
126   
127    const void* getParameter(const XMLCh* name) const;
128
129                                       
130    // -----------------------------------------------------------------------
131    //  Query methods
132    // -----------------------------------------------------------------------
133
134    bool canSetParameter(const XMLCh* name, const void* value) const;
135
136
137    // ---------------------------------------------------------------------------
138    // Impl specific methods
139    // ---------------------------------------------------------------------------
140   
141    /* specific get and set methods for non-boolean parameters
142     * */
143
144    DOMErrorHandler* getErrorHandler() const;
145
146    const XMLCh* getSchemaType() const;
147
148    const XMLCh* getSchemaLocation() const;
149
150    void setErrorHandler(DOMErrorHandler *erHandler);
151
152    void setSchemaType(const XMLCh* st);
153
154    void setSchemaLocation(const XMLCh* sl);
155   
156    // --------------------------------------
157    // static consts names
158    // --------------------------------------
159    static const XMLCh fgCANONICAL_FORM[];
160    static const XMLCh fgCDATA_SECTIONS[];
161    static const XMLCh fgCOMMENTS[];
162    static const XMLCh fgDATATYPE_NORMALIZATION[];
163    static const XMLCh fgDISCARD_DEFAULT_CONTENT[];
164    static const XMLCh fgENTITIES[];
165    static const XMLCh fgINFOSET[];
166    static const XMLCh fgNAMESPACES[];
167    static const XMLCh fgNAMESPACE_DECLARATIONS[];
168    static const XMLCh fgNORMALIZE_CHARACTERS[];
169    static const XMLCh fgSPLIT_CDATA_SECTIONS[];
170    static const XMLCh fgVALIDATE[];
171    static const XMLCh fgVALIDATE_IF_SCHEMA[];
172    static const XMLCh fgWHITESPACE_IN_ELEMENT_CONTENT[];
173
174    static const XMLCh fgERROR_HANDLER[];
175    static const XMLCh fgSCHEMA_TYPE[];
176    static const XMLCh fgSCHEMA_LOCATION[];
177
178    // The default values for the boolean parameters
179    // from CANONICAL_FORM to WHITESPACE_IN_ELEMENT_CONTENT
180    // 10010110010110 = 0x2596
181    static const unsigned short fDEFAULT_VALUES;
182   
183
184private:
185    // implements a simple map between the name and its enum value
186    DOMConfigurationFeature getFeatureFlag(const XMLCh* name) const;
187
188    // the error handler
189    DOMErrorHandler* fErrorHandler;
190   
191    // the schema type
192    const XMLCh* fSchemaType;
193   
194    // the schema location
195    const XMLCh* fSchemaLocation;
196
197    static const bool fFalse;
198    static const bool fTrue;
199   
200    MemoryManager* fMemoryManager;
201};
202
203XERCES_CPP_NAMESPACE_END
204
205#endif
206
207/**
208 * End of file DOMConfigurationImpl.hpp
209 */
Note: See TracBrowser for help on using the repository browser.