Encapsulates an XML parse error or warning.

Introduced classes

class SAXParseException

sax :: SAXParseException

Encapsulates an XML parse error or warning.

All class definitions

class SAXParseException

sax $ SAXParseException

Encapsulates an XML parse error or warning.
package_diagram sax::sax_parse_exception sax_parse_exception sax::sax_locator sax_locator sax::sax_parse_exception->sax::sax_locator core core sax::sax_locator->core ...core ... ...core->core sax::error_handler error_handler sax::error_handler->sax::sax_parse_exception sax::xml_reader xml_reader sax::xml_reader->sax::error_handler sax::xml_reader... ... sax::xml_reader...->sax::xml_reader

Ancestors

module abstract_collection

core :: abstract_collection

Abstract collection classes and services.
module abstract_text

core :: abstract_text

Abstract class for manipulation of sequences of characters
module array

core :: array

This module introduces the standard array structure.
module bitset

core :: bitset

Services to handle BitSet
module bytes

core :: bytes

Services for byte streams and arrays
module circular_array

core :: circular_array

Efficient data structure to access both end of the sequence.
module codec_base

core :: codec_base

Base for codecs to use with streams
module codecs

core :: codecs

Group module for all codec-related manipulations
module collection

core :: collection

This module define several collection classes.
module core

core :: core

Standard classes and methods used by default by Nit programs and libraries.
module environ

core :: environ

Access to the environment variables of the process
module error

core :: error

Standard error-management infrastructure.
module exec

core :: exec

Invocation and management of operating system sub-processes.
module file

core :: file

File manipulations (create, read, write, etc.)
module fixed_ints

core :: fixed_ints

Basic integers of fixed-precision
module fixed_ints_text

core :: fixed_ints_text

Text services to complement fixed_ints
module flat

core :: flat

All the array-based text representations
module gc

core :: gc

Access to the Nit internal garbage collection mechanism
module hash_collection

core :: hash_collection

Introduce HashMap and HashSet.
module iso8859_1

core :: iso8859_1

Codec for ISO8859-1 I/O
module kernel

core :: kernel

Most basic classes and methods.
module list

core :: list

This module handle double linked lists
module math

core :: math

Mathematical operations
module native

core :: native

Native structures for text and bytes
module numeric

core :: numeric

Advanced services for Numeric types
module protocol

core :: protocol

module queue

core :: queue

Queuing data structures and wrappers
module range

core :: range

Module for range of discrete objects.
module re

core :: re

Regular expression support for all services based on Pattern
module ropes

core :: ropes

Tree-based representation of a String.
module sorter

core :: sorter

This module contains classes used to compare things and sorts arrays.
module stream

core :: stream

Input and output streams of characters
module text

core :: text

All the classes and methods related to the manipulation of text entities
module time

core :: time

Management of time and dates
module union_find

core :: union_find

union–find algorithm using an efficient disjoint-set data structure
module utf8

core :: utf8

Codec for UTF-8 I/O

Parents

module sax_locator

sax :: sax_locator

Interface for associating a SAX event with a document location.

Children

module error_handler

sax :: error_handler

Basic interface for SAX error handlers.

Descendants

module a_star-m

a_star-m

module ext

sax :: ext

Interfaces to optional SAX2 handlers.
module helpers

sax :: helpers

Contains "helper" classes, including support for bootstrapping SAX-based applications.
module lexer

saxophonit :: lexer

SAXophoNit’s lexer
module reader_model

saxophonit :: reader_model

Reader’s model.
module sax

sax :: sax

Core SAX APIs.
module saxophonit

saxophonit :: saxophonit

A SAX 2 parser in Nit.
module testing

saxophonit :: testing

Various utilities to help testing SAXophoNit (and SAX parsers in general).
module xml_filter

sax :: xml_filter

Interface for an XML filter.
module xml_filter_impl

sax :: xml_filter_impl

Base class for deriving an XML filter.
module xml_reader

sax :: xml_reader

Interface for reading an XML document using callbacks.
# Encapsulates an XML parse error or warning.
module sax::sax_parse_exception

import sax_locator

# Encapsulates 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.
#
# Note: The original documentation comes, in part,
# from [SAX 2.0](http://www.saxproject.org).
#
# SEE: `sax::SAXLocator`
#
# SEE: `sax::ErrorHandler`
class SAXParseException
	super Error

	# The public identifer of the entity that generated
	# the error or warning.
	var public_id: nullable String = null

	# The system identifer of the entity that generated
	# the error or warning.
	#
	# If its an URL, it must be fully resolved.
	var system_id: nullable String = null

	# The line number of the end of the text that
	# caused the error or warning, or -1.
	var line_number = -1

	# The column number of the end of the text that
	# caused the error or warning, or -1.
	var column_number = -1

	# Create a new SAXParseException from a message and a Locator.
	#
	# This constructor is especially useful when an application is
	# creating its own exception from within a `ContentHandler` callback.
	#
	# Parameters:
	#
	# * `message`: error or warning message.
	# * `locator`: locator object for the error or warning.
	init with_locator(message: String, locator: SAXLocator) do
		init(message)
		public_id = locator.public_id
		system_id = locator.system_id
		line_number = locator.line_number
		column_number = locator.column_number
	end

	# 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.
	#
	# Parameters:
	#
	# * `message`: error or warning message.
	# * `public_id`: public identifer of the entity that generated
	# the error or warning.
	# * `system_id`: system identifer of the entity that generated
	# the error or warning.
	# * `line_number`: line number of the end of the text that
	# caused the error or warning.
	# * `column_number`: column number of the end of the text that
	# caused the error or warning.
	init with_info(message: String, public_id: nullable String,
			system_id: nullable String, line_number: Int, column_number: Int) do
		init(message)
		self.public_id = public_id
		self.system_id = system_id
		self.line_number = line_number
		self.column_number = column_number
	end

	# Generate a complete message from the exception’s attributes.
	fun full_message: String do
		var location = ""

		if public_id != null then
			location = "PUBLIC \"{public_id.as(not null)}\""
		end
		if system_id != null then
			if location != "" then
				location += " "
			end
			location += "SYSTEM \"{system_id.as(not null)}\""
		end
		if line_number >= 0 or column_number >= 0 then
			if location != "" then
				location += " at "
			end
			location += "{line_number};{column_number}"
		end
		if location == "" then
			return "{message}"
		else
			return "[{location}] {message}"
		end
	end

	redef fun to_s do
		return "sax::SAXParseException: {full_message}"
	end

	# Display `full_message` with a stack trace, then abort.
	fun throw do
		assert sax_parse: false else
			sys.stderr.write "{full_message}\n"
		end
	end
end
lib/sax/sax_parse_exception.nit:11,1--136,3