Reordered files in all libs - now all includes are in "libname/include" dir - logical, isn't it? This should break compilation however.
This commit is contained in:
313
project/jni/xerces/include/xercesc/sax2/Attributes.hpp
Normal file
313
project/jni/xerces/include/xercesc/sax2/Attributes.hpp
Normal file
@@ -0,0 +1,313 @@
|
||||
/*
|
||||
* 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: Attributes.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_ATTRIBUTES_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_ATTRIBUTES_HPP
|
||||
|
||||
#include <xercesc/util/XercesDefs.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
/**
|
||||
* Interface for an element's attribute specifications.
|
||||
*
|
||||
* The SAX2 parser implements this interface and passes an instance
|
||||
* to the SAX2 application as the last argument of each startElement
|
||||
* event.
|
||||
*
|
||||
* The instance provided will return valid results only during the
|
||||
* scope of the startElement invocation (to save it for future
|
||||
* use, the application must make a copy: the AttributesImpl
|
||||
* helper class provides a convenient constructor for doing so).
|
||||
*
|
||||
* An Attributes includes only attributes that have been
|
||||
* specified or defaulted: \#IMPLIED attributes will not be included.
|
||||
*
|
||||
* There are two ways for the SAX application to obtain information
|
||||
* from the Attributes. First, it can iterate through the entire
|
||||
* list:
|
||||
*
|
||||
* <code>
|
||||
* public void startElement (String uri, String localpart, String qName, Attributes atts) {<br>
|
||||
* for (XMLSize_t i = 0; i < atts.getLength(); i++) {<br>
|
||||
* String Qname = atts.getQName(i);<br>
|
||||
* String URI = atts.getURI(i)<br>
|
||||
* String local = atts.GetLocalName(i)<br>
|
||||
* String type = atts.getType(i);<br>
|
||||
* String value = atts.getValue(i);<br>
|
||||
* [...]<br>
|
||||
* }<br>
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* (Note that the result of getLength() will be zero if there
|
||||
* are no attributes.)
|
||||
*
|
||||
* As an alternative, the application can request the value or
|
||||
* type of specific attributes:
|
||||
*
|
||||
* <code>
|
||||
* public void startElement (String uri, String localpart, String qName, Attributes atts) {<br>
|
||||
* String identifier = atts.getValue("id");<br>
|
||||
* String label = atts.getValue("label");<br>
|
||||
* [...]<br>
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* The AttributesImpl helper class provides a convenience
|
||||
* implementation for use by parser or application writers.
|
||||
*
|
||||
* @see Sax2DocumentHandler#startElement
|
||||
* @see AttributesImpl#AttributesImpl
|
||||
*/
|
||||
|
||||
class SAX2_EXPORT Attributes
|
||||
{
|
||||
public:
|
||||
// -----------------------------------------------------------------------
|
||||
// Constructors and Destructor
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** Default constructor */
|
||||
Attributes()
|
||||
{
|
||||
}
|
||||
|
||||
/** Destructor */
|
||||
virtual ~Attributes()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
/** @name The virtual attribute list interface */
|
||||
//@{
|
||||
/**
|
||||
* Return the number of attributes in this list.
|
||||
*
|
||||
* The SAX parser may provide attributes in any
|
||||
* arbitrary order, regardless of the order in which they were
|
||||
* declared or specified. The number of attributes may be
|
||||
* zero.
|
||||
*
|
||||
* @return The number of attributes in the list.
|
||||
*/
|
||||
virtual XMLSize_t getLength() const = 0;
|
||||
|
||||
/**
|
||||
* Return the namespace URI of an attribute in this list (by position).
|
||||
*
|
||||
* The QNames must be unique: the SAX parser shall not include the
|
||||
* same attribute twice. Attributes without values (those declared
|
||||
* \#IMPLIED without a value specified in the start tag) will be
|
||||
* omitted from the list.
|
||||
*
|
||||
* @param index The index of the attribute in the list (starting at 0).
|
||||
* @return The URI of the indexed attribute, or null
|
||||
* if the index is out of range.
|
||||
* @see #getLength
|
||||
*/
|
||||
virtual const XMLCh* getURI(const XMLSize_t index) const = 0;
|
||||
|
||||
/**
|
||||
* Return the local name of an attribute in this list (by position).
|
||||
*
|
||||
* The QNames must be unique: the SAX parser shall not include the
|
||||
* same attribute twice. Attributes without values (those declared
|
||||
* \#IMPLIED without a value specified in the start tag) will be
|
||||
* omitted from the list.
|
||||
*
|
||||
* @param index The index of the attribute in the list (starting at 0).
|
||||
* @return The local name of the indexed attribute, or null
|
||||
* if the index is out of range.
|
||||
* @see #getLength
|
||||
*/
|
||||
virtual const XMLCh* getLocalName(const XMLSize_t index) const = 0;
|
||||
|
||||
/**
|
||||
* Return the qName of an attribute in this list (by position).
|
||||
*
|
||||
* The QNames must be unique: the SAX parser shall not include the
|
||||
* same attribute twice. Attributes without values (those declared
|
||||
* \#IMPLIED without a value specified in the start tag) will be
|
||||
* omitted from the list.
|
||||
*
|
||||
* @param index The index of the attribute in the list (starting at 0).
|
||||
* @return The qName of the indexed attribute, or null
|
||||
* if the index is out of range.
|
||||
* @see #getLength
|
||||
*/
|
||||
virtual const XMLCh* getQName(const XMLSize_t index) const = 0;
|
||||
|
||||
/**
|
||||
* Return the type of an attribute in the list (by position).
|
||||
*
|
||||
* The attribute type is one of the strings "CDATA", "ID",
|
||||
* "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
|
||||
* or "NOTATION" (always in upper case).
|
||||
*
|
||||
* If the parser has not read a declaration for the attribute,
|
||||
* or if the parser does not report attribute types, then it must
|
||||
* return the value "CDATA" as stated in the XML 1.0 Recommendation
|
||||
* (clause 3.3.3, "Attribute-Value Normalization").
|
||||
*
|
||||
* For an enumerated attribute that is not a notation, the
|
||||
* parser will report the type as "NMTOKEN".
|
||||
*
|
||||
* @param index The index of the attribute in the list (starting at 0).
|
||||
* @return The attribute type as a string, or
|
||||
* null if the index is out of range.
|
||||
* @see #getLength
|
||||
* @see #getType
|
||||
*/
|
||||
virtual const XMLCh* getType(const XMLSize_t index) const = 0;
|
||||
|
||||
/**
|
||||
* Return the value of an attribute in the list (by position).
|
||||
*
|
||||
* If the attribute value is a list of tokens (IDREFS,
|
||||
* ENTITIES, or NMTOKENS), the tokens will be concatenated
|
||||
* into a single string separated by whitespace.
|
||||
*
|
||||
* @param index The index of the attribute in the list (starting at 0).
|
||||
* @return The attribute value as a string, or
|
||||
* null if the index is out of range.
|
||||
* @see #getLength
|
||||
* @see #getValue
|
||||
*/
|
||||
virtual const XMLCh* getValue(const XMLSize_t index) const = 0;
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Name-based query.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Look up the index of an attribute by Namespace name. Non-standard
|
||||
* extension.
|
||||
*
|
||||
* @param uri The Namespace URI, or the empty string if
|
||||
* the name has no Namespace URI.
|
||||
* @param localPart The attribute's local name.
|
||||
* @param index Reference to the variable where the index will be stored.
|
||||
* @return true if the attribute is found and false otherwise.
|
||||
*/
|
||||
virtual bool getIndex(const XMLCh* const uri,
|
||||
const XMLCh* const localPart,
|
||||
XMLSize_t& index) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up the index of an attribute by Namespace name.
|
||||
*
|
||||
* @param uri The Namespace URI, or the empty string if
|
||||
* the name has no Namespace URI.
|
||||
* @param localPart The attribute's local name.
|
||||
* @return The index of the attribute, or -1 if it does not
|
||||
* appear in the list.
|
||||
*/
|
||||
virtual int getIndex(const XMLCh* const uri,
|
||||
const XMLCh* const localPart ) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up the index of an attribute by XML 1.0 qualified name.
|
||||
* Non-standard extension.
|
||||
*
|
||||
* @param qName The qualified (prefixed) name.
|
||||
* @param index Reference to the variable where the index will be stored.
|
||||
* @return true if the attribute is found and false otherwise.
|
||||
*/
|
||||
virtual bool getIndex(const XMLCh* const qName,
|
||||
XMLSize_t& index) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up the index of an attribute by XML 1.0 qualified name.
|
||||
*
|
||||
* @param qName The qualified (prefixed) name.
|
||||
* @return The index of the attribute, or -1 if it does not
|
||||
* appear in the list.
|
||||
*/
|
||||
virtual int getIndex(const XMLCh* const qName ) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up an attribute's type by Namespace name.
|
||||
*
|
||||
* <p>See #getType for a description of the possible types.</p>
|
||||
*
|
||||
* @param uri The Namespace URI, or the empty String if the
|
||||
* name has no Namespace URI.
|
||||
* @param localPart The local name of the attribute.
|
||||
* @return The attribute type as a string, or null if the
|
||||
* attribute is not in the list or if Namespace
|
||||
* processing is not being performed.
|
||||
*/
|
||||
virtual const XMLCh* getType(const XMLCh* const uri,
|
||||
const XMLCh* const localPart ) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up an attribute's type by XML 1.0 qualified name.
|
||||
*
|
||||
* <p>See #getType for a description of the possible types.</p>
|
||||
*
|
||||
* @param qName The XML 1.0 qualified name.
|
||||
* @return The attribute type as a string, or null if the
|
||||
* attribute is not in the list or if qualified names
|
||||
* are not available.
|
||||
*/
|
||||
virtual const XMLCh* getType(const XMLCh* const qName) const = 0;
|
||||
|
||||
/**
|
||||
* Look up an attribute's value by Namespace name.
|
||||
*
|
||||
* <p>See #getValue for a description of the possible values.</p>
|
||||
*
|
||||
* @param uri The Namespace URI, or the empty String if the
|
||||
* name has no Namespace URI.
|
||||
* @param localPart The local name of the attribute.
|
||||
* @return The attribute value as a string, or null if the
|
||||
* attribute is not in the list.
|
||||
*/
|
||||
virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const = 0 ;
|
||||
|
||||
/**
|
||||
* Look up an attribute's value by XML 1.0 qualified name.
|
||||
*
|
||||
* <p>See #getValue for a description of the possible values.</p>
|
||||
*
|
||||
* @param qName The XML 1.0 qualified name.
|
||||
* @return The attribute value as a string, or null if the
|
||||
* attribute is not in the list or if qualified names
|
||||
* are not available.
|
||||
*/
|
||||
virtual const XMLCh* getValue(const XMLCh* const qName) const = 0;
|
||||
|
||||
//@}
|
||||
|
||||
private :
|
||||
/* Constructors and operators */
|
||||
/* Copy constructor */
|
||||
Attributes(const Attributes&);
|
||||
/* Assignment operator */
|
||||
Attributes& operator=(const Attributes&);
|
||||
|
||||
};
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
340
project/jni/xerces/include/xercesc/sax2/ContentHandler.hpp
Normal file
340
project/jni/xerces/include/xercesc/sax2/ContentHandler.hpp
Normal file
@@ -0,0 +1,340 @@
|
||||
/*
|
||||
* 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: ContentHandler.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_CONTENTHANDLER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_CONTENTHANDLER_HPP
|
||||
|
||||
#include <xercesc/util/XercesDefs.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
class Attributes;
|
||||
class Locator;
|
||||
|
||||
/**
|
||||
* Receive notification of general document events.
|
||||
*
|
||||
* <p>This is the main interface that most SAX2 applications
|
||||
* implement: if the application needs to be informed of basic parsing
|
||||
* events, it implements this interface and registers an instance with
|
||||
* the SAX2 parser using the setDocumentHandler method. The parser
|
||||
* uses the instance to report basic document-related events like
|
||||
* the start and end of elements and character data.</p>
|
||||
*
|
||||
* <p>The order of events in this interface is very important, and
|
||||
* mirrors the order of information in the document itself. For
|
||||
* example, all of an element's content (character data, processing
|
||||
* instructions, and/or subelements) will appear, in order, between
|
||||
* the startElement event and the corresponding endElement event.</p>
|
||||
*
|
||||
* <p>Application writers who do not want to implement the entire
|
||||
* interface while can derive a class from Sax2HandlerBase, which implements
|
||||
* the default functionality; parser writers can instantiate
|
||||
* Sax2HandlerBase to obtain a default handler. The application can find
|
||||
* the location of any document event using the Locator interface
|
||||
* supplied by the Parser through the setDocumentLocator method.</p>
|
||||
*
|
||||
* @see Parser#setDocumentHandler
|
||||
* @see Locator#Locator
|
||||
* @see Sax2HandlerBase#Sax2HandlerBase
|
||||
*/
|
||||
|
||||
class SAX2_EXPORT ContentHandler
|
||||
{
|
||||
public:
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** Default constructor */
|
||||
ContentHandler()
|
||||
{
|
||||
}
|
||||
|
||||
/** Destructor */
|
||||
virtual ~ContentHandler()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
/** @name The virtual document handler interface */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Receive notification of character data.
|
||||
*
|
||||
* <p>The Parser will call this method to report each chunk of
|
||||
* character data. SAX parsers may return all contiguous character
|
||||
* data in a single chunk, or they may split it into several
|
||||
* chunks; however, all of the characters in any single event
|
||||
* must come from the same external entity, so that the Locator
|
||||
* provides useful information.</p>
|
||||
*
|
||||
* <p>The application must not attempt to read from the array
|
||||
* outside of the specified range.</p>
|
||||
*
|
||||
* <p>Note that some parsers will report whitespace using the
|
||||
* ignorableWhitespace() method rather than this one (validating
|
||||
* parsers must do so).</p>
|
||||
*
|
||||
* @param chars The characters from the XML document.
|
||||
* @param length The number of characters to read from the array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see #ignorableWhitespace
|
||||
* @see Locator#Locator
|
||||
*/
|
||||
virtual void characters
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of a document.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method only once, and it will
|
||||
* be the last method invoked during the parse. The parser shall
|
||||
* not invoke this method until it has either abandoned parsing
|
||||
* (because of an unrecoverable error) or reached the end of
|
||||
* input.</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endDocument () = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an element.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of every
|
||||
* element in the XML document; there will be a corresponding
|
||||
* startElement() event for every endElement() event (even when the
|
||||
* element is empty).</p>
|
||||
*
|
||||
* @param uri The URI of the associated namespace for this element
|
||||
* @param localname The local part of the element name
|
||||
* @param qname The QName of this element
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endElement
|
||||
(
|
||||
const XMLCh* const uri,
|
||||
const XMLCh* const localname,
|
||||
const XMLCh* const qname
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of ignorable whitespace in element content.
|
||||
*
|
||||
* <p>Validating Parsers must use this method to report each chunk
|
||||
* of ignorable whitespace (see the W3C XML 1.0 recommendation,
|
||||
* section 2.10): non-validating parsers may also use this method
|
||||
* if they are capable of parsing and using content models.</p>
|
||||
*
|
||||
* <p>SAX parsers may return all contiguous whitespace in a single
|
||||
* chunk, or they may split it into several chunks; however, all of
|
||||
* the characters in any single event must come from the same
|
||||
* external entity, so that the Locator provides useful
|
||||
* information.</p>
|
||||
*
|
||||
* <p>The application must not attempt to read from the array
|
||||
* outside of the specified range.</p>
|
||||
*
|
||||
* @param chars The characters from the XML document.
|
||||
* @param length The number of characters to read from the array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see #characters
|
||||
*/
|
||||
virtual void ignorableWhitespace
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of a processing instruction.
|
||||
*
|
||||
* <p>The Parser will invoke this method once for each processing
|
||||
* instruction found: note that processing instructions may occur
|
||||
* before or after the main document element.</p>
|
||||
*
|
||||
* <p>A SAX parser should never report an XML declaration (XML 1.0,
|
||||
* section 2.8) or a text declaration (XML 1.0, section 4.3.1)
|
||||
* using this method.</p>
|
||||
*
|
||||
* @param target The processing instruction target.
|
||||
* @param data The processing instruction data, or null if
|
||||
* none was supplied.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void processingInstruction
|
||||
(
|
||||
const XMLCh* const target
|
||||
, const XMLCh* const data
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive an object for locating the origin of SAX document events.
|
||||
*
|
||||
* SAX parsers are strongly encouraged (though not absolutely
|
||||
* required) to supply a locator: if it does so, it must supply
|
||||
* the locator to the application by invoking this method before
|
||||
* invoking any of the other methods in the DocumentHandler
|
||||
* interface.
|
||||
*
|
||||
* The locator allows the application to determine the end
|
||||
* position of any document-related event, even if the parser is
|
||||
* not reporting an error. Typically, the application will
|
||||
* use this information for reporting its own errors (such as
|
||||
* character content that does not match an application's
|
||||
* business rules). The information returned by the locator
|
||||
* is probably not sufficient for use with a search engine.
|
||||
*
|
||||
* Note that the locator will return correct information only
|
||||
* during the invocation of the events in this interface. The
|
||||
* application should not attempt to use it at any other time.
|
||||
*
|
||||
* @param locator An object that can return the location of
|
||||
* any SAX document event. The object is only
|
||||
* 'on loan' to the client code and they are not
|
||||
* to attempt to delete or modify it in any way!
|
||||
*
|
||||
* @see Locator#Locator
|
||||
*/
|
||||
virtual void setDocumentLocator(const Locator* const locator) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the beginning of a document.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method only once, before any
|
||||
* other methods in this interface or in DTDHandler (except for
|
||||
* setDocumentLocator).</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startDocument() = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the beginning of an element.
|
||||
*
|
||||
* <p>The Parser will invoke this method at the beginning of every
|
||||
* element in the XML document; there will be a corresponding
|
||||
* endElement() event for every startElement() event (even when the
|
||||
* element is empty). All of the element's content will be
|
||||
* reported, in order, before the corresponding endElement()
|
||||
* event.</p>
|
||||
*
|
||||
* <p>Note that the attribute list provided will
|
||||
* contain only attributes with explicit values (specified or
|
||||
* defaulted): \#IMPLIED attributes will be omitted.</p>
|
||||
*
|
||||
* @param uri The URI of the associated namespace for this element
|
||||
* @param localname The local part of the element name
|
||||
* @param qname The QName of this element
|
||||
* @param attrs The attributes attached to the element, if any.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see #endElement
|
||||
* @see Attributes#Attributes
|
||||
*/
|
||||
virtual void startElement
|
||||
(
|
||||
const XMLCh* const uri,
|
||||
const XMLCh* const localname,
|
||||
const XMLCh* const qname,
|
||||
const Attributes& attrs
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the start of an namespace prefix mapping.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the start of
|
||||
* each namespace prefix mapping.</p>
|
||||
*
|
||||
* @param prefix The namespace prefix used
|
||||
* @param uri The namespace URI used.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startPrefixMapping
|
||||
(
|
||||
const XMLCh* const prefix,
|
||||
const XMLCh* const uri
|
||||
) = 0 ;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an namespace prefix mapping.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the end of
|
||||
* each namespace prefix mapping.</p>
|
||||
*
|
||||
* @param prefix The namespace prefix used
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endPrefixMapping
|
||||
(
|
||||
const XMLCh* const prefix
|
||||
) = 0 ;
|
||||
|
||||
/**
|
||||
* Receive notification of a skipped entity
|
||||
*
|
||||
* <p>The parser will invoke this method once for each entity
|
||||
* skipped. All processors may skip external entities,
|
||||
* depending on the values of the features:<br>
|
||||
* http://xml.org/sax/features/external-general-entities<br>
|
||||
* http://xml.org/sax/features/external-parameter-entities</p>
|
||||
*
|
||||
* <p>Note: Xerces (specifically) never skips any entities, regardless
|
||||
* of the above features. This function is never called in the
|
||||
* Xerces implementation of SAX2.</p>
|
||||
*
|
||||
* <p>Introduced with SAX2</p>
|
||||
*
|
||||
* @param name The name of the skipped entity. If it is a parameter entity,
|
||||
* the name will begin with %, and if it is the external DTD subset,
|
||||
* it will be the string [dtd].
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void skippedEntity
|
||||
(
|
||||
const XMLCh* const name
|
||||
) = 0 ;
|
||||
|
||||
//@}
|
||||
private :
|
||||
/* Unimplemented Constructors and operators */
|
||||
/* Copy constructor */
|
||||
ContentHandler(const ContentHandler&);
|
||||
/** Assignment operator */
|
||||
ContentHandler& operator=(const ContentHandler&);
|
||||
};
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
163
project/jni/xerces/include/xercesc/sax2/DeclHandler.hpp
Normal file
163
project/jni/xerces/include/xercesc/sax2/DeclHandler.hpp
Normal file
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* 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: DeclHandler.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_DECLHANDLER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_DECLHANDLER_HPP
|
||||
|
||||
#include <xercesc/util/XercesDefs.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
/**
|
||||
* Receive notification of DTD declaration events.
|
||||
*
|
||||
* <p>This is an optional extension handler for SAX2 to provide more
|
||||
* complete information about DTD declarations in an XML document.
|
||||
* XML readers are not required to recognize this handler, and it is not
|
||||
* part of core-only SAX2 distributions.</p>
|
||||
*
|
||||
* <p>Note that data-related DTD declarations (unparsed entities and
|
||||
* notations) are already reported through the DTDHandler interface.</p>
|
||||
*
|
||||
* <p>If you are using the declaration handler together with a lexical
|
||||
* handler, all of the events will occur between the startDTD and the endDTD
|
||||
* events.</p>
|
||||
*
|
||||
* @see SAX2XMLReader#setLexicalHandler
|
||||
* @see SAX2XMLReader#setDeclarationHandler
|
||||
*/
|
||||
|
||||
class SAX2_EXPORT DeclHandler
|
||||
{
|
||||
public:
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** Default constructor */
|
||||
DeclHandler()
|
||||
{
|
||||
}
|
||||
|
||||
/** Destructor */
|
||||
virtual ~DeclHandler()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
/** @name The virtual declaration handler interface */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Report an element type declaration.
|
||||
*
|
||||
* <p>The content model will consist of the string "EMPTY", the string
|
||||
* "ANY", or a parenthesised group, optionally followed by an occurrence
|
||||
* indicator. The model will be normalized so that all parameter entities
|
||||
* are fully resolved and all whitespace is removed,and will include the
|
||||
* enclosing parentheses. Other normalization (such as removing redundant
|
||||
* parentheses or simplifying occurrence indicators) is at the discretion
|
||||
* of the parser.</p>
|
||||
*
|
||||
* @param name The element type name.
|
||||
* @param model The content model as a normalized string.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void elementDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const model
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Report an attribute type declaration.
|
||||
*
|
||||
* <p>The Parser will call this method to report each occurrence of
|
||||
* a comment in the XML document.</p>
|
||||
*
|
||||
* <p>The application must not attempt to read from the array
|
||||
* outside of the specified range.</p>
|
||||
*
|
||||
* @param eName The name of the associated element.
|
||||
* @param aName The name of the attribute.
|
||||
* @param type A string representing the attribute type.
|
||||
* @param mode A string representing the attribute defaulting mode ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies.
|
||||
* @param value A string representing the attribute's default value, or null if there is none.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void attributeDecl
|
||||
(
|
||||
const XMLCh* const eName
|
||||
, const XMLCh* const aName
|
||||
, const XMLCh* const type
|
||||
, const XMLCh* const mode
|
||||
, const XMLCh* const value
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Report an internal entity declaration.
|
||||
*
|
||||
* <p>Only the effective (first) declaration for each entity will be
|
||||
* reported. All parameter entities in the value will be expanded, but
|
||||
* general entities will not.</p>
|
||||
*
|
||||
* @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
|
||||
* @param value The replacement text of the entity.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void internalEntityDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const value
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Report a parsed external entity declaration.
|
||||
*
|
||||
* <p>Only the effective (first) declaration for each entity will
|
||||
* be reported.</p>
|
||||
*
|
||||
* @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
|
||||
* @param publicId The The declared public identifier of the entity, or null if none was declared.
|
||||
* @param systemId The declared system identifier of the entity.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void externalEntityDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
) = 0;
|
||||
|
||||
//@}
|
||||
private :
|
||||
/* Unimplemented Constructors and operators */
|
||||
/* Copy constructor */
|
||||
DeclHandler(const DeclHandler&);
|
||||
/** Assignment operator */
|
||||
DeclHandler& operator=(const DeclHandler&);
|
||||
};
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
806
project/jni/xerces/include/xercesc/sax2/DefaultHandler.hpp
Normal file
806
project/jni/xerces/include/xercesc/sax2/DefaultHandler.hpp
Normal file
@@ -0,0 +1,806 @@
|
||||
/*
|
||||
* 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: DefaultHandler.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_DEFAULTHANDLER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_DEFAULTHANDLER_HPP
|
||||
|
||||
#include <xercesc/sax2/ContentHandler.hpp>
|
||||
#include <xercesc/sax2/LexicalHandler.hpp>
|
||||
#include <xercesc/sax2/DeclHandler.hpp>
|
||||
#include <xercesc/sax/DTDHandler.hpp>
|
||||
#include <xercesc/sax/EntityResolver.hpp>
|
||||
#include <xercesc/sax/ErrorHandler.hpp>
|
||||
#include <xercesc/sax/SAXParseException.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
class Locator;
|
||||
class Attributes;
|
||||
|
||||
/**
|
||||
* Default base class for SAX2 handlers.
|
||||
*
|
||||
* <p>This class implements the default behaviour for SAX2
|
||||
* interfaces: EntityResolver, DTDHandler, ContentHandler,
|
||||
* ErrorHandler, LexicalHandler, and DeclHandler.</p>
|
||||
*
|
||||
* <p>Application writers can extend this class when they need to
|
||||
* implement only part of an interface; parser writers can
|
||||
* instantiate this class to provide default handlers when the
|
||||
* application has not supplied its own.</p>
|
||||
*
|
||||
* <p>Note that the use of this class is optional.</p>
|
||||
*
|
||||
* @see EntityResolver#EntityResolver
|
||||
* @see DTDHandler#DTDHandler
|
||||
* @see ContentHandler#ContentHandler
|
||||
* @see ErrorHandler#ErrorHandler
|
||||
* @see LexicalHandler#LexicalHandler
|
||||
* @see DeclHandler#DeclHandler
|
||||
*/
|
||||
|
||||
class SAX2_EXPORT DefaultHandler :
|
||||
|
||||
public EntityResolver,
|
||||
public DTDHandler,
|
||||
public ContentHandler,
|
||||
public ErrorHandler,
|
||||
public LexicalHandler,
|
||||
public DeclHandler
|
||||
{
|
||||
public:
|
||||
/** @name Default handlers for the DocumentHandler interface */
|
||||
//@{
|
||||
/**
|
||||
* Receive notification of character data inside an element.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method to take specific actions for each chunk of character data
|
||||
* (such as adding the data to a node or buffer, or printing it to
|
||||
* a file).</p>
|
||||
*
|
||||
* @param chars The characters.
|
||||
* @param length The number of characters to use from the
|
||||
* character array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#characters
|
||||
*/
|
||||
virtual void characters
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of the end of the document.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the beginning
|
||||
* of a document (such as finalising a tree or closing an output
|
||||
* file).</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#endDocument
|
||||
*/
|
||||
virtual void endDocument();
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an element.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the end of
|
||||
* each element (such as finalising a tree node or writing
|
||||
* output to a file).</p>
|
||||
*
|
||||
* @param uri The URI of the associated namespace for this element
|
||||
* @param localname The local part of the element name
|
||||
* @param qname The QName of this element
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#endElement
|
||||
*/
|
||||
virtual void endElement
|
||||
(
|
||||
const XMLCh* const uri,
|
||||
const XMLCh* const localname,
|
||||
const XMLCh* const qname
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of ignorable whitespace in element content.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method to take specific actions for each chunk of ignorable
|
||||
* whitespace (such as adding data to a node or buffer, or printing
|
||||
* it to a file).</p>
|
||||
*
|
||||
* @param chars The whitespace characters.
|
||||
* @param length The number of characters to use from the
|
||||
* character array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#ignorableWhitespace
|
||||
*/
|
||||
virtual void ignorableWhitespace
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of a processing instruction.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions for each
|
||||
* processing instruction, such as setting status variables or
|
||||
* invoking other methods.</p>
|
||||
*
|
||||
* @param target The processing instruction target.
|
||||
* @param data The processing instruction data, or null if
|
||||
* none is supplied.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#processingInstruction
|
||||
*/
|
||||
virtual void processingInstruction
|
||||
(
|
||||
const XMLCh* const target
|
||||
, const XMLCh* const data
|
||||
);
|
||||
|
||||
/**
|
||||
* Reset the Document object on its reuse
|
||||
*
|
||||
* @see DocumentHandler#resetDocument
|
||||
*/
|
||||
virtual void resetDocument();
|
||||
//@}
|
||||
|
||||
/** @name Default implementation of DocumentHandler interface */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Receive a Locator object for document events.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass if they wish to store the locator for use
|
||||
* with other document events.</p>
|
||||
*
|
||||
* @param locator A locator for all SAX document events.
|
||||
* @see DocumentHandler#setDocumentLocator
|
||||
* @see Locator
|
||||
*/
|
||||
virtual void setDocumentLocator(const Locator* const locator);
|
||||
|
||||
/**
|
||||
* Receive notification of the beginning of the document.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the beginning
|
||||
* of a document (such as allocating the root node of a tree or
|
||||
* creating an output file).</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#startDocument
|
||||
*/
|
||||
virtual void startDocument();
|
||||
|
||||
/**
|
||||
* Receive notification of the start of an element.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the start of
|
||||
* each element (such as allocating a new tree node or writing
|
||||
* output to a file).</p>
|
||||
*
|
||||
* @param uri The URI of the associated namespace for this element
|
||||
* @param localname the local part of the element name
|
||||
* @param qname the QName of this element
|
||||
* @param attrs The specified or defaulted attributes.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#startElement
|
||||
*/
|
||||
virtual void startElement
|
||||
(
|
||||
const XMLCh* const uri,
|
||||
const XMLCh* const localname,
|
||||
const XMLCh* const qname
|
||||
, const Attributes& attrs
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of the start of an namespace prefix mapping.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the start of
|
||||
* each namespace prefix mapping.</p>
|
||||
*
|
||||
* @param prefix The namespace prefix used
|
||||
* @param uri The namespace URI used.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#startPrefixMapping
|
||||
*/
|
||||
virtual void startPrefixMapping
|
||||
(
|
||||
const XMLCh* const prefix,
|
||||
const XMLCh* const uri
|
||||
) ;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an namespace prefix mapping.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to take specific actions at the end of
|
||||
* each namespace prefix mapping.</p>
|
||||
*
|
||||
* @param prefix The namespace prefix used
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see DocumentHandler#endPrefixMapping
|
||||
*/
|
||||
virtual void endPrefixMapping
|
||||
(
|
||||
const XMLCh* const prefix
|
||||
) ;
|
||||
|
||||
/**
|
||||
* Receive notification of a skipped entity
|
||||
*
|
||||
* <p>The parser will invoke this method once for each entity
|
||||
* skipped. All processors may skip external entities,
|
||||
* depending on the values of the features:<br>
|
||||
* http://xml.org/sax/features/external-general-entities<br>
|
||||
* http://xml.org/sax/features/external-parameter-entities</p>
|
||||
*
|
||||
* <p>Introduced with SAX2</p>
|
||||
*
|
||||
* @param name The name of the skipped entity. If it is a parameter entity,
|
||||
* the name will begin with %, and if it is the external DTD subset,
|
||||
* it will be the string [dtd].
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void skippedEntity
|
||||
(
|
||||
const XMLCh* const name
|
||||
) ;
|
||||
|
||||
//@}
|
||||
|
||||
/** @name Default implementation of the EntityResolver interface. */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Resolve an external entity.
|
||||
*
|
||||
* <p>Always return null, so that the parser will use the system
|
||||
* identifier provided in the XML document. This method implements
|
||||
* the SAX default behaviour: application writers can override it
|
||||
* in a subclass to do special translations such as catalog lookups
|
||||
* or URI redirection.</p>
|
||||
*
|
||||
* @param publicId The public identifier, or null if none is
|
||||
* available.
|
||||
* @param systemId The system identifier provided in the XML
|
||||
* document.
|
||||
* @return The new input source, or null to require the
|
||||
* default behaviour.
|
||||
* The returned InputSource is owned by the parser which is
|
||||
* responsible to clean up the memory.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see EntityResolver#resolveEntity
|
||||
*/
|
||||
virtual InputSource* resolveEntity
|
||||
(
|
||||
const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
);
|
||||
|
||||
//@}
|
||||
|
||||
/** @name Default implementation of the ErrorHandler interface */
|
||||
//@{
|
||||
/**
|
||||
* Receive notification of a recoverable parser error.
|
||||
*
|
||||
* <p>The default implementation does nothing. Application writers
|
||||
* may override this method in a subclass to take specific actions
|
||||
* for each error, such as inserting the message in a log file or
|
||||
* printing it to the console.</p>
|
||||
*
|
||||
* @param exc The warning information encoded as an exception.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see ErrorHandler#warning
|
||||
* @see SAXParseException#SAXParseException
|
||||
*/
|
||||
virtual void error(const SAXParseException& exc);
|
||||
|
||||
/**
|
||||
* Report a fatal XML parsing error.
|
||||
*
|
||||
* <p>The default implementation throws a SAXParseException.
|
||||
* Application writers may override this method in a subclass if
|
||||
* they need to take specific actions for each fatal error (such as
|
||||
* collecting all of the errors into a single report): in any case,
|
||||
* the application must stop all regular processing when this
|
||||
* method is invoked, since the document is no longer reliable, and
|
||||
* the parser may no longer report parsing events.</p>
|
||||
*
|
||||
* @param exc The error information encoded as an exception.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see ErrorHandler#fatalError
|
||||
* @see SAXParseException#SAXParseException
|
||||
*/
|
||||
virtual void fatalError(const SAXParseException& exc);
|
||||
|
||||
/**
|
||||
* Receive notification of a parser warning.
|
||||
*
|
||||
* <p>The default implementation does nothing. Application writers
|
||||
* may override this method in a subclass to take specific actions
|
||||
* for each warning, such as inserting the message in a log file or
|
||||
* printing it to the console.</p>
|
||||
*
|
||||
* @param exc The warning information encoded as an exception.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @see ErrorHandler#warning
|
||||
* @see SAXParseException#SAXParseException
|
||||
*/
|
||||
virtual void warning(const SAXParseException& exc);
|
||||
|
||||
/**
|
||||
* Reset the Error handler object on its reuse
|
||||
*
|
||||
* @see ErrorHandler#resetErrors
|
||||
*/
|
||||
virtual void resetErrors();
|
||||
|
||||
//@}
|
||||
|
||||
|
||||
/** @name Default implementation of DTDHandler interface. */
|
||||
//@{
|
||||
|
||||
/**
|
||||
* Receive notification of a notation declaration.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass if they wish to keep track of the notations
|
||||
* declared in a document.</p>
|
||||
*
|
||||
* @param name The notation name.
|
||||
* @param publicId The notation public identifier, or null if not
|
||||
* available.
|
||||
* @param systemId The notation system identifier.
|
||||
* @see DTDHandler#notationDecl
|
||||
*/
|
||||
virtual void notationDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
);
|
||||
|
||||
/**
|
||||
* Reset the DTD object on its reuse
|
||||
*
|
||||
* @see DTDHandler#resetDocType
|
||||
*/
|
||||
virtual void resetDocType();
|
||||
|
||||
/**
|
||||
* Receive notification of an unparsed entity declaration.
|
||||
*
|
||||
* <p>By default, do nothing. Application writers may override this
|
||||
* method in a subclass to keep track of the unparsed entities
|
||||
* declared in a document.</p>
|
||||
*
|
||||
* @param name The entity name.
|
||||
* @param publicId The entity public identifier, or null if not
|
||||
* available.
|
||||
* @param systemId The entity system identifier.
|
||||
* @param notationName The name of the associated notation.
|
||||
* @see DTDHandler#unparsedEntityDecl
|
||||
*/
|
||||
virtual void unparsedEntityDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
, const XMLCh* const notationName
|
||||
);
|
||||
//@}
|
||||
|
||||
|
||||
/** @name Default implementation of LexicalHandler interface. */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Receive notification of comments.
|
||||
*
|
||||
* <p>The Parser will call this method to report each occurrence of
|
||||
* a comment in the XML document.</p>
|
||||
*
|
||||
* <p>The application must not attempt to read from the array
|
||||
* outside of the specified range.</p>
|
||||
*
|
||||
* @param chars The characters from the XML document.
|
||||
* @param length The number of characters to read from the array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void comment
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of the end of a CDATA section.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of
|
||||
* each CDATA parsed.</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endCDATA ();
|
||||
|
||||
/**
|
||||
* Receive notification of the end of the DTD declarations.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of the
|
||||
* DTD</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endDTD ();
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an entity.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of an
|
||||
* entity</p>
|
||||
*
|
||||
* @param name The name of the entity that is ending.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endEntity (const XMLCh* const name);
|
||||
|
||||
/**
|
||||
* Receive notification of the start of a CDATA section.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of
|
||||
* each CDATA parsed.</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startCDATA ();
|
||||
|
||||
/**
|
||||
* Receive notification of the start of the DTD declarations.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of the
|
||||
* DTD</p>
|
||||
*
|
||||
* @param name The document type name.
|
||||
* @param publicId The declared public identifier for the external DTD subset, or null if none was declared.
|
||||
* @param systemId The declared system identifier for the external DTD subset, or null if none was declared.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startDTD
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
);
|
||||
|
||||
/**
|
||||
* Receive notification of the start of an entity.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of an
|
||||
* entity</p>
|
||||
*
|
||||
* @param name The name of the entity that is starting.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startEntity (const XMLCh* const name);
|
||||
|
||||
//@}
|
||||
|
||||
/** @name Default implementation of DeclHandler interface. */
|
||||
|
||||
//@{
|
||||
|
||||
/**
|
||||
* Report an element type declaration.
|
||||
*
|
||||
* <p>The content model will consist of the string "EMPTY", the string
|
||||
* "ANY", or a parenthesised group, optionally followed by an occurrence
|
||||
* indicator. The model will be normalized so that all parameter entities
|
||||
* are fully resolved and all whitespace is removed,and will include the
|
||||
* enclosing parentheses. Other normalization (such as removing redundant
|
||||
* parentheses or simplifying occurrence indicators) is at the discretion
|
||||
* of the parser.</p>
|
||||
*
|
||||
* @param name The element type name.
|
||||
* @param model The content model as a normalized string.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void elementDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const model
|
||||
);
|
||||
|
||||
/**
|
||||
* Report an attribute type declaration.
|
||||
*
|
||||
* <p>Only the effective (first) declaration for an attribute will
|
||||
* be reported.</p>
|
||||
*
|
||||
* @param eName The name of the associated element.
|
||||
* @param aName The name of the attribute.
|
||||
* @param type A string representing the attribute type.
|
||||
* @param mode A string representing the attribute defaulting mode ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies.
|
||||
* @param value A string representing the attribute's default value, or null if there is none.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void attributeDecl
|
||||
(
|
||||
const XMLCh* const eName
|
||||
, const XMLCh* const aName
|
||||
, const XMLCh* const type
|
||||
, const XMLCh* const mode
|
||||
, const XMLCh* const value
|
||||
);
|
||||
|
||||
/**
|
||||
* Report an internal entity declaration.
|
||||
*
|
||||
* <p>Only the effective (first) declaration for each entity will be
|
||||
* reported. All parameter entities in the value will be expanded, but
|
||||
* general entities will not.</p>
|
||||
*
|
||||
* @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
|
||||
* @param value The replacement text of the entity.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void internalEntityDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const value
|
||||
);
|
||||
|
||||
/**
|
||||
* Report a parsed external entity declaration.
|
||||
*
|
||||
* <p>Only the effective (first) declaration for each entity will
|
||||
* be reported.</p>
|
||||
*
|
||||
* @param name The name of the entity. If it is a parameter entity, the name will begin with '%'.
|
||||
* @param publicId The The declared public identifier of the entity, or null if none was declared.
|
||||
* @param systemId The declared system identifier of the entity.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void externalEntityDecl
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
);
|
||||
|
||||
//@}
|
||||
|
||||
DefaultHandler() {};
|
||||
virtual ~DefaultHandler() {};
|
||||
|
||||
private:
|
||||
// -----------------------------------------------------------------------
|
||||
// Unimplemented constructors and operators
|
||||
// -----------------------------------------------------------------------
|
||||
DefaultHandler(const DefaultHandler&);
|
||||
DefaultHandler& operator=(const DefaultHandler&);
|
||||
};
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// HandlerBase: Inline default implementations
|
||||
// ---------------------------------------------------------------------------
|
||||
inline void DefaultHandler::characters(const XMLCh* const
|
||||
,const XMLSize_t)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endDocument()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endElement(const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::error(const SAXParseException&)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::fatalError(const SAXParseException& exc)
|
||||
{
|
||||
throw exc;
|
||||
}
|
||||
|
||||
inline void
|
||||
DefaultHandler::ignorableWhitespace( const XMLCh* const
|
||||
, const XMLSize_t)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::notationDecl( const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void
|
||||
DefaultHandler::processingInstruction( const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::resetErrors()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::resetDocument()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::resetDocType()
|
||||
{
|
||||
}
|
||||
|
||||
inline InputSource*
|
||||
DefaultHandler::resolveEntity( const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline void
|
||||
DefaultHandler::unparsedEntityDecl(const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::setDocumentLocator(const Locator* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::startDocument()
|
||||
{
|
||||
}
|
||||
|
||||
inline void
|
||||
DefaultHandler::startElement( const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const Attributes&
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::warning(const SAXParseException&)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::startPrefixMapping ( const XMLCh* const
|
||||
,const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endPrefixMapping ( const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::skippedEntity ( const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::comment( const XMLCh* const
|
||||
, const XMLSize_t)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endCDATA ()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endDTD ()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::endEntity (const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::startCDATA ()
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::startDTD( const XMLCh* const
|
||||
, const XMLCh* const
|
||||
, const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::startEntity (const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::attributeDecl(const XMLCh* const,
|
||||
const XMLCh* const,
|
||||
const XMLCh* const,
|
||||
const XMLCh* const,
|
||||
const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::elementDecl(const XMLCh* const,
|
||||
const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::externalEntityDecl(const XMLCh* const,
|
||||
const XMLCh* const,
|
||||
const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
inline void DefaultHandler::internalEntityDecl(const XMLCh* const,
|
||||
const XMLCh* const)
|
||||
{
|
||||
}
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif // ! DEFAULTHANDLER_HPP
|
||||
172
project/jni/xerces/include/xercesc/sax2/LexicalHandler.hpp
Normal file
172
project/jni/xerces/include/xercesc/sax2/LexicalHandler.hpp
Normal file
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
* 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: LexicalHandler.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_LEXICALHANDLER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_LEXICALHANDLER_HPP
|
||||
|
||||
#include <xercesc/util/XercesDefs.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
/**
|
||||
* Receive notification of lexical events.
|
||||
*
|
||||
* <p>This is an extension handler for that provides lexical information
|
||||
* about an XML document. It does not provide information about document
|
||||
* content. For those events, an application must register an instance of
|
||||
* a ContentHandler.</p>
|
||||
*
|
||||
* <p>The order of events in this interface is very important, and
|
||||
* mirrors the order of information in the document itself. For
|
||||
* example, startDTD() and endDTD() events will occur before the
|
||||
* first element in the document.</p>
|
||||
*
|
||||
* @see SAX2XMLReader#setLexicalHandler
|
||||
* @see SAX2XMLReader#setContentHandler
|
||||
*/
|
||||
|
||||
class SAX2_EXPORT LexicalHandler
|
||||
{
|
||||
public:
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** Default constructor */
|
||||
LexicalHandler()
|
||||
{
|
||||
}
|
||||
|
||||
/** Destructor */
|
||||
virtual ~LexicalHandler()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
/** @name The virtual document handler interface */
|
||||
|
||||
//@{
|
||||
/**
|
||||
* Receive notification of comments.
|
||||
*
|
||||
* <p>The Parser will call this method to report each occurrence of
|
||||
* a comment in the XML document.</p>
|
||||
*
|
||||
* <p>The application must not attempt to read from the array
|
||||
* outside of the specified range.</p>
|
||||
*
|
||||
* @param chars The characters from the XML document.
|
||||
* @param length The number of characters to read from the array.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void comment
|
||||
(
|
||||
const XMLCh* const chars
|
||||
, const XMLSize_t length
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of a CDATA section.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of
|
||||
* each CDATA parsed.</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endCDATA () = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of the DTD declarations.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of the
|
||||
* DTD</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endDTD () = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the end of an entity.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the end of an
|
||||
* entity</p>
|
||||
*
|
||||
* @param name The name of the entity that is ending.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void endEntity (const XMLCh* const name) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the start of a CDATA section.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of
|
||||
* each CDATA parsed.</p>
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startCDATA () = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the start of the DTD declarations.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of the
|
||||
* DTD</p>
|
||||
*
|
||||
* @param name The document type name.
|
||||
* @param publicId The declared public identifier for the external DTD subset, or null if none was declared.
|
||||
* @param systemId The declared system identifier for the external DTD subset, or null if none was declared.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startDTD
|
||||
(
|
||||
const XMLCh* const name
|
||||
, const XMLCh* const publicId
|
||||
, const XMLCh* const systemId
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Receive notification of the start of an entity.
|
||||
*
|
||||
* <p>The SAX parser will invoke this method at the start of an
|
||||
* entity</p>
|
||||
*
|
||||
* @param name The name of the entity that is starting.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
*/
|
||||
virtual void startEntity (const XMLCh* const name) = 0;
|
||||
|
||||
//@}
|
||||
private :
|
||||
/* Unimplemented Constructors and operators */
|
||||
/* Copy constructor */
|
||||
LexicalHandler(const LexicalHandler&);
|
||||
/** Assignment operator */
|
||||
LexicalHandler& operator=(const LexicalHandler&);
|
||||
};
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
82
project/jni/xerces/include/xercesc/sax2/SAX2XMLFilter.hpp
Normal file
82
project/jni/xerces/include/xercesc/sax2/SAX2XMLFilter.hpp
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* 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: SAX2XMLFilter.hpp 527149 2007-04-10 14:56:39Z amassari $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_SAX2XMLFILTER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_SAX2XMLFILTER_HPP
|
||||
|
||||
#include <xercesc/sax2/SAX2XMLReader.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
class SAX2_EXPORT SAX2XMLFilter : public SAX2XMLReader
|
||||
{
|
||||
public:
|
||||
// -----------------------------------------------------------------------
|
||||
// Constructors and Destructor
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** The default constructor */
|
||||
SAX2XMLFilter()
|
||||
{
|
||||
}
|
||||
/** The destructor */
|
||||
virtual ~SAX2XMLFilter()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// The XMLFilter interface
|
||||
//-----------------------------------------------------------------------
|
||||
/** @name Implementation of SAX 2.0 XMLFilter interface's. */
|
||||
//@{
|
||||
|
||||
/**
|
||||
* This method returns the parent XMLReader object.
|
||||
*
|
||||
* @return A pointer to the parent XMLReader object.
|
||||
*/
|
||||
virtual SAX2XMLReader* getParent() const = 0 ;
|
||||
|
||||
/**
|
||||
* Sets the parent XMLReader object; parse requests will be forwarded to this
|
||||
* object, and callback notifications coming from it will be postprocessed
|
||||
*
|
||||
* @param parent The new XMLReader parent.
|
||||
* @see SAX2XMLReader#SAX2XMLReader
|
||||
*/
|
||||
virtual void setParent(SAX2XMLReader* parent) = 0;
|
||||
|
||||
//@}
|
||||
|
||||
private :
|
||||
/* The copy constructor, you cannot call this directly */
|
||||
SAX2XMLFilter(const SAX2XMLFilter&);
|
||||
|
||||
/* The assignment operator, you cannot call this directly */
|
||||
SAX2XMLFilter& operator=(const SAX2XMLFilter&);
|
||||
|
||||
};
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
893
project/jni/xerces/include/xercesc/sax2/SAX2XMLReader.hpp
Normal file
893
project/jni/xerces/include/xercesc/sax2/SAX2XMLReader.hpp
Normal file
@@ -0,0 +1,893 @@
|
||||
/*
|
||||
* 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: SAX2XMLReader.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_SAX2XMLREADER_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_SAX2XMLREADER_HPP
|
||||
|
||||
#include <xercesc/util/XercesDefs.hpp>
|
||||
#include <xercesc/util/XMLUniDefs.hpp>
|
||||
#include <xercesc/framework/XMLValidator.hpp>
|
||||
#include <xercesc/framework/XMLPScanToken.hpp>
|
||||
#include <xercesc/validators/common/Grammar.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
class ContentHandler ;
|
||||
class DTDHandler;
|
||||
class EntityResolver;
|
||||
class ErrorHandler;
|
||||
class InputSource;
|
||||
class LexicalHandler;
|
||||
class DeclHandler;
|
||||
class XMLDocumentHandler;
|
||||
|
||||
class SAX2_EXPORT SAX2XMLReader
|
||||
{
|
||||
public:
|
||||
// -----------------------------------------------------------------------
|
||||
// Class types
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Public constants */
|
||||
//@{
|
||||
|
||||
/** ValScheme enum used in setValidationScheme
|
||||
* Val_Never: Do not report validation errors.
|
||||
* Val_Always: The parser will always report validation errors.
|
||||
* Val_Auto: The parser will report validation errors only if a grammar is specified.
|
||||
*
|
||||
* The schemes map to these feature values:
|
||||
* Val_Never:
|
||||
* parser->setFeature(XMLUni::fgSAX2CoreValidation, false);
|
||||
*
|
||||
* Val_Always:
|
||||
* parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
|
||||
* parser->setFeature(XMLUni::fgXercesDynamic, false);
|
||||
*
|
||||
* Val_Auto:
|
||||
* parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
|
||||
* parser->setFeature(XMLUni::fgXercesDynamic, true);
|
||||
*
|
||||
* @see #setFeature
|
||||
*/
|
||||
enum ValSchemes
|
||||
{
|
||||
Val_Never
|
||||
, Val_Always
|
||||
, Val_Auto
|
||||
};
|
||||
//@}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Constructors and Destructor
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Constructors and Destructor */
|
||||
//@{
|
||||
/** The default constructor */
|
||||
SAX2XMLReader()
|
||||
{
|
||||
}
|
||||
/** The destructor */
|
||||
virtual ~SAX2XMLReader()
|
||||
{
|
||||
}
|
||||
//@}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// The XMLReader interface
|
||||
//-----------------------------------------------------------------------
|
||||
/** @name Implementation of SAX 2.0 XMLReader interface's. */
|
||||
//@{
|
||||
|
||||
/**
|
||||
* This method returns the installed content handler.
|
||||
*
|
||||
* @return A pointer to the installed content handler object.
|
||||
*/
|
||||
virtual ContentHandler* getContentHandler() const = 0 ;
|
||||
|
||||
/**
|
||||
* This method returns the installed DTD handler.
|
||||
*
|
||||
* @return A pointer to the installed DTD handler object.
|
||||
*/
|
||||
virtual DTDHandler* getDTDHandler() const = 0;
|
||||
|
||||
/**
|
||||
* This method returns the installed entity resolver.
|
||||
*
|
||||
* @return A pointer to the installed entity resolver object.
|
||||
*/
|
||||
virtual EntityResolver* getEntityResolver() const = 0 ;
|
||||
|
||||
/**
|
||||
* This method returns the installed error handler.
|
||||
*
|
||||
* @return A pointer to the installed error handler object.
|
||||
*/
|
||||
virtual ErrorHandler* getErrorHandler() const = 0 ;
|
||||
|
||||
/**
|
||||
* Query the current state of any feature in a SAX2 XMLReader.
|
||||
*
|
||||
* @param name The unique identifier (URI) of the feature being set.
|
||||
* @return The current state of the feature.
|
||||
* @exception SAXNotRecognizedException If the requested feature is not known.
|
||||
*/
|
||||
virtual bool getFeature(const XMLCh* const name) const = 0;
|
||||
|
||||
/**
|
||||
* Query the current value of a property in a SAX2 XMLReader.
|
||||
*
|
||||
* The parser owns the returned pointer. The memory allocated for
|
||||
* the returned pointer will be destroyed when the parser is deleted.
|
||||
*
|
||||
* To ensure accessibility of the returned information after the parser
|
||||
* is deleted, callers need to copy and store the returned information
|
||||
* somewhere else; otherwise you may get unexpected result. Since the returned
|
||||
* pointer is a generic void pointer, see the SAX2 Programming Guide to learn
|
||||
* exactly what type of property value each property returns for replication.
|
||||
*
|
||||
* @param name The unique identifier (URI) of the property being set.
|
||||
* @return The current value of the property. The pointer spans the same
|
||||
* life-time as the parser. A null pointer is returned if nothing
|
||||
* was specified externally.
|
||||
* @exception SAXNotRecognizedException If the requested property is not known.
|
||||
*/
|
||||
virtual void* getProperty(const XMLCh* const name) const = 0 ;
|
||||
|
||||
/**
|
||||
* Allow an application to register a document event handler.
|
||||
*
|
||||
* If the application does not register a document handler, all
|
||||
* document events reported by the SAX parser will be silently
|
||||
* ignored (this is the default behaviour implemented by
|
||||
* HandlerBase).
|
||||
*
|
||||
* Applications may register a new or different handler in the
|
||||
* middle of a parse, and the SAX parser must begin using the new
|
||||
* handler immediately.
|
||||
*
|
||||
* @param handler The document handler.
|
||||
* @see ContentHandler#ContentHandler
|
||||
* @see HandlerBase#HandlerBase
|
||||
*/
|
||||
virtual void setContentHandler(ContentHandler* const handler) = 0;
|
||||
|
||||
/**
|
||||
* Allow an application to register a DTD event handler.
|
||||
*
|
||||
* If the application does not register a DTD handler, all DTD
|
||||
* events reported by the SAX parser will be silently ignored (this
|
||||
* is the default behaviour implemented by HandlerBase).
|
||||
*
|
||||
* Applications may register a new or different handler in the middle
|
||||
* of a parse, and the SAX parser must begin using the new handler
|
||||
* immediately.
|
||||
*
|
||||
* @param handler The DTD handler.
|
||||
* @see DTDHandler#DTDHandler
|
||||
* @see HandlerBase#HandlerBase
|
||||
*/
|
||||
virtual void setDTDHandler(DTDHandler* const handler) = 0;
|
||||
|
||||
/**
|
||||
* Allow an application to register a custom entity resolver.
|
||||
*
|
||||
* If the application does not register an entity resolver, the
|
||||
* SAX parser will resolve system identifiers and open connections
|
||||
* to entities itself (this is the default behaviour implemented in
|
||||
* DefaultHandler).
|
||||
*
|
||||
* Applications may register a new or different entity resolver
|
||||
* in the middle of a parse, and the SAX parser must begin using
|
||||
* the new resolver immediately.
|
||||
*
|
||||
* @param resolver The object for resolving entities.
|
||||
* @see EntityResolver#EntityResolver
|
||||
* @see DefaultHandler#DefaultHandler
|
||||
*/
|
||||
virtual void setEntityResolver(EntityResolver* const resolver) = 0;
|
||||
|
||||
/**
|
||||
* Allow an application to register an error event handler.
|
||||
*
|
||||
* If the application does not register an error event handler,
|
||||
* all error events reported by the SAX parser will be silently
|
||||
* ignored, except for fatalError, which will throw a SAXException
|
||||
* (this is the default behaviour implemented by HandlerBase).
|
||||
*
|
||||
* Applications may register a new or different handler in the
|
||||
* middle of a parse, and the SAX parser must begin using the new
|
||||
* handler immediately.
|
||||
*
|
||||
* @param handler The error handler.
|
||||
* @see ErrorHandler#ErrorHandler
|
||||
* @see SAXException#SAXException
|
||||
* @see HandlerBase#HandlerBase
|
||||
*/
|
||||
virtual void setErrorHandler(ErrorHandler* const handler) = 0;
|
||||
|
||||
/**
|
||||
* Set the state of any feature in a SAX2 XMLReader.
|
||||
* Supported features in SAX2 for xerces-c are:
|
||||
* <br>(See the SAX2 Programming Guide for detail description).
|
||||
*
|
||||
* <br>http://xml.org/sax/features/validation (default: true)
|
||||
* <br>http://xml.org/sax/features/namespaces (default: true)
|
||||
* <br>http://xml.org/sax/features/namespace-prefixes (default: false)
|
||||
* <br>http://apache.org/xml/features/validation/dynamic (default: false)
|
||||
* <br>http://apache.org/xml/features/validation/reuse-grammar (default: false)
|
||||
* <br>http://apache.org/xml/features/validation/schema (default: true)
|
||||
* <br>http://apache.org/xml/features/validation/schema-full-checking (default: false)
|
||||
* <br>http://apache.org/xml/features/validating/load-schema (default: true)
|
||||
* <br>http://apache.org/xml/features/nonvalidating/load-external-dtd (default: true)
|
||||
* <br>http://apache.org/xml/features/continue-after-fatal-error (default: false)
|
||||
* <br>http://apache.org/xml/features/validation-error-as-fatal (default: false)
|
||||
*
|
||||
* @param name The unique identifier (URI) of the feature.
|
||||
* @param value The requested state of the feature (true or false).
|
||||
* @exception SAXNotRecognizedException If the requested feature is not known.
|
||||
* @exception SAXNotSupportedException Feature modification is not supported during parse
|
||||
*
|
||||
*/
|
||||
virtual void setFeature(const XMLCh* const name, const bool value) = 0;
|
||||
|
||||
/**
|
||||
* Set the value of any property in a SAX2 XMLReader.
|
||||
* Supported properties in SAX2 for xerces-c are:
|
||||
* <br>(See the SAX2 Programming Guide for detail description).
|
||||
*
|
||||
* <br>http://apache.org/xml/properties/schema/external-schemaLocation
|
||||
* <br>http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation.
|
||||
*
|
||||
* It takes a void pointer as the property value. Application is required to initialize this void
|
||||
* pointer to a correct type. See the SAX2 Programming Guide
|
||||
* to learn exactly what type of property value each property expects for processing.
|
||||
* Passing a void pointer that was initialized with a wrong type will lead to unexpected result.
|
||||
* If the same property is set more than once, the last one takes effect.
|
||||
*
|
||||
* @param name The unique identifier (URI) of the property being set.
|
||||
* @param value The requested value for the property. See
|
||||
* the SAX2 Programming Guide to learn
|
||||
* exactly what type of property value each property expects for processing.
|
||||
* Passing a void pointer that was initialized with a wrong type will lead
|
||||
* to unexpected result.
|
||||
* @exception SAXNotRecognizedException If the requested property is not known.
|
||||
* @exception SAXNotSupportedException Property modification is not supported during parse
|
||||
*/
|
||||
virtual void setProperty(const XMLCh* const name, void* value) = 0 ;
|
||||
|
||||
/**
|
||||
* Parse an XML document.
|
||||
*
|
||||
* The application can use this method to instruct the SAX parser
|
||||
* to begin parsing an XML document from any valid input
|
||||
* source (a character stream, a byte stream, or a URI).
|
||||
*
|
||||
* Applications may not invoke this method while a parse is in
|
||||
* progress (they should create a new Parser instead for each
|
||||
* additional XML document). Once a parse is complete, an
|
||||
* application may reuse the same Parser object, possibly with a
|
||||
* different input source.
|
||||
*
|
||||
* @param source The input source for the top-level of the
|
||||
* XML document.
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @see InputSource#InputSource
|
||||
* @see #setEntityResolver
|
||||
* @see #setDTDHandler
|
||||
* @see #setContentHandler
|
||||
* @see #setErrorHandler
|
||||
*/
|
||||
virtual void parse
|
||||
(
|
||||
const InputSource& source
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Parse an XML document from a system identifier (URI).
|
||||
*
|
||||
* This method is a shortcut for the common case of reading a
|
||||
* document from a system identifier. It is the exact equivalent
|
||||
* of the following:
|
||||
*
|
||||
* parse(new URLInputSource(systemId));
|
||||
*
|
||||
* If the system identifier is a URL, it must be fully resolved
|
||||
* by the application before it is passed to the parser.
|
||||
*
|
||||
* @param systemId The system identifier (URI).
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @see #parse(const InputSource&)
|
||||
*/
|
||||
virtual void parse
|
||||
(
|
||||
const XMLCh* const systemId
|
||||
) = 0;
|
||||
|
||||
/**
|
||||
* Parse an XML document from a system identifier (URI).
|
||||
*
|
||||
* This method is a shortcut for the common case of reading a
|
||||
* document from a system identifier. It is the exact equivalent
|
||||
* of the following:
|
||||
*
|
||||
* parse(new URLInputSource(systemId));
|
||||
*
|
||||
* If the system identifier is a URL, it must be fully resolved
|
||||
* by the application before it is passed to the parser.
|
||||
*
|
||||
* @param systemId The system identifier (URI).
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @see #parse(const InputSource&)
|
||||
*/
|
||||
virtual void parse
|
||||
(
|
||||
const char* const systemId
|
||||
) = 0;
|
||||
|
||||
//@}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// SAX 2.0-ext
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name SAX 2.0-ext */
|
||||
//@{
|
||||
/**
|
||||
* This method returns the installed declaration handler.
|
||||
*
|
||||
* @return A pointer to the installed declaration handler object.
|
||||
*/
|
||||
virtual DeclHandler* getDeclarationHandler() const = 0 ;
|
||||
|
||||
/**
|
||||
* This method returns the installed lexical handler.
|
||||
*
|
||||
* @return A pointer to the installed lexical handler object.
|
||||
*/
|
||||
virtual LexicalHandler* getLexicalHandler() const = 0 ;
|
||||
|
||||
/**
|
||||
* Allow an application to register a declaration event handler.
|
||||
*
|
||||
* If the application does not register a declaration handler,
|
||||
* all events reported by the SAX parser will be silently
|
||||
* ignored. (this is the default behaviour implemented by DefaultHandler).
|
||||
*
|
||||
* Applications may register a new or different handler in the
|
||||
* middle of a parse, and the SAX parser must begin using the new
|
||||
* handler immediately.
|
||||
*
|
||||
* @param handler The DTD declaration handler.
|
||||
* @see DeclHandler#DeclHandler
|
||||
* @see SAXException#SAXException
|
||||
* @see DefaultHandler#DefaultHandler
|
||||
*/
|
||||
virtual void setDeclarationHandler(DeclHandler* const handler) = 0;
|
||||
|
||||
/**
|
||||
* Allow an application to register a lexical event handler.
|
||||
*
|
||||
* If the application does not register a lexical handler,
|
||||
* all events reported by the SAX parser will be silently
|
||||
* ignored. (this is the default behaviour implemented by HandlerBase).
|
||||
*
|
||||
* Applications may register a new or different handler in the
|
||||
* middle of a parse, and the SAX parser must begin using the new
|
||||
* handler immediately.
|
||||
*
|
||||
* @param handler The error handler.
|
||||
* @see LexicalHandler#LexicalHandler
|
||||
* @see SAXException#SAXException
|
||||
* @see HandlerBase#HandlerBase
|
||||
*/
|
||||
virtual void setLexicalHandler(LexicalHandler* const handler) = 0;
|
||||
|
||||
//@}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Getter Methods
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Getter Methods (Xerces-C specific) */
|
||||
//@{
|
||||
/**
|
||||
* This method is used to get the current validator.
|
||||
*
|
||||
* <b>SAX2XMLReader assumes responsibility for the validator. It will be
|
||||
* deleted when the XMLReader is destroyed.</b>
|
||||
*
|
||||
* @return A pointer to the validator. An application should not deleted
|
||||
* the object returned.
|
||||
*
|
||||
*/
|
||||
virtual XMLValidator* getValidator() const = 0;
|
||||
|
||||
/** Get error count from the last parse operation.
|
||||
*
|
||||
* This method returns the error count from the last parse
|
||||
* operation. Note that this count is actually stored in the
|
||||
* scanner, so this method simply returns what the
|
||||
* scanner reports.
|
||||
*
|
||||
* @return number of errors encountered during the latest
|
||||
* parse operation.
|
||||
*/
|
||||
virtual XMLSize_t getErrorCount() const = 0 ;
|
||||
|
||||
/**
|
||||
* This method returns the state of the parser's
|
||||
* exit-on-First-Fatal-Error flag.
|
||||
*
|
||||
* <p>Or you can query the feature "http://apache.org/xml/features/continue-after-fatal-error"
|
||||
* which indicates the opposite state.</p>
|
||||
*
|
||||
* @return true, if the parser is currently configured to
|
||||
* exit on the first fatal error, false otherwise.
|
||||
*
|
||||
* @see #setExitOnFirstFatalError
|
||||
* @see #getFeature
|
||||
*/
|
||||
virtual bool getExitOnFirstFatalError() const = 0;
|
||||
|
||||
/**
|
||||
* This method returns the state of the parser's
|
||||
* validation-constraint-fatal flag.
|
||||
*
|
||||
* <p>Or you can query the feature "http://apache.org/xml/features/validation-error-as-fatal"
|
||||
* which means the same thing.
|
||||
*
|
||||
* @return true, if the parser is currently configured to
|
||||
* set validation constraint errors as fatal, false
|
||||
* otherwise.
|
||||
*
|
||||
* @see #setValidationConstraintFatal
|
||||
* @see #getFeature
|
||||
*/
|
||||
virtual bool getValidationConstraintFatal() const = 0;
|
||||
|
||||
/**
|
||||
* Retrieve the grammar that is associated with the specified namespace key
|
||||
*
|
||||
* @param nameSpaceKey Namespace key
|
||||
* @return Grammar associated with the Namespace key.
|
||||
*/
|
||||
virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) = 0;
|
||||
|
||||
/**
|
||||
* Retrieve the grammar where the root element is declared.
|
||||
*
|
||||
* @return Grammar where root element declared
|
||||
*/
|
||||
virtual Grammar* getRootGrammar() = 0;
|
||||
|
||||
/**
|
||||
* Returns the string corresponding to a URI id from the URI string pool.
|
||||
*
|
||||
* @param uriId id of the string in the URI string pool.
|
||||
* @return URI string corresponding to the URI id.
|
||||
*/
|
||||
virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
|
||||
|
||||
/**
|
||||
* Returns the current src offset within the input source.
|
||||
* To be used only while parsing is in progress.
|
||||
*
|
||||
* @return offset within the input source
|
||||
*/
|
||||
virtual XMLFilePos getSrcOffset() const = 0;
|
||||
|
||||
//@}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Setter Methods
|
||||
// -----------------------------------------------------------------------
|
||||
/** @name Setter Methods (Xerces-C specific) */
|
||||
//@{
|
||||
/**
|
||||
* This method is used to set a validator.
|
||||
*
|
||||
* <b>SAX2XMLReader assumes responsibility for the validator. It will be
|
||||
* deleted when the XMLReader is destroyed.</b>
|
||||
*
|
||||
* @param valueToAdopt A pointer to the validator that the reader should use.
|
||||
*
|
||||
*/
|
||||
virtual void setValidator(XMLValidator* valueToAdopt) = 0;
|
||||
|
||||
/**
|
||||
* This method allows users to set the parser's behaviour when it
|
||||
* encounters the first fatal error. If set to true, the parser
|
||||
* will exit at the first fatal error. If false, then it will
|
||||
* report the error and continue processing.
|
||||
*
|
||||
* <p>The default value is 'true' and the parser exits on the
|
||||
* first fatal error.</p>
|
||||
*
|
||||
* <p>Or you can set the feature "http://apache.org/xml/features/continue-after-fatal-error"
|
||||
* which has the opposite behaviour.</p>
|
||||
*
|
||||
* <p>If both the feature above and this function are used, the latter takes effect.</p>
|
||||
*
|
||||
* @param newState The value specifying whether the parser should
|
||||
* continue or exit when it encounters the first
|
||||
* fatal error.
|
||||
*
|
||||
* @see #getExitOnFirstFatalError
|
||||
* @see #setFeature
|
||||
*/
|
||||
virtual void setExitOnFirstFatalError(const bool newState) = 0;
|
||||
|
||||
/**
|
||||
* This method allows users to set the parser's behaviour when it
|
||||
* encounters a validation constraint error. If set to true, and the
|
||||
* the parser will treat validation error as fatal and will exit depends on the
|
||||
* state of "getExitOnFirstFatalError". If false, then it will
|
||||
* report the error and continue processing.
|
||||
*
|
||||
* Note: setting this true does not mean the validation error will be printed with
|
||||
* the word "Fatal Error". It is still printed as "Error", but the parser
|
||||
* will exit if "setExitOnFirstFatalError" is set to true.
|
||||
*
|
||||
* <p>The default value is 'false'.</p>
|
||||
*
|
||||
* <p>Or you can set the feature "http://apache.org/xml/features/validation-error-as-fatal"
|
||||
* which means the same thing.</p>
|
||||
*
|
||||
* <p>If both the feature above and this function are used, the latter takes effect.</p>
|
||||
*
|
||||
* @param newState If true, the parser will exit if "setExitOnFirstFatalError"
|
||||
* is set to true.
|
||||
*
|
||||
* @see #getValidationConstraintFatal
|
||||
* @see #setExitOnFirstFatalError
|
||||
* @see #setFeature
|
||||
*/
|
||||
virtual void setValidationConstraintFatal(const bool newState) = 0;
|
||||
//@}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Progressive scan methods
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/** @name Progressive scan methods */
|
||||
//@{
|
||||
|
||||
/** Begin a progressive parse operation
|
||||
*
|
||||
* This method is used to start a progressive parse on a XML file.
|
||||
* To continue parsing, subsequent calls must be to the parseNext
|
||||
* method.
|
||||
*
|
||||
* It scans through the prolog and returns a token to be used on
|
||||
* subsequent scanNext() calls. If the return value is true, then the
|
||||
* token is legal and ready for further use. If it returns false, then
|
||||
* the scan of the prolog failed and the token is not going to work on
|
||||
* subsequent scanNext() calls.
|
||||
*
|
||||
* @param systemId A pointer to a Unicode string representing the path
|
||||
* to the XML file to be parsed.
|
||||
* @param toFill A token maintaing state information to maintain
|
||||
* internal consistency between invocation of 'parseNext'
|
||||
* calls.
|
||||
*
|
||||
* @return 'true', if successful in parsing the prolog. It indicates the
|
||||
* user can go ahead with parsing the rest of the file. It
|
||||
* returns 'false' to indicate that the parser could parse the
|
||||
* prolog (which means the token will not be valid.)
|
||||
*
|
||||
* @see #parseNext
|
||||
* @see #parseFirst(char*,...)
|
||||
* @see #parseFirst(InputSource&,...)
|
||||
*/
|
||||
virtual bool parseFirst
|
||||
(
|
||||
const XMLCh* const systemId
|
||||
, XMLPScanToken& toFill
|
||||
) = 0;
|
||||
|
||||
/** Begin a progressive parse operation
|
||||
*
|
||||
* This method is used to start a progressive parse on a XML file.
|
||||
* To continue parsing, subsequent calls must be to the parseNext
|
||||
* method.
|
||||
*
|
||||
* It scans through the prolog and returns a token to be used on
|
||||
* subsequent scanNext() calls. If the return value is true, then the
|
||||
* token is legal and ready for further use. If it returns false, then
|
||||
* the scan of the prolog failed and the token is not going to work on
|
||||
* subsequent scanNext() calls.
|
||||
*
|
||||
* @param systemId A pointer to a regular native string representing
|
||||
* the path to the XML file to be parsed.
|
||||
* @param toFill A token maintaing state information to maintain
|
||||
* internal consistency between invocation of 'parseNext'
|
||||
* calls.
|
||||
*
|
||||
* @return 'true', if successful in parsing the prolog. It indicates the
|
||||
* user can go ahead with parsing the rest of the file. It
|
||||
* returns 'false' to indicate that the parser could not parse
|
||||
* the prolog.
|
||||
*
|
||||
* @see #parseNext
|
||||
* @see #parseFirst(XMLCh*,...)
|
||||
* @see #parseFirst(InputSource&,...)
|
||||
*/
|
||||
virtual bool parseFirst
|
||||
(
|
||||
const char* const systemId
|
||||
, XMLPScanToken& toFill
|
||||
) = 0;
|
||||
|
||||
/** Begin a progressive parse operation
|
||||
*
|
||||
* This method is used to start a progressive parse on a XML file.
|
||||
* To continue parsing, subsequent calls must be to the parseNext
|
||||
* method.
|
||||
*
|
||||
* It scans through the prolog and returns a token to be used on
|
||||
* subsequent scanNext() calls. If the return value is true, then the
|
||||
* token is legal and ready for further use. If it returns false, then
|
||||
* the scan of the prolog failed and the token is not going to work on
|
||||
* subsequent scanNext() calls.
|
||||
*
|
||||
* @param source A const reference to the InputSource object which
|
||||
* points to the XML file to be parsed.
|
||||
* @param toFill A token maintaing state information to maintain
|
||||
* internal consistency between invocation of 'parseNext'
|
||||
* calls.
|
||||
*
|
||||
* @return 'true', if successful in parsing the prolog. It indicates the
|
||||
* user can go ahead with parsing the rest of the file. It
|
||||
* returns 'false' to indicate that the parser could not parse
|
||||
* the prolog.
|
||||
*
|
||||
* @see #parseNext
|
||||
* @see #parseFirst(XMLCh*,...)
|
||||
* @see #parseFirst(char*,...)
|
||||
*/
|
||||
virtual bool parseFirst
|
||||
(
|
||||
const InputSource& source
|
||||
, XMLPScanToken& toFill
|
||||
) = 0;
|
||||
|
||||
/** Continue a progressive parse operation
|
||||
*
|
||||
* This method is used to continue with progressive parsing of
|
||||
* XML files started by a call to 'parseFirst' method.
|
||||
*
|
||||
* It parses the XML file and stops as soon as it comes across
|
||||
* a XML token (as defined in the XML specification). Relevant
|
||||
* callback handlers are invoked as required by the SAX
|
||||
* specification.
|
||||
*
|
||||
* @param token A token maintaing state information to maintain
|
||||
* internal consistency between invocation of 'parseNext'
|
||||
* calls.
|
||||
*
|
||||
* @return 'true', if successful in parsing the next XML token.
|
||||
* It indicates the user can go ahead with parsing the rest
|
||||
* of the file. It returns 'false' to indicate that the parser
|
||||
* could not find next token as per the XML specification
|
||||
* production rule.
|
||||
*
|
||||
* @see #parseFirst(XMLCh*,...)
|
||||
* @see #parseFirst(char*,...)
|
||||
* @see #parseFirst(InputSource&,...)
|
||||
*/
|
||||
virtual bool parseNext(XMLPScanToken& token) = 0;
|
||||
|
||||
/** Reset the parser after a progressive parse
|
||||
*
|
||||
* If a progressive parse loop exits before the end of the document
|
||||
* is reached, the parser has no way of knowing this. So it will leave
|
||||
* open any files or sockets or memory buffers that were in use at
|
||||
* the time that the parse loop exited.
|
||||
*
|
||||
* The next parse operation will cause these open files and such to
|
||||
* be closed, but the next parse operation might occur at some unknown
|
||||
* future point. To avoid this problem, you should reset the parser if
|
||||
* you exit the loop early.
|
||||
*
|
||||
* If you exited because of an error, then this cleanup will be done
|
||||
* for you. Its only when you exit the file prematurely of your own
|
||||
* accord, because you've found what you wanted in the file most
|
||||
* likely.
|
||||
*
|
||||
* @param token A token maintaing state information to maintain
|
||||
* internal consistency between invocation of 'parseNext'
|
||||
* calls.
|
||||
*/
|
||||
virtual void parseReset(XMLPScanToken& token) = 0;
|
||||
|
||||
//@}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Grammar preparsing interface
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/** @name Grammar preparsing interface's. */
|
||||
//@{
|
||||
/**
|
||||
* Preparse schema grammar (XML Schema, DTD, etc.) via an input source
|
||||
* object.
|
||||
*
|
||||
* This method invokes the preparsing process on a schema grammar XML
|
||||
* file specified by the SAX InputSource parameter. If the 'toCache' flag
|
||||
* is enabled, the parser will cache the grammars for re-use. If a grammar
|
||||
* key is found in the pool, no caching of any grammar will take place.
|
||||
*
|
||||
*
|
||||
* @param source A const reference to the SAX InputSource object which
|
||||
* points to the schema grammar file to be preparsed.
|
||||
* @param grammarType The grammar type (Schema or DTD).
|
||||
* @param toCache If <code>true</code>, we cache the preparsed grammar,
|
||||
* otherwise, no caching. Default is <code>false</code>.
|
||||
* @return The preparsed schema grammar object (SchemaGrammar or
|
||||
* DTDGrammar). That grammar object is owned by the parser.
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @exception DOMException A DOM exception as per DOM spec.
|
||||
*
|
||||
* @see InputSource#InputSource
|
||||
*/
|
||||
virtual Grammar* loadGrammar(const InputSource& source,
|
||||
const Grammar::GrammarType grammarType,
|
||||
const bool toCache = false) = 0;
|
||||
|
||||
/**
|
||||
* Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
|
||||
*
|
||||
* This method invokes the preparsing process on a schema grammar XML
|
||||
* file specified by the file path parameter. If the 'toCache' flag
|
||||
* is enabled, the parser will cache the grammars for re-use. If a grammar
|
||||
* key is found in the pool, no caching of any grammar will take place.
|
||||
*
|
||||
*
|
||||
* @param systemId A const XMLCh pointer to the Unicode string which
|
||||
* contains the path to the XML grammar file to be
|
||||
* preparsed.
|
||||
* @param grammarType The grammar type (Schema or DTD).
|
||||
* @param toCache If <code>true</code>, we cache the preparsed grammar,
|
||||
* otherwise, no caching. Default is <code>false</code>.
|
||||
* @return The preparsed schema grammar object (SchemaGrammar or
|
||||
* DTDGrammar). That grammar object is owned by the parser.
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @exception DOMException A DOM exception as per DOM spec.
|
||||
*/
|
||||
virtual Grammar* loadGrammar(const XMLCh* const systemId,
|
||||
const Grammar::GrammarType grammarType,
|
||||
const bool toCache = false) = 0;
|
||||
|
||||
/**
|
||||
* Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL
|
||||
*
|
||||
* This method invokes the preparsing process on a schema grammar XML
|
||||
* file specified by the file path parameter. If the 'toCache' flag
|
||||
* is enabled, the parser will cache the grammars for re-use. If a grammar
|
||||
* key is found in the pool, no caching of any grammar will take place.
|
||||
*
|
||||
*
|
||||
* @param systemId A const char pointer to a native string which contains
|
||||
* the path to the XML grammar file to be preparsed.
|
||||
* @param grammarType The grammar type (Schema or DTD).
|
||||
* @param toCache If <code>true</code>, we cache the preparsed grammar,
|
||||
* otherwise, no caching. Default is <code>false</code>.
|
||||
* @return The preparsed schema grammar object (SchemaGrammar or
|
||||
* DTDGrammar). That grammar object is owned by the parser.
|
||||
*
|
||||
* @exception SAXException Any SAX exception, possibly
|
||||
* wrapping another exception.
|
||||
* @exception XMLException An exception from the parser or client
|
||||
* handler code.
|
||||
* @exception DOMException A DOM exception as per DOM spec.
|
||||
*/
|
||||
virtual Grammar* loadGrammar(const char* const systemId,
|
||||
const Grammar::GrammarType grammarType,
|
||||
const bool toCache = false) = 0;
|
||||
|
||||
/**
|
||||
* Clear the cached grammar pool
|
||||
*/
|
||||
virtual void resetCachedGrammarPool() = 0;
|
||||
|
||||
/** Set maximum input buffer size
|
||||
*
|
||||
* This method allows users to limit the size of buffers used in parsing
|
||||
* XML character data. The effect of setting this size is to limit the
|
||||
* size of a ContentHandler::characters() call.
|
||||
*
|
||||
* The parser's default input buffer size is 1 megabyte.
|
||||
*
|
||||
* @param bufferSize The maximum input buffer size
|
||||
*/
|
||||
virtual void setInputBufferSize(const XMLSize_t bufferSize);
|
||||
|
||||
//@}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Advanced document handler list maintenance methods
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/** @name Advanced document handler list maintenance methods */
|
||||
//@{
|
||||
/**
|
||||
* This method installs the specified 'advanced' document callback
|
||||
* handler, thereby allowing the user to customize the processing,
|
||||
* if they choose to do so. Any number of advanced callback handlers
|
||||
* maybe installed.
|
||||
*
|
||||
* <p>The methods in the advanced callback interface represent
|
||||
* Xerces-C extensions. There is no specification for this interface.</p>
|
||||
*
|
||||
* @param toInstall A pointer to the users advanced callback handler.
|
||||
*
|
||||
* @see #removeAdvDocHandler
|
||||
*/
|
||||
virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) = 0;
|
||||
|
||||
/**
|
||||
* This method removes the 'advanced' document handler callback from
|
||||
* the underlying parser scanner. If no handler is installed, advanced
|
||||
* callbacks are not invoked by the scanner.
|
||||
* @param toRemove A pointer to the advanced callback handler which
|
||||
* should be removed.
|
||||
*
|
||||
* @see #installAdvDocHandler
|
||||
*/
|
||||
virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) = 0;
|
||||
//@}
|
||||
|
||||
private :
|
||||
/* The copy constructor, you cannot call this directly */
|
||||
SAX2XMLReader(const SAX2XMLReader&);
|
||||
|
||||
/* The assignment operator, you cannot call this directly */
|
||||
SAX2XMLReader& operator=(const SAX2XMLReader&);
|
||||
|
||||
};
|
||||
|
||||
inline void SAX2XMLReader::setInputBufferSize(const XMLSize_t /*bufferSize*/)
|
||||
{
|
||||
}
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
71
project/jni/xerces/include/xercesc/sax2/XMLReaderFactory.hpp
Normal file
71
project/jni/xerces/include/xercesc/sax2/XMLReaderFactory.hpp
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* 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: XMLReaderFactory.hpp 932887 2010-04-11 13:04:59Z borisk $
|
||||
*/
|
||||
|
||||
#if !defined(XERCESC_INCLUDE_GUARD_XMLREADERFACTORY_HPP)
|
||||
#define XERCESC_INCLUDE_GUARD_XMLREADERFACTORY_HPP
|
||||
|
||||
#include <xercesc/sax2/SAX2XMLReader.hpp>
|
||||
#include <xercesc/sax/SAXException.hpp>
|
||||
|
||||
XERCES_CPP_NAMESPACE_BEGIN
|
||||
|
||||
class MemoryManager;
|
||||
class XMLGrammarPool;
|
||||
|
||||
/**
|
||||
* Creates a SAX2 parser (SAX2XMLReader).
|
||||
*
|
||||
* <p>Note: The parser object returned by XMLReaderFactory is owned by the
|
||||
* calling users, and it's the responsibility of the users to delete that
|
||||
* parser object, once they no longer need it.</p>
|
||||
*
|
||||
* @see SAX2XMLReader#SAX2XMLReader
|
||||
*/
|
||||
class SAX2_EXPORT XMLReaderFactory
|
||||
{
|
||||
protected: // really should be private, but that causes compiler warnings.
|
||||
XMLReaderFactory() ;
|
||||
~XMLReaderFactory() ;
|
||||
|
||||
public:
|
||||
static SAX2XMLReader * createXMLReader( MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
|
||||
, XMLGrammarPool* const gramPool = 0
|
||||
) ;
|
||||
static SAX2XMLReader * createXMLReader(const XMLCh* className) ;
|
||||
|
||||
private:
|
||||
// -----------------------------------------------------------------------
|
||||
// Unimplemented constructors and operators
|
||||
// -----------------------------------------------------------------------
|
||||
XMLReaderFactory(const XMLReaderFactory&);
|
||||
XMLReaderFactory& operator=(const XMLReaderFactory&);
|
||||
};
|
||||
|
||||
inline SAX2XMLReader * XMLReaderFactory::createXMLReader(const XMLCh *)
|
||||
{
|
||||
throw SAXNotSupportedException();
|
||||
// unimplemented
|
||||
return 0;
|
||||
}
|
||||
|
||||
XERCES_CPP_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user