Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:56

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_XSAXMLSCANNER_HPP)
0023 #define XERCESC_INCLUDE_GUARD_XSAXMLSCANNER_HPP
0024 
0025 #include <xercesc/internal/SGXMLScanner.hpp>
0026 
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 //
0031 //  This is a scanner class, which processes/validates contents of XML Schema
0032 //  Annotations. It's intended for internal use only.
0033 //
0034 class XMLPARSER_EXPORT XSAXMLScanner : public SGXMLScanner
0035 {
0036 public :
0037     // -----------------------------------------------------------------------
0038     //  Destructor
0039     // -----------------------------------------------------------------------
0040     virtual ~XSAXMLScanner();
0041 
0042     // -----------------------------------------------------------------------
0043     //  XMLScanner public virtual methods
0044     // -----------------------------------------------------------------------
0045     virtual const XMLCh* getName() const;
0046 
0047 protected:
0048     // -----------------------------------------------------------------------
0049     //  Constructors
0050     // -----------------------------------------------------------------------
0051     /**
0052      * The grammar representing the XML Schema annotation (xsaGrammar) is
0053      * passed in by the caller. The scanner will own it and is responsible
0054      * for deleting it.
0055      */
0056     XSAXMLScanner
0057     (
0058         GrammarResolver* const grammarResolver
0059         , XMLStringPool* const   uriStringPool
0060         , SchemaGrammar* const   xsaGrammar
0061         , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
0062     );
0063     friend class TraverseSchema;
0064 
0065     // -----------------------------------------------------------------------
0066     //  XMLScanner virtual methods
0067     // -----------------------------------------------------------------------
0068     virtual void scanReset(const InputSource& src);
0069 
0070     // -----------------------------------------------------------------------
0071     //  SGXMLScanner virtual methods
0072     // -----------------------------------------------------------------------
0073     virtual bool scanStartTag(bool& gotData);
0074     virtual void scanEndTag(bool& gotData);
0075 
0076 private :
0077     // -----------------------------------------------------------------------
0078     //  Unimplemented constructors and operators
0079     // -----------------------------------------------------------------------
0080     XSAXMLScanner();
0081     XSAXMLScanner(const XSAXMLScanner&);
0082     XSAXMLScanner& operator=(const XSAXMLScanner&);
0083 
0084     // -----------------------------------------------------------------------
0085     //  Private helper methods
0086     // -----------------------------------------------------------------------
0087     void scanRawAttrListforNameSpaces(XMLSize_t attCount);
0088     void switchGrammar(const XMLCh* const newGrammarNameSpace, bool laxValidate);
0089 };
0090 
0091 inline const XMLCh* XSAXMLScanner::getName() const
0092 {
0093     return XMLUni::fgXSAXMLScanner;
0094 }
0095 
0096 XERCES_CPP_NAMESPACE_END
0097 
0098 #endif