mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-07-13 12:27:10 +02:00
.github
bin
module
vendor
CPR
CivetWeb
ConcurrentQueue
DPP
Fmt
MaxmindDB
POCO
ActiveRecord
ApacheConnector
CppParser
CppUnit
Crypto
Data
Encodings
Foundation
JSON
JWT
MongoDB
Net
NetSSL_OpenSSL
NetSSL_Win
PDF
PageCompiler
PocoDoc
ProGen
Redis
SevenZip
Util
XML
cmake
include
Poco
DOM
SAX
Attributes.h
AttributesImpl.h
ContentHandler.h
DTDHandler.h
DeclHandler.h
DefaultHandler.h
EntityResolver.h
EntityResolverImpl.h
ErrorHandler.h
InputSource.h
LexicalHandler.h
Locator.h
LocatorImpl.h
NamespaceSupport.h
SAXException.h
SAXParser.h
WhitespaceFilter.h
XMLFilter.h
XMLFilterImpl.h
XMLReader.h
XML
samples
src
testsuite
CMakeLists.txt
Makefile
XML.progen
XML_vs140.sln
XML_vs140.vcxproj
XML_vs140.vcxproj.filters
XML_vs150.sln
XML_vs150.vcxproj
XML_vs150.vcxproj.filters
XML_vs160.sln
XML_vs160.vcxproj
XML_vs160.vcxproj.filters
XML_vs90.sln
XML_vs90.vcproj
dependencies
Zip
build
ci
cmake
contrib
doc
packaging
patches
release
.gitattributes
.gitignore
.gitmodules
CHANGELOG
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTORS
LICENSE
Makefile
NEWS
README
README.md
VERSION
build_cmake.cmd
build_cmake.sh
build_vs140.cmd
build_vs150.cmd
build_vs160.cmd
buildwin.cmd
buildwin.ps1
components
configure
cppignore.lnx
cppignore.win
env.bat
env.sh
libversion
PUGIXML
SAJSON
SimpleIni
Squirrel
TinyDir
ZMQ
xxHash
CMakeLists.txt
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
177 lines
5.7 KiB
C++
177 lines
5.7 KiB
C++
//
|
|
// SAXException.h
|
|
//
|
|
// Library: XML
|
|
// Package: SAX
|
|
// Module: SAX
|
|
//
|
|
// SAX exception classes.
|
|
//
|
|
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#ifndef SAX_SAXException_INCLUDED
|
|
#define SAX_SAXException_INCLUDED
|
|
|
|
|
|
#include "Poco/XML/XML.h"
|
|
#include "Poco/XML/XMLException.h"
|
|
#include "Poco/XML/XMLString.h"
|
|
|
|
|
|
namespace Poco {
|
|
namespace XML {
|
|
|
|
|
|
POCO_DECLARE_EXCEPTION(XML_API, SAXException, XMLException)
|
|
/// The base class for all SAX-related exceptions like SAXParseException,
|
|
/// SAXNotRecognizedException or SAXNotSupportedException.
|
|
///
|
|
/// This class can contain basic error or warning information from either the XML parser
|
|
/// or the application: a parser writer or application writer can subclass it to provide
|
|
/// additional functionality. SAX handlers may throw this exception or any exception subclassed
|
|
/// from it.
|
|
///
|
|
/// If the application needs to pass through other types of exceptions, it must wrap those exceptions
|
|
/// in a SAXException or an exception derived from a SAXException.
|
|
///
|
|
/// If the parser or application needs to include information about a specific location in an XML
|
|
/// document, it should use the SAXParseException subclass.
|
|
|
|
|
|
POCO_DECLARE_EXCEPTION(XML_API, SAXNotRecognizedException, SAXException)
|
|
/// Exception class for an unrecognized identifier.
|
|
///
|
|
/// An XMLReader will throw this exception when it finds an unrecognized feature or property
|
|
/// identifier; SAX applications and extensions may use this class for other, similar purposes.
|
|
|
|
|
|
POCO_DECLARE_EXCEPTION(XML_API, SAXNotSupportedException, SAXException)
|
|
/// Exception class for an unsupported operation.
|
|
///
|
|
/// An XMLReader will throw this exception when it recognizes a feature or property identifier,
|
|
/// but cannot perform the requested operation (setting a state or value). Other SAX2 applications
|
|
/// and extensions may use this class for similar purposes.
|
|
|
|
|
|
class Locator;
|
|
|
|
|
|
class XML_API SAXParseException: public SAXException
|
|
/// Encapsulate an XML parse error or warning.
|
|
///
|
|
/// This exception may include information for locating the error in the original XML document,
|
|
/// as if it came from a Locator object. Note that although the application will receive a
|
|
/// SAXParseException as the argument to the handlers in the ErrorHandler interface, the application
|
|
/// is not actually required to throw the exception; instead, it can simply read the information in it
|
|
/// and take a different action.
|
|
///
|
|
/// Since this exception is a subclass of SAXException, it inherits the ability to wrap another exception.
|
|
{
|
|
public:
|
|
SAXParseException(const std::string& msg, const Locator& loc);
|
|
/// Create a new SAXParseException from a message and a Locator.
|
|
|
|
SAXParseException(const std::string& msg, const Locator& loc, const Poco::Exception& exc);
|
|
/// Wrap an existing exception in a SAXParseException.
|
|
|
|
SAXParseException(const std::string& msg, const XMLString& publicId, const XMLString& systemId, int lineNumber, int columnNumber);
|
|
/// Create a new SAXParseException with an embedded exception.
|
|
///
|
|
/// This constructor is most useful for parser writers.
|
|
/// All parameters except the message are as if they were provided by a Locator.
|
|
/// For example, if the system identifier is a URL (including relative filename),
|
|
/// the caller must resolve it fully before creating the exception.
|
|
|
|
SAXParseException(const std::string& msg, const XMLString& publicId, const XMLString& systemId, int lineNumber, int columnNumber, const Poco::Exception& exc);
|
|
/// Create a new SAXParseException.
|
|
///
|
|
/// This constructor is most useful for parser writers.
|
|
/// All parameters except the message are as if they were provided by a Locator.
|
|
/// For example, if the system identifier is a URL (including relative filename),
|
|
/// the caller must resolve it fully before creating the exception.
|
|
|
|
SAXParseException(const SAXParseException& exc);
|
|
/// Creates a new SAXParseException from another one.
|
|
|
|
~SAXParseException() noexcept;
|
|
/// Destroy the exception.
|
|
|
|
SAXParseException& operator = (const SAXParseException& exc);
|
|
/// Assignment operator.
|
|
|
|
const char* name() const noexcept;
|
|
/// Returns a static string describing the exception.
|
|
|
|
const char* className() const noexcept;
|
|
/// Returns the name of the exception class.
|
|
|
|
Poco::Exception* clone() const;
|
|
/// Creates an exact copy of the exception.
|
|
|
|
void rethrow() const;
|
|
/// (Re)Throws the exception.
|
|
|
|
const XMLString& getPublicId() const;
|
|
/// Get the public identifier of the entity where the exception occurred.
|
|
|
|
const XMLString& getSystemId() const;
|
|
/// Get the system identifier of the entity where the exception occurred.
|
|
|
|
int getLineNumber() const;
|
|
/// The line number of the end of the text where the exception occurred.
|
|
/// The first line is line 1.
|
|
|
|
int getColumnNumber() const;
|
|
/// The column number of the end of the text where the exception occurred.
|
|
/// The first column in a line is position 1.
|
|
|
|
protected:
|
|
static std::string buildMessage(const std::string& msg, const XMLString& publicId, const XMLString& systemId, int lineNumber, int columnNumber);
|
|
|
|
private:
|
|
SAXParseException();
|
|
|
|
XMLString _publicId;
|
|
XMLString _systemId;
|
|
int _lineNumber;
|
|
int _columnNumber;
|
|
};
|
|
|
|
|
|
//
|
|
// inlines
|
|
//
|
|
inline const XMLString& SAXParseException::getPublicId() const
|
|
{
|
|
return _publicId;
|
|
}
|
|
|
|
|
|
inline const XMLString& SAXParseException::getSystemId() const
|
|
{
|
|
return _systemId;
|
|
}
|
|
|
|
|
|
inline int SAXParseException::getLineNumber() const
|
|
{
|
|
return _lineNumber;
|
|
}
|
|
|
|
|
|
inline int SAXParseException::getColumnNumber() const
|
|
{
|
|
return _columnNumber;
|
|
}
|
|
|
|
|
|
} } // namespace Poco::XML
|
|
|
|
|
|
#endif // SAX_SAXException_INCLUDED
|