source: icXML/icXML-devel/src/icxercesc/internal/WFXMLScanner.hpp @ 2721

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

Fix imports in icXML modified Xerces files

File size: 6.3 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: WFXMLScanner.hpp 810580 2009-09-02 15:52:22Z amassari $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_WFXMLSCANNER_HPP)
23#define XERCESC_INCLUDE_GUARD_WFXMLSCANNER_HPP
24
25#include <icxercesc/internal/XMLScanner.hpp>
26#include <icxercesc/util/ValueHashTableOf.hpp>
27#include <xercesc/util/ValueVectorOf.hpp>
28#include <icxercesc/validators/DTD/DTDElementDecl.hpp>
29#include <icxercesc/internal/XMLReader.hpp>
30
31XERCES_CPP_NAMESPACE_BEGIN
32
33
34//  This is a a non-validating scanner. No DOCTYPE or XML Schema processing
35//  will take place.
36class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner
37{
38        friend class XMLReader;
39        template<class WFXMLScanner> friend class XMLParserImpl;
40
41public :
42        // -----------------------------------------------------------------------
43        //  Constructors and Destructor
44        // -----------------------------------------------------------------------
45        WFXMLScanner
46        (
47                XMLValidator* const       valToAdopt
48                , GrammarResolver* const  grammarResolver
49                , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
50        );
51        WFXMLScanner
52        (
53                XMLDocumentHandler* const docHandler
54                , DocTypeHandler* const   docTypeHandler
55                , XMLEntityHandler* const entityHandler
56                , XMLErrorReporter* const errReporter
57                , XMLValidator* const     valToAdopt
58                , GrammarResolver* const  grammarResolver
59                , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
60        );
61        virtual ~WFXMLScanner();
62
63        // -----------------------------------------------------------------------
64        //  XMLScanner public virtual methods
65        // -----------------------------------------------------------------------
66        virtual const XMLCh* getName() const;
67        virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
68        virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
69        virtual void scanDocument
70        (
71                const   InputSource&    src
72        );
73        virtual bool scanNext(XMLPScanToken& toFill);
74        virtual Grammar* loadGrammar
75        (
76                const   InputSource&    src
77                , const short           grammarType
78                , const bool            toCache = false
79        );
80
81        // -----------------------------------------------------------------------
82        //  XMLScanner parabix virtual methods
83        // -----------------------------------------------------------------------
84        virtual void handleContent
85        (
86                const XMLCh       * content
87                , const XMLSize_t   contentLength
88        );
89
90        virtual XMLElementDecl * handleStartTag
91        (
92                  const XMLSymbol * const               element
93                , const XMLAttributeList &              attributeList
94                , XMLSize_t                                             attributeCount
95                , const bool                                    isRoot
96                , const bool                                    isEmpty
97                , const XMLSize_t                               readerNum
98        );
99
100        virtual void handleEndTag
101        (
102                XMLElementDecl * const                  element
103                , const unsigned int                    uriId
104                , const XMLSize_t                               readerNum
105                , const bool                                    isRoot
106                , XMLElementDecl **                             children
107                , const XMLSize_t                               childCount
108        );
109
110        void parseSchemaLocation
111        (
112                const XMLCh* const schemaLocationStr
113                , const XMLSize_t schemaLocationStrLen
114                , bool ignoreLoadSchema = false
115        )
116        {
117
118        }
119
120protected:
121
122        virtual void scanFirst();
123
124private :
125
126        // -----------------------------------------------------------------------
127        //  Unimplemented constructors and operators
128        // -----------------------------------------------------------------------
129        WFXMLScanner();
130        WFXMLScanner(const WFXMLScanner&);
131        WFXMLScanner& operator=(const WFXMLScanner&);
132
133        // -----------------------------------------------------------------------
134        //  XMLScanner virtual methods
135        // -----------------------------------------------------------------------
136        virtual void scanCDSection();
137        virtual void scanCharData(XMLBuffer& toToUse);
138        virtual EntityExpRes scanEntityRef
139        (
140                const   bool    inAttVal
141                ,       XMLCh&  firstCh
142                ,       XMLCh&  secondCh
143                ,       bool&   escaped
144        );
145        virtual void scanDocTypeDecl();
146        virtual void scanReset(const InputSource& src);
147        virtual void sendCharData(XMLBuffer& toSend);
148        virtual InputSource* resolveSystemId(const XMLCh* const sysId
149                                                                                ,const XMLCh* const pubId);
150
151        // -----------------------------------------------------------------------
152        //  Private helper methods
153        // -----------------------------------------------------------------------
154        void commonInit();
155        void cleanUp();
156
157
158        // -----------------------------------------------------------------------
159        //  Private ICXML methods
160        // -----------------------------------------------------------------------
161        void resolveSchemaGrammar
162        (
163                const XMLCh* const loc
164                , const XMLCh* const uri
165                , bool ignoreLoadSchema = false
166        )
167        {
168
169        }
170
171        inline void setXsiType
172        (
173                const XMLCh *                           value
174                , const XMLSize_t                       length
175        )
176        {
177
178        }
179
180        inline void setXsiNil
181        (
182                const XMLCh *                           value
183                , const XMLSize_t                       length
184        )
185        {
186
187        }
188
189
190        // -----------------------------------------------------------------------
191        //  Private scanning methods
192        // -----------------------------------------------------------------------
193        bool scanAttValue
194        (
195                const   XMLCh* const    attrName
196                ,       XMLBuffer&      toFill
197        );
198
199        bool scanContent();
200
201        void scanEndTag(bool& gotData);
202        bool scanStartTag(bool& gotData);
203        bool scanStartTagNS(bool& gotData);
204
205        // -----------------------------------------------------------------------
206        //  Data members
207        //
208        //  fEntityTable
209        //      This the table that contains the default entity entries.
210        //
211        //  fAttrNSList
212        //      This contains XMLAttr objects that we need to map their prefixes
213        //      to URIs when namespace is enabled.
214        //
215        // -----------------------------------------------------------------------
216        XMLParserImpl<WFXMLScanner>*        fProgressiveParser;
217};
218
219inline const XMLCh* WFXMLScanner::getName() const
220{
221        return XMLUni::fgWFXMLScanner;
222}
223
224
225XERCES_CPP_NAMESPACE_END
226
227#endif
Note: See TracBrowser for help on using the repository browser.