📄 dombuilder.hpp
字号:
#ifndef DOMBuilder_HEADER_GUARD_#define DOMBuilder_HEADER_GUARD_/* * 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: DOMBuilder.hpp 569031 2007-08-23 15:05:28Z amassari $ * */#include <xercesc/util/XercesDefs.hpp>XERCES_CPP_NAMESPACE_BEGINclass DOMErrorHandler;class DOMEntityResolver;class DOMInputSource;class DOMBuilderFilter;class DOMNode;class DOMDocument;class Grammar;/** * DOMBuilder provides an API for parsing XML documents and building the * corresponding DOM document tree. A DOMBuilder instance is obtained from * the DOMImplementationLS interface by invoking its createDOMBuilder method. * This implementation also allows the applications to install an error and * an entity handler (useful extensions to the DOM specification). * * @since DOM Level 3 * */class CDOM_EXPORT DOMBuilder{protected : // ----------------------------------------------------------------------- // Hidden constructors // ----------------------------------------------------------------------- /** @name Hidden constructors */ //@{ DOMBuilder() {}; //@}private: // ----------------------------------------------------------------------- // Unimplemented constructors and operators // ----------------------------------------------------------------------- /** @name Unimplemented constructors and operators */ //@{ DOMBuilder(const DOMBuilder &); DOMBuilder & operator = (const DOMBuilder &); //@}public: // ----------------------------------------------------------------------- // All constructors are hidden, just the destructor is available // ----------------------------------------------------------------------- /** @name Destructor */ //@{ /** * Destructor * */ virtual ~DOMBuilder() {}; //@} // ----------------------------------------------------------------------- // Class types // ----------------------------------------------------------------------- /** @name Public Constants */ //@{ /** * Action types for use in parseWithContext. * * <p> <code>ACTION_REPLACE</code>: * Replace the context node with the result of parsing the input source. * For this action to work the context node must be an * <code>DOMElement</code>, <code>DOMText</code>, <code>DOMCDATASection</code>, * <code>DOMComment</code>, <code>DOMProcessingInstruction</code>, or * <code>DOMEntityReference</code> node.</p> * * <p> <code>ACTION_APPEND</code>: * Append the result of parsing the input source to the context node. For * this action to work, the context node must be an <code>DOMElement</code>.</p> * * <p> <code>ACTION_INSERT_AFTER</code>: * Insert the result of parsing the input source after the context node. * For this action to work the context nodes parent must be an * <code>DOMElement</code>.</p> * * <p> <code>ACTION_INSERT_BEFORE</code>: * Insert the result of parsing the input source before the context node. * For this action to work the context nodes parent must be an * <code>DOMElement</code>.</p> * * @see parseWithContext(...) * @since DOM Level 3 */ enum ActionType { ACTION_REPLACE = 1, ACTION_APPEND_AS_CHILDREN = 2, ACTION_INSERT_AFTER = 3, ACTION_INSERT_BEFORE = 4 }; //@} // ----------------------------------------------------------------------- // Virtual DOMBuilder interface // ----------------------------------------------------------------------- /** @name Functions introduced in DOM Level 3 */ //@{ // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- /** * Get a pointer to the error handler * * This method returns the installed error handler. If no handler * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return The pointer to the installed error handler object. * @since DOM Level 3 */ virtual DOMErrorHandler* getErrorHandler() = 0; /** * Get a const pointer to the error handler * * This method returns the installed error handler. If no handler * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return A const pointer to the installed error handler object. * @since DOM Level 3 */ virtual const DOMErrorHandler* getErrorHandler() const = 0; /** * Get a pointer to the entity resolver * * This method returns the installed entity resolver. If no resolver * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return The pointer to the installed entity resolver object. * @since DOM Level 3 */ virtual DOMEntityResolver* getEntityResolver() = 0; /** * Get a const pointer to the entity resolver * * This method returns the installed entity resolver. If no resolver * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return A const pointer to the installed entity resolver object. * @since DOM Level 3 */ virtual const DOMEntityResolver* getEntityResolver() const = 0; /** * Get a pointer to the application filter * * This method returns the installed application filter. If no filter * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return The pointer to the installed application filter. * @since DOM Level 3 */ virtual DOMBuilderFilter* getFilter() = 0; /** * Get a const pointer to the application filter * * This method returns the installed application filter. If no filter * has been installed, then it will be a zero pointer. * * <p><b>"Experimental - subject to change"</b></p> * * @return A const pointer to the installed application filter * @since DOM Level 3 */ virtual const DOMBuilderFilter* getFilter() const = 0; // ----------------------------------------------------------------------- // Setter methods // ----------------------------------------------------------------------- /** * Set the error handler * * This method allows applications to install their own error handler * to trap error and warning messages. * * <i>Any previously set handler is merely dropped, since the parser * does not own them.</i> * * <p><b>"Experimental - subject to change"</b></p> * * @param handler A const pointer to the user supplied error * handler. * * @see #getErrorHandler * @since DOM Level 3 */ virtual void setErrorHandler(DOMErrorHandler* const handler) = 0; /** * Set the entity resolver * * This method allows applications to install their own entity * resolver. By installing an entity resolver, the applications * can trap and potentially redirect references to external * entities. * * <i>Any previously set resolver is merely dropped, since the parser * does not own them.</i> * * <p><b>"Experimental - subject to change"</b></p> * * @param handler A const pointer to the user supplied entity * resolver. * * @see #getEntityResolver * @since DOM Level 3 */ virtual void setEntityResolver(DOMEntityResolver* const handler) = 0; /** * Set the application filter * * When the application provides a filter, the parser will call out to * the filter at the completion of the construction of each Element node. * The filter implementation can choose to remove the element from the * document being constructed (unless the element is the document element) * or to terminate the parse early. If the document is being validated * when it's loaded the validation happens before the filter is called. * * <i>Any previously set filter is merely dropped, since the parser * does not own them.</i> * * <p><b>"Experimental - subject to change"</b></p> * * @param filter A const pointer to the user supplied application * filter. * * @see #getFilter * @since DOM Level 3 */ virtual void setFilter(DOMBuilderFilter* const filter) = 0; // ----------------------------------------------------------------------- // Feature methods // ----------------------------------------------------------------------- /** * Set the state of a feature * * It is possible for a DOMBuilder to recognize a feature name but to be * unable to set its value. * * <p><b>"Experimental - subject to change"</b></p> * * See http://xerces.apache.org/xerces-c/program-dom.html#DOMBuilderFeatures for * the list of supported features. * * @param name The feature name. * @param state The requested state of the feature (true or false). * @exception DOMException * NOT_SUPPORTED_ERR: Raised when the DOMBuilder recognizes the * feature name but cannot set the requested value. * <br>NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize * the feature name. * * @see #setFeature * @see #canSetFeature * @since DOM Level 3 */ virtual void setFeature(const XMLCh* const name, const bool state) = 0; /** * Look up the value of a feature. * * <p><b>"Experimental - subject to change"</b></p> * * @param name The feature name. * @return The current state of the feature (true or false) * @exception DOMException * NOT_FOUND_ERR: Raised when the DOMBuilder does not recognize * the feature name. * * @see #getFeature * @see #canSetFeature * @since DOM Level 3 */ virtual bool getFeature(const XMLCh* const name) const = 0; /** * Query whether setting a feature to a specific value is supported. * * <p><b>"Experimental - subject to change"</b></p> * * @param name The feature name. * @param state The requested state of the feature (true or false). * @return <code>true</code> if the feature could be successfully set * to the specified value, or <code>false</code> if the feature * is not recognized or the requested value is not supported. The * value of the feature itself is not changed. * * @see #getFeature * @see #setFeature * @since DOM Level 3 */ virtual bool canSetFeature(const XMLCh* const name, const bool state) const = 0; // ----------------------------------------------------------------------- // Parsing methods // -----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -