SourceForge.net Logo

DOMLSParser.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSParser.hpp 832686 2009-11-04 08:55:59Z borisk $
00020  *
00021  */
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP)
00024 #define XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP
00025 
00026 #include <xercesc/dom/DOMConfiguration.hpp>
00027 #include <xercesc/dom/DOMLSParserFilter.hpp>
00028 #include <xercesc/util/XercesDefs.hpp>
00029 #include <xercesc/validators/common/Grammar.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 
00034 class DOMErrorHandler;
00035 class DOMLSInput;
00036 class DOMNode;
00037 class DOMDocument;
00038 
00047 class CDOM_EXPORT DOMLSParser
00048 {
00049 protected :
00050     // -----------------------------------------------------------------------
00051     //  Hidden constructors
00052     // -----------------------------------------------------------------------
00055     DOMLSParser() {};
00057 
00058 private:
00059     // -----------------------------------------------------------------------
00060     // Unimplemented constructors and operators
00061     // -----------------------------------------------------------------------
00064     DOMLSParser(const DOMLSParser &);
00065     DOMLSParser & operator = (const DOMLSParser &);
00067 
00068 public:
00069     // -----------------------------------------------------------------------
00070     //  All constructors are hidden, just the destructor is available
00071     // -----------------------------------------------------------------------
00078     virtual ~DOMLSParser() {};
00080 
00081     // -----------------------------------------------------------------------
00082     //  Class types
00083     // -----------------------------------------------------------------------
00117     enum ActionType
00118     {
00119         ACTION_APPEND_AS_CHILDREN = 1,
00120         ACTION_REPLACE_CHILDREN   = 2,
00121         ACTION_INSERT_BEFORE      = 3,
00122         ACTION_INSERT_AFTER       = 4,
00123         ACTION_REPLACE            = 5
00124     };
00126 
00127     // -----------------------------------------------------------------------
00128     //  Virtual DOMLSParser interface
00129     // -----------------------------------------------------------------------
00132 
00133     // -----------------------------------------------------------------------
00134     //  Getter methods
00135     // -----------------------------------------------------------------------
00136 
00377     virtual DOMConfiguration* getDomConfig() = 0;
00378 
00388     virtual const DOMLSParserFilter* getFilter() const = 0;
00389 
00397     virtual bool getAsync() const = 0;
00398 
00406     virtual bool getBusy() const = 0;
00407 
00408     // -----------------------------------------------------------------------
00409     //  Setter methods
00410     // -----------------------------------------------------------------------
00431     virtual void setFilter(DOMLSParserFilter* const filter) = 0;
00432 
00433     // -----------------------------------------------------------------------
00434     //  Parsing methods
00435     // -----------------------------------------------------------------------
00463     virtual DOMDocument* parse(const DOMLSInput* source) = 0;
00464 
00492     virtual DOMDocument* parseURI(const XMLCh* const uri) = 0;
00493 
00521     virtual DOMDocument* parseURI(const char* const uri) = 0;
00522 
00590     virtual DOMNode* parseWithContext(const DOMLSInput* source, DOMNode* contextNode, const ActionType action) = 0;
00591 
00600     virtual void abort() = 0;
00602 
00603     // -----------------------------------------------------------------------
00604     //  Non-standard Extension
00605     // -----------------------------------------------------------------------
00614     virtual void              release() = 0;
00615 
00639     virtual void              resetDocumentPool() = 0;
00640 
00666     virtual Grammar* loadGrammar(const DOMLSInput* source,
00667                                  const Grammar::GrammarType grammarType,
00668                                  const bool toCache = false) = 0;
00669 
00693     virtual Grammar* loadGrammar(const XMLCh* const systemId,
00694                                  const Grammar::GrammarType grammarType,
00695                                  const bool toCache = false) = 0;
00696 
00720     virtual Grammar* loadGrammar(const char* const systemId,
00721                                  const Grammar::GrammarType grammarType,
00722                                  const bool toCache = false) = 0;
00723 
00730     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
00731 
00737     virtual Grammar* getRootGrammar() const = 0;
00738 
00745     virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
00746 
00750     virtual void resetCachedGrammarPool() = 0;
00751 
00757     virtual XMLFilePos getSrcOffset() const = 0;
00758 
00760 
00761 };
00762 
00763 
00764 XERCES_CPP_NAMESPACE_END
00765 
00766 #endif