source: icXML/icXML-devel/src/icxercesc/validators/DTD/DTDValidator.hpp @ 2720

Last change on this file since 2720 was 2720, checked in by cameron, 7 years ago

Initial check-in of icXML 0.8 source files

File size: 5.1 KB
RevLine 
[2720]1/*
2 * Unless required by applicable law or agreed to in writing, software
3 * distributed under the License is distributed on an "AS IS" BASIS,
4 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5 * See the License for the specific language governing permissions and
6 * limitations under the License.
7 */
8
9/*
10 * $Id: DTDValidator.hpp 676911 2008-07-15 13:27:32Z amassari $
11 */
12
13#if !defined(XERCESC_INCLUDE_GUARD_DTDVALIDATOR_HPP)
14#define XERCESC_INCLUDE_GUARD_DTDVALIDATOR_HPP
15
16#include <xercesc/util/NameIdPool.hpp>
17#include <xercesc/framework/XMLValidator.hpp>
18#include <xercesc/validators/DTD/DTDGrammar.hpp>
19#include <icxmlc/XMLConfig.hpp>
20
21XERCES_CPP_NAMESPACE_BEGIN
22
23class XMLMsgLoader;
24
25
26//
27//  This is a derivative of the abstract validator interface. This class
28//  implements a validator that supports standard XML 1.0 DTD semantics.
29//  This class handles scanning the internal and external subsets of the
30//  DTD, and provides the standard validation services against the DTD info
31//  it found.
32//
33class VALIDATORS_EXPORT DTDValidator : public XMLValidator
34{
35public:
36        // -----------------------------------------------------------------------
37        //  Constructors and Destructor
38        // -----------------------------------------------------------------------
39        DTDValidator(XMLErrorReporter* const errReporter = 0);
40        virtual ~DTDValidator();
41
42        // -----------------------------------------------------------------------
43        //  Implementation of the XMLValidator interface
44        // -----------------------------------------------------------------------
45        #ifdef STORE_CHILDREN_INFORMATION_IN_PARSER
46        virtual bool checkContent
47        (
48                XMLElementDecl* const           elemDecl
49                , XMLElementDecl ** const       children
50                , XMLSize_t                                     childCount
51                , XMLSize_t*                            indexOfFailingChild
52        );
53        #endif
54
55        virtual bool checkContent
56        (
57                XMLElementDecl* const   elemDecl
58                , QName** const         children
59                , XMLSize_t             childCount
60                , XMLSize_t*            indexOfFailingChild
61        )
62        #ifdef STORE_CHILDREN_INFORMATION_IN_PARSER
63        {
64                DEPRECATED_FEATURE_IN_ICXML;
65        }
66        #else
67        ;
68        #endif
69
70        virtual void faultInAttr
71        (
72                                XMLAttr&    toFill
73                , const XMLAttDef&  attDef
74        )   const;
75
76        virtual void preContentValidation(bool reuseGrammar,
77                                                                          bool validateDefAttr = false);
78
79        virtual void postParseValidation();
80
81        virtual void reset();
82
83        virtual bool requiresNamespaces() const;
84
85        virtual void validateAttrValue
86        (
87                const   XMLAttDef*                  attDef
88                , const XMLCh* const                attrValue
89                , bool                              preValidation = false
90                , const XMLElementDecl*             elemDecl = 0
91        );
92        virtual void validateElement
93        (
94                const   XMLElementDecl*             elemDef
95        );
96        virtual Grammar* getGrammar() const;
97        virtual void setGrammar(Grammar* aGrammar);
98
99        // -----------------------------------------------------------------------
100        //  Virtual DTD handler interface.
101        // -----------------------------------------------------------------------
102        virtual bool handlesDTD() const;
103
104        // -----------------------------------------------------------------------
105        //  Virtual Schema handler interface. handlesSchema() always return false.
106        // -----------------------------------------------------------------------
107        virtual bool handlesSchema() const;
108
109private:
110        // -----------------------------------------------------------------------
111        // Unimplemented constructors and operators
112        // -----------------------------------------------------------------------
113        DTDValidator(const DTDValidator &);
114        DTDValidator& operator = (const  DTDValidator&);
115
116        // -----------------------------------------------------------------------
117        //  Helper
118        // -----------------------------------------------------------------------
119        void   checkTokenList(const XMLAttDef&  attDef
120                                                ,       bool        toValidateNotation);
121
122        // -----------------------------------------------------------------------
123        //  Private data members
124        //
125        //  fDTDGrammar
126        //      The DTD information stored.
127        //
128        // -----------------------------------------------------------------------
129        DTDGrammar*                     fDTDGrammar;
130};
131
132// ---------------------------------------------------------------------------
133//  Virtual interface
134// ---------------------------------------------------------------------------
135inline Grammar* DTDValidator::getGrammar() const {
136        return fDTDGrammar;
137}
138
139inline void DTDValidator::setGrammar(Grammar* aGrammar) {
140        fDTDGrammar = (DTDGrammar*) aGrammar;
141}
142
143inline void DTDValidator::validateElement (const   XMLElementDecl*) {
144        // no special DTD Element validation
145}
146
147// ---------------------------------------------------------------------------
148//  DTDValidator: DTD handler interface
149// ---------------------------------------------------------------------------
150inline bool DTDValidator::handlesDTD() const
151{
152        // We definitely want to handle DTD scanning
153        return true;
154}
155
156// ---------------------------------------------------------------------------
157//  DTDValidator: Schema handler interface
158// ---------------------------------------------------------------------------
159inline bool DTDValidator::handlesSchema() const
160{
161        // No Schema scanning
162        return false;
163}
164
165XERCES_CPP_NAMESPACE_END
166
167#endif
Note: See TracBrowser for help on using the repository browser.