secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp
changeset 3 127731b7107d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp	Fri Jan 22 09:56:12 2010 +0200
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: WFXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(WFXMLSCANNER_HPP)
+#define WFXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//  This is a a non-validating scanner. No DOCTYPE or XML Schema processing
+//  will take place.
+class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    WFXMLScanner
+    (
+        XMLValidator* const       valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    WFXMLScanner
+    (
+        XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const   docTypeHandler
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errReporter
+        , XMLValidator* const     valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~WFXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    WFXMLScanner();
+    WFXMLScanner(const WFXMLScanner&);
+    WFXMLScanner& operator=(const WFXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool scanAttValue
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEntityTable
+    //      This the table that contains the default entity entries.
+    //
+    //  fAttrNameHashList
+    //      This contains the hash value for attribute names. It's used when
+    //      checking for duplicate attributes.
+    //
+    //  fAttrNSList
+    //      This contains XMLAttr objects that we need to map their prefixes
+    //      to URIs when namespace is enabled.
+    //
+    // -----------------------------------------------------------------------
+    unsigned int                       fElementIndex;
+    RefVectorOf<XMLElementDecl>*       fElements;
+    ValueHashTableOf<XMLCh>*           fEntityTable;
+    ValueVectorOf<unsigned int>*       fAttrNameHashList;
+    ValueVectorOf<XMLAttr*>*           fAttrNSList;
+    RefHashTableOf<XMLElementDecl>*    fElementLookup;  
+};
+
+inline const XMLCh* WFXMLScanner::getName() const
+{
+    return XMLUni::fgWFXMLScanner;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif