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_DOMBUILDERIMPL_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMBUILDERIMPL_HPP
0024 
0025 
0026 #include <xercesc/parsers/AbstractDOMParser.hpp>
0027 #include <xercesc/dom/DOMLSParser.hpp>
0028 #include <xercesc/dom/DOMLSInput.hpp>
0029 #include <xercesc/dom/DOMConfiguration.hpp>
0030 #include <xercesc/util/XercesDefs.hpp>
0031 #include <xercesc/util/RefVectorOf.hpp>
0032 #include <xercesc/util/ValueHashTableOf.hpp>
0033 
0034 XERCES_CPP_NAMESPACE_BEGIN
0035 
0036 class XMLEntityResolver;
0037 class XMLResourceIdentifier;
0038 class DOMStringListImpl;
0039 class DOMLSResourceResolver;
0040 
0041  /**
0042   * Introduced in DOM Level 3
0043   *
0044   * DOMLSParserImpl provides an implementation of a DOMLSParser interface.
0045   * A DOMLSParser instance is obtained from the DOMImplementationLS interface
0046   * by invoking its createDOMLSParser method.
0047   */
0048 class PARSERS_EXPORT DOMLSParserImpl : public AbstractDOMParser,
0049                                        public DOMLSParser,
0050                                        public DOMConfiguration
0051 {
0052 public :
0053     // -----------------------------------------------------------------------
0054     //  Constructors and Detructor
0055     // -----------------------------------------------------------------------
0056 
0057     /** @name Constructors and Destructor */
0058     //@{
0059     /** Construct a DOMLSParserImpl, with an optional validator
0060       *
0061       * Constructor with an instance of validator class to use for
0062       * validation. If you don't provide a validator, a default one will
0063       * be created for you in the scanner.
0064       *
0065       * @param valToAdopt Pointer to the validator instance to use. The
0066       *                   parser is responsible for freeing the memory.
0067       * @param manager    The memory manager to be used for memory allocations
0068       * @param gramPool   Pointer to the grammar pool instance from
0069       *                   external application.
0070       *                   The parser does NOT own it.
0071       *
0072       */
0073     DOMLSParserImpl
0074     (
0075           XMLValidator* const   valToAdopt = 0
0076         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
0077         , XMLGrammarPool* const gramPool = 0
0078     );
0079 
0080     /**
0081       * Destructor
0082       */
0083     virtual ~DOMLSParserImpl();
0084 
0085     //@}
0086 
0087     // -----------------------------------------------------------------------
0088     //  Implementation of DOMLSParser interface
0089     // -----------------------------------------------------------------------
0090     // -----------------------------------------------------------------------
0091     //  Getter methods
0092     // -----------------------------------------------------------------------
0093 
0094     /** @name Getter methods */
0095     //@{
0096 
0097     /**
0098       * @see DOMLSParser#getDomConfig
0099       */
0100     virtual DOMConfiguration* getDomConfig();
0101 
0102     /**
0103       * @see DOMLSParser#getFilter
0104       */
0105     virtual const DOMLSParserFilter* getFilter() const;
0106 
0107     /**
0108       * @see DOMLSParser#getAsync
0109       */
0110     virtual bool getAsync() const;
0111 
0112     /**
0113       * @see DOMLSParser#getBusy
0114       */
0115     virtual bool getBusy() const;
0116     //@}
0117 
0118 
0119     // -----------------------------------------------------------------------
0120     //  Setter methods
0121     // -----------------------------------------------------------------------
0122 
0123     /** @name Setter methods */
0124     //@{
0125     /**
0126       * @see DOMLSParser#setFilter
0127       */
0128     virtual void setFilter(DOMLSParserFilter* const filter);
0129 
0130     //@}
0131 
0132     // -----------------------------------------------------------------------
0133     //  Parsing methods
0134     // -----------------------------------------------------------------------
0135     /** @name Parsing methods */
0136     //@{
0137 
0138     // -----------------------------------------------------------------------
0139     //  Parsing methods
0140     // -----------------------------------------------------------------------
0141     /**
0142       * @see DOMLSParser#parse
0143       */
0144     virtual DOMDocument* parse(const DOMLSInput* source);
0145 
0146     /**
0147       * @see DOMLSParser#parseURI
0148       */
0149     virtual DOMDocument* parseURI(const XMLCh* const uri);
0150 
0151     /**
0152       * @see DOMLSParser#parseURI
0153       */
0154     virtual DOMDocument* parseURI(const char* const uri);
0155 
0156     /**
0157       * @see DOMLSParser#parseWithContext
0158       */
0159     virtual DOMNode* parseWithContext
0160     (
0161         const   DOMLSInput*     source
0162         ,       DOMNode*        contextNode
0163         , const ActionType      action
0164     );
0165 
0166     /**
0167       * @see DOMLSParser#abort
0168       */
0169     virtual void abort();
0170 
0171 
0172     // -----------------------------------------------------------------------
0173     //  Non-standard Extension
0174     // -----------------------------------------------------------------------
0175     /** @name Non-standard Extension */
0176     //@{
0177 
0178     /**
0179      * Called to indicate that this DOMLSParser is no longer in use
0180      * and that the implementation may relinquish any resources associated with it.
0181      *
0182      */
0183     virtual void              release();
0184 
0185     /** Reset the documents vector pool and release all the associated memory
0186       * back to the system.
0187       *
0188       * When parsing a document using a DOM parser, all memory allocated
0189       * for a DOM tree is associated to the DOM document.
0190       *
0191       * If you do multiple parse using the same DOM parser instance, then
0192       * multiple DOM documents will be generated and saved in a vector pool.
0193       * All these documents (and thus all the allocated memory)
0194       * won't be deleted until the parser instance is destroyed.
0195       *
0196       * If you don't need these DOM documents anymore and don't want to
0197       * destroy the DOM parser instance at this moment, then you can call this method
0198       * to reset the document vector pool and release all the allocated memory
0199       * back to the system.
0200       *
0201       * It is an error to call this method if you are in the middle of a
0202       * parse (e.g. in the mid of a progressive parse).
0203       *
0204       * @exception IOException An exception from the parser if this function
0205       *            is called when a parse is in progress.
0206       *
0207       */
0208     virtual void resetDocumentPool();
0209 
0210     /**
0211       * Preparse schema grammar (XML Schema, DTD, etc.) via an input source
0212       * object.
0213       *
0214       * This method invokes the preparsing process on a schema grammar XML
0215       * file specified by the DOMLSInput parameter. If the 'toCache' flag
0216       * is enabled, the parser will cache the grammars for re-use. If a grammar
0217       * key is found in the pool, no caching of any grammar will take place.
0218       *
0219       * @param source A const reference to the DOMLSInput object which
0220       *               points to the schema grammar file to be preparsed.
0221       * @param grammarType The grammar type (Schema or DTD).
0222       * @param toCache If <code>true</code>, we cache the preparsed grammar,
0223       *                otherwise, no chaching. Default is <code>false</code>.
0224       * @return The preparsed schema grammar object (SchemaGrammar or
0225       *         DTDGrammar). That grammar object is owned by the parser.
0226       *
0227       * @exception SAXException Any SAX exception, possibly
0228       *            wrapping another exception.
0229       * @exception XMLException An exception from the parser or client
0230       *            handler code.
0231       * @exception DOMException A DOM exception as per DOM spec.
0232       *
0233       * @see DOMLSInput#DOMLSInput
0234       */
0235     virtual Grammar* loadGrammar(const DOMLSInput* source,
0236                              const Grammar::GrammarType grammarType,
0237                              const bool toCache = false);
0238 
0239     /**
0240       * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
0241       *
0242       * This method invokes the preparsing process on a schema grammar XML
0243       * file specified by the file path parameter. If the 'toCache' flag
0244       * is enabled, the parser will cache the grammars for re-use. If a grammar
0245       * key is found in the pool, no caching of any grammar will take place.
0246       *
0247       * @param systemId A const XMLCh pointer to the Unicode string which
0248       *                 contains the path to the XML grammar file to be
0249       *                 preparsed.
0250       * @param grammarType The grammar type (Schema or DTD).
0251       * @param toCache If <code>true</code>, we cache the preparsed grammar,
0252       *                otherwise, no chaching. Default is <code>false</code>.
0253       * @return The preparsed schema grammar object (SchemaGrammar or
0254       *         DTDGrammar). That grammar object is owned by the parser.
0255       *
0256       * @exception SAXException Any SAX exception, possibly
0257       *            wrapping another exception.
0258       * @exception XMLException An exception from the parser or client
0259       *            handler code.
0260       * @exception DOMException A DOM exception as per DOM spec.
0261       */
0262     virtual Grammar* loadGrammar(const XMLCh* const systemId,
0263                              const Grammar::GrammarType grammarType,
0264                              const bool toCache = false);
0265 
0266     /**
0267       * Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
0268       *
0269       * This method invokes the preparsing process on a schema grammar XML
0270       * file specified by the file path parameter. If the 'toCache' flag
0271       * is enabled, the parser will cache the grammars for re-use. If a grammar
0272       * key is found in the pool, no caching of any grammar will take place.
0273       *
0274       * @param systemId A const char pointer to a native string which contains
0275       *                 the path to the XML grammar file to be preparsed.
0276       * @param grammarType The grammar type (Schema or DTD).
0277       * @param toCache If <code>true</code>, we cache the preparsed grammar,
0278       *                otherwise, no chaching. Default is <code>false</code>.
0279       * @return The preparsed schema grammar object (SchemaGrammar or
0280       *         DTDGrammar). That grammar object is owned by the parser.
0281       *
0282       * @exception SAXException Any SAX exception, possibly
0283       *            wrapping another exception.
0284       * @exception XMLException An exception from the parser or client
0285       *            handler code.
0286       * @exception DOMException A DOM exception as per DOM spec.
0287       */
0288     virtual Grammar* loadGrammar(const char* const systemId,
0289                                  const Grammar::GrammarType grammarType,
0290                                  const bool toCache = false);
0291 
0292     /**
0293      * Retrieve the grammar that is associated with the specified namespace key
0294      *
0295      * @param  nameSpaceKey Namespace key
0296      * @return Grammar associated with the Namespace key.
0297      */
0298     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const;
0299 
0300     /**
0301      * Retrieve the grammar where the root element is declared.
0302      *
0303      * @return Grammar where root element declared
0304      */
0305     virtual Grammar* getRootGrammar() const;
0306 
0307     /**
0308      * Returns the string corresponding to a URI id from the URI string pool.
0309      *
0310      * @param uriId id of the string in the URI string pool.
0311      * @return URI string corresponding to the URI id.
0312      */
0313     virtual const XMLCh* getURIText(unsigned int uriId) const;
0314 
0315     /**
0316       * Clear the cached grammar pool
0317       */
0318     virtual void resetCachedGrammarPool();
0319 
0320     /**
0321       * Returns the current src offset within the input source.
0322       * To be used only while parsing is in progress.
0323       *
0324       * @return offset within the input source
0325       */
0326     virtual XMLFilePos getSrcOffset() const;
0327 
0328     //@}
0329 
0330     // -----------------------------------------------------------------------
0331     //  Implementation of the DOMConfiguration interface.
0332     // -----------------------------------------------------------------------
0333     /** @name Implementation of the DOMConfiguration interface. */
0334     //@{
0335     /**
0336      * Set the value of a parameter.
0337      *
0338      * @param name The name of the parameter to set.
0339      * @param value The new value or null if the user wishes to unset the
0340      * parameter. While the type of the value parameter is defined as
0341      * <code>DOMUserData</code>, the object type must match the type defined
0342      * by the definition of the parameter. For example, if the parameter is
0343      * "error-handler", the value must be of type <code>DOMErrorHandler</code>
0344      *
0345      * @exception DOMException (NOT_SUPPORTED_ERR) Raised when the
0346      * parameter name is recognized but the requested value cannot be set.
0347      * @exception DOMException (NOT_FOUND_ERR) Raised when the
0348      * parameter name is not recognized.
0349      *
0350      * @since DOM level 3
0351      **/
0352     virtual void setParameter(const XMLCh* name, const void* value);
0353     virtual void setParameter(const XMLCh* name, bool value);
0354 
0355     /**
0356      * Return the value of a parameter if known.
0357      *
0358      * @param name The name of the parameter.
0359      * @return The current object associated with the specified parameter or
0360      * null if no object has been associated or if the parameter is not
0361      * supported.
0362      *
0363      * @exception DOMException (NOT_FOUND_ERR) Raised when the i
0364      * boolean parameter
0365      * name is not recognized.
0366      *
0367      * @since DOM level 3
0368      **/
0369     virtual const void* getParameter(const XMLCh* name) const;
0370 
0371     /**
0372      * Check if setting a parameter to a specific value is supported.
0373      *
0374      * @param name The name of the parameter to check.
0375      * @param value An object. if null, the returned value is true.
0376      * @return true if the parameter could be successfully set to the specified
0377      * value, or false if the parameter is not recognized or the requested value
0378      * is not supported. This does not change the current value of the parameter
0379      * itself.
0380      *
0381      * @since DOM level 3
0382      **/
0383     virtual bool canSetParameter(const XMLCh* name, const void* value) const;
0384     virtual bool canSetParameter(const XMLCh* name, bool value) const;
0385 
0386     /**
0387      * The list of the parameters supported by this DOMConfiguration object and
0388      * for which at least one value can be set by the application.
0389      * Note that this list can also contain parameter names defined outside this specification.
0390      *
0391      * @return The list of parameters that can be used with setParameter/getParameter
0392      * @since DOM level 3
0393      **/
0394     virtual const DOMStringList* getParameterNames() const;
0395     //@}
0396 
0397     // -----------------------------------------------------------------------
0398     //  Implementation of the XMLErrorReporter interface.
0399     // -----------------------------------------------------------------------
0400 
0401     /** @name Implementation of the XMLErrorReporter interface. */
0402     //@{
0403 
0404     /** Handle errors reported from the parser
0405       *
0406       * This method is used to report back errors found while parsing the
0407       * XML file. This method is also borrowed from the SAX specification.
0408       * It calls the corresponding user installed Error Handler method:
0409       * 'fatal', 'error', 'warning' depending on the severity of the error.
0410       * This classification is defined by the XML specification.
0411       *
0412       * @param errCode An integer code for the error.
0413       * @param msgDomain A const pointer to an Unicode string representing
0414       *                  the message domain to use.
0415       * @param errType An enumeration classifying the severity of the error.
0416       * @param errorText A const pointer to an Unicode string representing
0417       *                  the text of the error message.
0418       * @param systemId  A const pointer to an Unicode string representing
0419       *                  the system id of the XML file where this error
0420       *                  was discovered.
0421       * @param publicId  A const pointer to an Unicode string representing
0422       *                  the public id of the XML file where this error
0423       *                  was discovered.
0424       * @param lineNum   The line number where the error occurred.
0425       * @param colNum    The column number where the error occurred.
0426       * @see DOMErrorHandler
0427       */
0428     virtual void error
0429     (
0430         const   unsigned int                errCode
0431         , const XMLCh* const                msgDomain
0432         , const XMLErrorReporter::ErrTypes  errType
0433         , const XMLCh* const                errorText
0434         , const XMLCh* const                systemId
0435         , const XMLCh* const                publicId
0436         , const XMLFileLoc                  lineNum
0437         , const XMLFileLoc                  colNum
0438     );
0439 
0440     /** Reset any error data before a new parse
0441      *
0442       * This method allows the user installed Error Handler callback to
0443       * 'reset' itself.
0444       *
0445       * <b><font color="#FF0000">This method is a no-op for this DOM
0446       * implementation.</font></b>
0447       */
0448     virtual void resetErrors();
0449     //@}
0450 
0451 
0452     // -----------------------------------------------------------------------
0453     //  Implementation of the XMLEntityHandler interface.
0454     // -----------------------------------------------------------------------
0455 
0456     /** @name Implementation of the XMLEntityHandler interface. */
0457     //@{
0458 
0459     /** Handle an end of input source event
0460       *
0461       * This method is used to indicate the end of parsing of an external
0462       * entity file.
0463       *
0464       * <b><font color="#FF0000">This method is a no-op for this DOM
0465       * implementation.</font></b>
0466       *
0467       * @param inputSource A const reference to the InputSource object
0468       *                    which points to the XML file being parsed.
0469       * @see InputSource
0470       */
0471     virtual void endInputSource(const InputSource& inputSource);
0472 
0473     /** Expand a system id
0474       *
0475       * This method allows an installed XMLEntityHandler to further
0476       * process any system id's of enternal entities encountered in
0477       * the XML file being parsed, such as redirection etc.
0478       *
0479       * <b><font color="#FF0000">This method always returns 'false'
0480       * for this DOM implementation.</font></b>
0481       *
0482       * @param systemId  A const pointer to an Unicode string representing
0483       *                  the system id scanned by the parser.
0484       * @param toFill    A pointer to a buffer in which the application
0485       *                  processed system id is stored.
0486       * @return 'true', if any processing is done, 'false' otherwise.
0487       */
0488     virtual bool expandSystemId
0489     (
0490         const   XMLCh* const    systemId
0491         ,       XMLBuffer&      toFill
0492     );
0493 
0494     /** Reset any entity handler information
0495       *
0496       * This method allows the installed XMLEntityHandler to reset
0497       * itself.
0498       *
0499       * <b><font color="#FF0000">This method is a no-op for this DOM
0500       * implementation.</font></b>
0501       */
0502     virtual void resetEntities();
0503 
0504     /** Resolve a public/system id
0505       *
0506       * This method allows a user installed entity handler to further
0507       * process any pointers to external entities. The applications can
0508       * implement 'redirection' via this callback.
0509       *
0510       * @param resourceIdentifier An object containing the type of
0511       *        resource to be resolved and the associated data members
0512       *        corresponding to this type.
0513       * @return The value returned by the user installed resolveEntity
0514       *         method or NULL otherwise to indicate no processing was done.
0515       *         The returned InputSource is owned by the parser which is
0516       *         responsible to clean up the memory.
0517       * @see XMLEntityHandler
0518       * @see XMLEntityResolver
0519       */
0520     virtual InputSource* resolveEntity
0521     (
0522         XMLResourceIdentifier* resourceIdentifier
0523     );
0524 
0525     /** Handle a 'start input source' event
0526       *
0527       * This method is used to indicate the start of parsing an external
0528       * entity file.
0529       *
0530       * <b><font color="#FF0000">This method is a no-op for this DOM parse
0531       * implementation.</font></b>
0532       *
0533       * @param inputSource A const reference to the InputSource object
0534       *                    which points to the external entity
0535       *                    being parsed.
0536       */
0537     virtual void startInputSource(const InputSource& inputSource);
0538 
0539     //@}
0540 
0541     // -----------------------------------------------------------------------
0542     //  Implementation of the XMLDocumentHandler interface.
0543     // -----------------------------------------------------------------------
0544     virtual void docCharacters
0545     (
0546         const   XMLCh* const    chars
0547         , const XMLSize_t       length
0548         , const bool            cdataSection
0549     );
0550     virtual void docComment
0551     (
0552         const   XMLCh* const    comment
0553     );
0554     virtual void docPI
0555     (
0556         const   XMLCh* const    target
0557         , const XMLCh* const    data
0558     );
0559     virtual void startEntityReference
0560     (
0561         const   XMLEntityDecl&  entDecl
0562     );
0563     virtual void endElement
0564     (
0565         const   XMLElementDecl& elemDecl
0566         , const unsigned int    urlId
0567         , const bool            isRoot
0568         , const XMLCh* const    elemPrefix
0569     );
0570     virtual void startElement
0571     (
0572         const   XMLElementDecl&         elemDecl
0573         , const unsigned int            urlId
0574         , const XMLCh* const            elemPrefix
0575         , const RefVectorOf<XMLAttr>&   attrList
0576         , const XMLSize_t               attrCount
0577         , const bool                    isEmpty
0578         , const bool                    isRoot
0579     );
0580 
0581     // overriden callbacks to implement parseWithContext behavior
0582     virtual void startDocument();
0583     virtual void XMLDecl
0584     (
0585         const   XMLCh* const    versionStr
0586         , const XMLCh* const    encodingStr
0587         , const XMLCh* const    standaloneStr
0588         , const XMLCh* const    actualEncStr
0589     );
0590 
0591 
0592 private :
0593     // -----------------------------------------------------------------------
0594     //  Initialize/Cleanup methods
0595     // -----------------------------------------------------------------------
0596     void resetParse();
0597 
0598     // -----------------------------------------------------------------------
0599     //  Helper methods
0600     // -----------------------------------------------------------------------
0601     void applyFilter(DOMNode* node);
0602 
0603     // -----------------------------------------------------------------------
0604     //  Private data members
0605     //
0606     //  fEntityResolver
0607     //      The installed DOM entity resolver, if any. Null if none.
0608     //
0609     //  fXMLEntityResolver
0610     //      The installed Xerces entity resolver, if any. Null if none.
0611     //
0612     //  fErrorHandler
0613     //      The installed DOM error handler, if any. Null if none.
0614     //
0615     //  fFilter
0616     //      The installed application filter, if any. Null if none.
0617     //
0618     //  fCharsetOverridesXMLEncoding
0619     //      Indicates if the "charset-overrides-xml-encoding" is set or not
0620     //
0621     //  fUserAdoptsDocument
0622     //      The DOMDocument ownership has been transferred to application
0623     //      If set to true, the parser does not own the document anymore
0624     //      and thus will not release its memory.
0625     //
0626     //  fSupportedParameters
0627     //      A list of the parameters that can be set, including the ones
0628     //      specific of Xerces
0629     //
0630     //  fFilterAction
0631     //      A map of elements rejected by the DOMLSParserFilter::startElement
0632     //      callback, used to avoid invoking DOMLSParserFilter::acceptNode
0633     //      on its children
0634     //
0635     //  fFilterDelayedTextNodes
0636     //      As text nodes are filled incrementally, store them in a map
0637     //      so that we ask DOMLSParserFilter::acceptNode only once, when it
0638     //      is completely created
0639     //
0640     //  fWrapNodesInDocumentFragment
0641     //  fWrapNodesContext
0642     //  fWrapNodesAction
0643     //      Variables used to keep the state for parseWithContext API 
0644     //
0645     //-----------------------------------------------------------------------
0646     DOMLSResourceResolver*      fEntityResolver;
0647     XMLEntityResolver*          fXMLEntityResolver;
0648     DOMErrorHandler*            fErrorHandler;
0649     DOMLSParserFilter*          fFilter;
0650     bool                        fCharsetOverridesXMLEncoding;
0651     bool                        fUserAdoptsDocument;
0652     DOMStringListImpl*          fSupportedParameters;
0653     ValueHashTableOf<DOMLSParserFilter::FilterAction, PtrHasher>*   fFilterAction;
0654     ValueHashTableOf<bool, PtrHasher>*                              fFilterDelayedTextNodes;
0655     DOMDocumentFragment*        fWrapNodesInDocumentFragment;
0656     DOMNode*                    fWrapNodesContext;
0657     ActionType                  fWrapNodesAction;
0658 
0659     // -----------------------------------------------------------------------
0660     // Unimplemented constructors and operators
0661     // -----------------------------------------------------------------------
0662     DOMLSParserImpl(const DOMLSParserImpl &);
0663     DOMLSParserImpl & operator = (const DOMLSParserImpl &);
0664 };
0665 
0666 
0667 
0668 // ---------------------------------------------------------------------------
0669 //  DOMLSParserImpl: Handlers for the XMLEntityHandler interface
0670 // ---------------------------------------------------------------------------
0671 inline void DOMLSParserImpl::endInputSource(const InputSource&)
0672 {
0673     // The DOM entity resolver doesn't handle this
0674 }
0675 
0676 inline bool DOMLSParserImpl::expandSystemId(const XMLCh* const, XMLBuffer&)
0677 {
0678     // The DOM entity resolver doesn't handle this
0679     return false;
0680 }
0681 
0682 inline void DOMLSParserImpl::resetEntities()
0683 {
0684     // Nothing to do on this one
0685 }
0686 
0687 inline void DOMLSParserImpl::startInputSource(const InputSource&)
0688 {
0689     // The DOM entity resolver doesn't handle this
0690 }
0691 
0692 
0693 // ---------------------------------------------------------------------------
0694 //  DOMLSParserImpl: Getter methods
0695 // ---------------------------------------------------------------------------
0696 inline DOMConfiguration* DOMLSParserImpl::getDomConfig()
0697 {
0698     return this;
0699 }
0700 
0701 inline bool DOMLSParserImpl::getAsync() const
0702 {
0703     // We are a synchronous parser
0704     return false;
0705 }
0706 
0707 inline const DOMLSParserFilter* DOMLSParserImpl::getFilter() const
0708 {
0709     return fFilter;
0710 }
0711 
0712 
0713 XERCES_CPP_NAMESPACE_END
0714 
0715 #endif