source: icXML/icXML-devel/src/xercesc/validators/DTD/DTDEntityDecl.hpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 6.7 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: DTDEntityDecl.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_DTDENTITYDECL_HPP)
23#define XERCESC_INCLUDE_GUARD_DTDENTITYDECL_HPP
24
25#include <xercesc/framework/XMLEntityDecl.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29//
30//  This is a derivative of the abstract version of an entity decl in the
31//  framework directory. We just need to provide implementation of a couple
32//  of methods.
33//
34class VALIDATORS_EXPORT DTDEntityDecl : public XMLEntityDecl
35{
36public :
37    // -----------------------------------------------------------------------
38    //  Constructors and Destructor
39    // -----------------------------------------------------------------------
40    DTDEntityDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
41    DTDEntityDecl
42    (
43        const   XMLCh* const   entName
44        , const bool           fromIntSubset = false
45        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
46    );
47    DTDEntityDecl
48    (
49        const   XMLCh* const   entName
50        , const XMLCh* const   value
51        , const bool           fromIntSubset = false
52        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
53    );
54    DTDEntityDecl
55    (
56        const   XMLCh* const    entName
57        , const XMLCh           value
58        , const bool            fromIntSubset = false
59        , const bool            specialChar = false
60    );
61    ~DTDEntityDecl();
62
63
64    // -----------------------------------------------------------------------
65    //  Implementation of the virtual XMLEntityDecl interface
66    // -----------------------------------------------------------------------
67    virtual bool getDeclaredInIntSubset() const;
68    virtual bool getIsParameter() const;
69    virtual bool getIsSpecialChar() const;
70
71
72    // -----------------------------------------------------------------------
73    //  Setter methods
74    // -----------------------------------------------------------------------
75    void setDeclaredInIntSubset(const bool newValue);
76    void setIsParameter(const bool newValue);
77    void setIsSpecialChar(const bool newValue);
78
79    /***
80     * Support for Serialization/De-serialization
81     ***/
82    DECL_XSERIALIZABLE(DTDEntityDecl)
83
84private :
85    // -----------------------------------------------------------------------
86    //  Unimplemented constructors and operators
87    // -----------------------------------------------------------------------
88    DTDEntityDecl(const DTDEntityDecl&);
89    DTDEntityDecl& operator=(DTDEntityDecl&);
90
91
92    // -----------------------------------------------------------------------
93    //  Private data members
94    //
95    //  fDeclaredInIntSubset
96    //      Indicates whether the entity was declared in the internal subset
97    //      or not. If not, it cannot be referred to from a standalone
98    //      document.
99    //
100    //  fIsParameter
101    //      Indicates whether this is a parameter entity or a general entity.
102    //
103    //  fIsSpecialChar
104    //      This indicates that its one of the special character entities,
105    //      e.g. lt or gt or amp. We need to know this because there are
106    //      places where only a numeric char ref or special char ref is valid
107    //      and all others are ignored or illegal.
108    // -----------------------------------------------------------------------
109    bool    fDeclaredInIntSubset;
110    bool    fIsParameter;
111    bool    fIsSpecialChar;
112};
113
114
115// ---------------------------------------------------------------------------
116//  DTDEntityDecl: Constructors and Destructor
117// ---------------------------------------------------------------------------
118inline DTDEntityDecl::DTDEntityDecl(MemoryManager* const manager) :
119
120    XMLEntityDecl(manager)
121    , fDeclaredInIntSubset(false)
122    , fIsParameter(false)
123    , fIsSpecialChar(false)
124{
125}
126
127inline DTDEntityDecl::DTDEntityDecl( const XMLCh* const   entName
128                                   , const bool           fromIntSubset
129                                   , MemoryManager* const manager) :
130
131    XMLEntityDecl(entName, manager)
132    , fDeclaredInIntSubset(fromIntSubset)
133    , fIsParameter(false)
134    , fIsSpecialChar(false)
135{
136}
137
138inline DTDEntityDecl::DTDEntityDecl( const XMLCh* const   entName
139                                   , const XMLCh* const   value
140                                   , const bool           fromIntSubset
141                                   , MemoryManager* const manager) :
142    XMLEntityDecl(entName, value, manager)
143    , fDeclaredInIntSubset(fromIntSubset)
144    , fIsParameter(false)
145    , fIsSpecialChar(false)
146{
147}
148
149inline DTDEntityDecl::DTDEntityDecl(const   XMLCh* const    entName
150                                    , const XMLCh           value
151                                    , const bool            fromIntSubset
152                                    , const bool            specialChar) :
153    XMLEntityDecl(entName, value, XMLPlatformUtils::fgMemoryManager)
154    , fDeclaredInIntSubset(fromIntSubset)
155    , fIsParameter(false)
156    , fIsSpecialChar(specialChar)
157{
158}
159
160inline DTDEntityDecl::~DTDEntityDecl()
161{
162}
163
164
165// ---------------------------------------------------------------------------
166//  DTDEntityDecl: Getter methods
167// ---------------------------------------------------------------------------
168inline bool DTDEntityDecl::getDeclaredInIntSubset() const
169{
170    return fDeclaredInIntSubset;
171}
172
173inline bool DTDEntityDecl::getIsParameter() const
174{
175    return fIsParameter;
176}
177
178inline bool DTDEntityDecl::getIsSpecialChar() const
179{
180    return fIsSpecialChar;
181}
182
183
184// ---------------------------------------------------------------------------
185//  DTDEntityDecl: Setter methods
186// ---------------------------------------------------------------------------
187inline void DTDEntityDecl::setDeclaredInIntSubset(const bool newValue)
188{
189    fDeclaredInIntSubset = newValue;
190}
191
192inline void DTDEntityDecl::setIsParameter(const bool newValue)
193{
194    fIsParameter = newValue;
195}
196
197inline void DTDEntityDecl::setIsSpecialChar(const bool newValue)
198{
199    fIsSpecialChar = newValue;
200}
201
202XERCES_CPP_NAMESPACE_END
203
204#endif
Note: See TracBrowser for help on using the repository browser.