⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lexicalhandler.h

📁 This software aims to create an applet and panel tools to manage a wireless interface card, such as
💻 H
字号:
//
// LexicalHandler.h
//
// $Id: //poco/Main/XML/include/SAX/LexicalHandler.h#5 $
//
// SAX2-ext LexicalHandler Interface.
//
// Copyright (c) 2004, Guenter Obiltschnig/Applied Informatics.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
//
// 3. Redistributions in any form must be accompanied by information on
//    how to obtain complete source code for this software and any
//    accompanying software that uses this software.  The source code
//    must either be included in the distribution or be available for no
//    more than the cost of distribution plus a nominal fee, and must be
//    freely redistributable under reasonable conditions.  For an
//    executable file, complete source code means the source code for all
//    modules it contains.  It does not include source code for modules or
//    files that typically accompany the major components of the operating
//    system on which the executable file runs.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//


#ifndef SAX_LexicalHandler_INCLUDED
#define SAX_LexicalHandler_INCLUDED


#ifndef XML_XML_INCLUDED
#include "XML/XML.h"
#endif
#ifndef XML_XMLString_INCLUDED
#include "XML/XMLString.h"
#endif


XML_BEGIN


class XML_API LexicalHandler
	/// This is an optional extension handler for SAX2 to provide lexical information 
	/// about an XML document, such as comments and CDATA section boundaries. 
	/// XML readers are not required to recognize this handler, and it is not part of 
	/// core-only SAX2 distributions.
	/// 
	/// The events in the lexical handler apply to the entire document, not just to the 
	/// document element, and all lexical handler events must appear between the content 
	/// handler's startDocument and endDocument events.
	/// 
	/// To set the LexicalHandler for an XML reader, use the setProperty method with the 
	/// property name http://xml.org/sax/properties/lexical-handler and an object implementing 
	/// this interface (or null) as the value. If the reader does not report lexical events, 
	/// it will throw a SAXNotRecognizedException when you attempt to register the handler.
{
public:
	virtual void startDTD(const XMLString& name, const XMLString& publicId, const XMLString& systemId) = 0;
		/// Report the start of DTD declarations, if any.
		/// 
		/// This method is intended to report the beginning of the DOCTYPE declaration; 
		/// if the document has no DOCTYPE declaration, this method will not be invoked.
		/// 
		/// All declarations reported through DTDHandler or DeclHandler events must appear 
		/// between the startDTD and endDTD events. Declarations are assumed to belong to 
		/// the internal DTD subset unless they appear between startEntity and endEntity 
		/// events. Comments and processing instructions from the DTD should also be reported 
		/// between the startDTD and endDTD events, in their original order of (logical) occurrence; 
		/// they are not required to appear in their correct locations relative to DTDHandler or 
		/// DeclHandler events, however.
		/// 
		/// Note that the start/endDTD events will appear within the start/endDocument events from 
		/// ContentHandler and before the first startElement event.

	virtual void endDTD() = 0;
		/// Report the end of DTD declarations.
		/// 
		/// This method is intended to report the end of the DOCTYPE declaration; if the document 
		/// has no DOCTYPE declaration, this method will not be invoked.

	virtual void startEntity(const XMLString& name) = 0;
		/// Report the beginning of some internal and external XML entities.
		/// 
		/// The reporting of parameter entities (including the external DTD subset) is optional, 
		/// and SAX2 drivers that report LexicalHandler events may not implement it; you can use the 
		/// http://xml.org/sax/features/lexical-handler/parameter-entities feature to query or control 
		/// the reporting of parameter entities.
		/// 
		/// General entities are reported with their regular names, parameter entities have '%' 
		/// prepended to their names, and the external DTD subset has the pseudo-entity name "[dtd]".
		/// 
		/// When a SAX2 driver is providing these events, all other events must be properly nested 
		/// within start/end entity events. There is no additional requirement that events from 
		/// DeclHandler or DTDHandler be properly ordered.
		/// 
		/// Note that skipped entities will be reported through the skippedEntity event, which is part of 
		/// the ContentHandler interface.
		/// 
		/// Because of the streaming event model that SAX uses, some entity boundaries cannot be reported under 
		/// any circumstances:
		/// 
		///     * general entities within attribute values
		///     * parameter entities within declarations
		///
		/// These will be silently expanded, with no indication of where the original entity boundaries were.
		/// 
		/// Note also that the boundaries of character references (which are not really entities anyway) are not reported.
		/// 
		/// All start/endEntity events must be properly nested. 

	virtual void endEntity(const XMLString& name) = 0;
		/// Report the end of an entity.
		
	virtual void startCDATA() = 0;
		/// Report the start of a CDATA section.
		///
		/// The contents of the CDATA section will be reported through the regular characters event; 
		/// this event is intended only to report the boundary.

	virtual void endCDATA() = 0;
		/// Report the end of a CDATA section.
		
	virtual void comment(const XMLChar ch[], int start, int length) = 0;
		/// Report an XML comment anywhere in the document.
		/// 
		/// This callback will be used for comments inside or outside the document element, 
		/// including comments in the external DTD subset (if read). Comments in the DTD must 
		/// be properly nested inside start/endDTD and start/endEntity events (if used).

protected:
	virtual ~LexicalHandler();
};


XML_END


#endif // SAX_LexicalHandler_INCLUDED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -