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.

SEE: SAXLocator

SEE: ErrorHandler

Introduced properties

fun column_number: Int

sax :: SAXParseException :: column_number

The column number of the end of the text that
protected fun column_number=(column_number: Int)

sax :: SAXParseException :: column_number=

The column number of the end of the text that
fun full_message: String

sax :: SAXParseException :: full_message

Generate a complete message from the exception’s attributes.
fun line_number: Int

sax :: SAXParseException :: line_number

The line number of the end of the text that
protected fun line_number=(line_number: Int)

sax :: SAXParseException :: line_number=

The line number of the end of the text that
fun public_id: nullable String

sax :: SAXParseException :: public_id

The public identifer of the entity that generated
protected fun public_id=(public_id: nullable String)

sax :: SAXParseException :: public_id=

The public identifer of the entity that generated
fun system_id: nullable String

sax :: SAXParseException :: system_id

The system identifer of the entity that generated
protected fun system_id=(system_id: nullable String)

sax :: SAXParseException :: system_id=

The system identifer of the entity that generated
fun throw

sax :: SAXParseException :: throw

Display full_message with a stack trace, then abort.
init with_info(message: String, public_id: nullable String, system_id: nullable String, line_number: Int, column_number: Int)

sax :: SAXParseException :: with_info

Create a new SAXParseException.
init with_locator(message: String, locator: SAXLocator)

sax :: SAXParseException :: with_locator

Create a new SAXParseException from a message and a Locator.

Redefined properties

redef type SELF: SAXParseException

sax $ SAXParseException :: SELF

Type of this instance, automatically specialized in every class
redef fun to_s: String

sax $ SAXParseException :: to_s

User readable representation of self.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
protected fun accept_json_serializer(v: JsonSerializer)

serialization :: Serializable :: accept_json_serializer

Refinable service to customize the serialization of this class to JSON
protected fun accept_msgpack_attribute_counter(v: AttributeCounter)

serialization :: Serializable :: accept_msgpack_attribute_counter

Hook to customize the behavior of the AttributeCounter
protected fun accept_msgpack_serializer(v: MsgPackSerializer)

serialization :: Serializable :: accept_msgpack_serializer

Hook to customize the serialization of this class to MessagePack
protected fun add_to_bundle(bundle: NativeBundle, key: JavaString)

serialization :: Serializable :: add_to_bundle

Called by []= to dynamically choose the appropriate method according
fun cause: nullable Error

core :: Error :: cause

An original error that caused the creation of this error, if any.
fun cause=(cause: nullable Error)

core :: Error :: cause=

An original error that caused the creation of this error, if any.
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun column_number: Int

sax :: SAXParseException :: column_number

The column number of the end of the text that
protected fun column_number=(column_number: Int)

sax :: SAXParseException :: column_number=

The column number of the end of the text that
fun core_serialize_to(serializer: Serializer)

serialization :: Serializable :: core_serialize_to

Actual serialization of self to serializer
init defaultinit(message: String)

core :: Error :: defaultinit

init from_deserializer(deserializer: Deserializer)

serialization :: Serializable :: from_deserializer

Create an instance of this class from the deserializer
fun full_message: String

sax :: SAXParseException :: full_message

Generate a complete message from the exception’s attributes.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun line_number: Int

sax :: SAXParseException :: line_number

The line number of the end of the text that
protected fun line_number=(line_number: Int)

sax :: SAXParseException :: line_number=

The line number of the end of the text that
fun message: String

core :: Error :: message

A short human-readable error message.
protected fun message=(message: String)

core :: Error :: message=

A short human-readable error message.
protected fun msgpack_extra_array_items: Int

serialization :: Serializable :: msgpack_extra_array_items

Hook to request a larger than usual metadata array
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun public_id: nullable String

sax :: SAXParseException :: public_id

The public identifer of the entity that generated
protected fun public_id=(public_id: nullable String)

sax :: SAXParseException :: public_id=

The public identifer of the entity that generated
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun serialize_msgpack(plain: nullable Bool): Bytes

serialization :: Serializable :: serialize_msgpack

Serialize self to MessagePack bytes
fun serialize_to(serializer: Serializer)

serialization :: Serializable :: serialize_to

Serialize self to serializer
fun serialize_to_json(plain: nullable Bool, pretty: nullable Bool): String

serialization :: Serializable :: serialize_to_json

Serialize self to JSON
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
fun system_id: nullable String

sax :: SAXParseException :: system_id

The system identifer of the entity that generated
protected fun system_id=(system_id: nullable String)

sax :: SAXParseException :: system_id=

The system identifer of the entity that generated
fun throw

sax :: SAXParseException :: throw

Display full_message with a stack trace, then abort.
fun to_json: String

serialization :: Serializable :: to_json

Serialize self to plain JSON
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_pretty_json: String

serialization :: Serializable :: to_pretty_json

Serialize self to plain pretty JSON
fun to_s: String

core :: Object :: to_s

User readable representation of self.
init with_info(message: String, public_id: nullable String, system_id: nullable String, line_number: Int, column_number: Int)

sax :: SAXParseException :: with_info

Create a new SAXParseException.
init with_locator(message: String, locator: SAXLocator)

sax :: SAXParseException :: with_locator

Create a new SAXParseException from a message and a Locator.
package_diagram sax::SAXParseException SAXParseException core::Error Error sax::SAXParseException->core::Error serialization::Serializable Serializable core::Error->serialization::Serializable ...serialization::Serializable ... ...serialization::Serializable->serialization::Serializable

Ancestors

interface Object

core :: Object

The root of the class hierarchy.
interface Serializable

serialization :: Serializable

Instances of this class can be passed to Serializer::serialize

Parents

class Error

core :: Error

Standard class for error messages

Class definitions

sax $ SAXParseException
# 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:16,1--136,3