Basic interface for resolving entities.

If a SAX application needs to implement customized handling for external entities, it must implement this interface and register an instance with the SAX driver using the sax::XMLReader.entity_resolver property.

The XML reader will then allow the application to intercept any external entities (including the external DTD subset and external parameter entities, if any) before including them.

Many SAX applications will not need to implement this interface, but it will be especially useful for applications that build XML documents from databases or other specialised input sources, or for applications that use URI types other than URLs.

The application can also use this interface to redirect system identifiers to local URIs or to look up replacements in a catalog (possibly by using the public identifier).

Note: The original documentation comes from SAX 2.0.

SEE: sax::XMLReader.entity_resolver

SEE: InputSource

Introduced properties

fun resolve_entity(public_id: nullable String, system_id: nullable String): nullable InputSource

sax :: EntityResolver :: resolve_entity

Allow the application to resolve external entities.

Redefined properties

redef type SELF: EntityResolver

sax $ EntityResolver :: SELF

Type of this instance, automatically specialized in every class

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 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 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.
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
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 resolve_entity(public_id: nullable String, system_id: nullable String): nullable InputSource

sax :: EntityResolver :: resolve_entity

Allow the application to resolve external entities.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram sax::EntityResolver EntityResolver core::Object Object sax::EntityResolver->core::Object sax::XMLFilterImpl XMLFilterImpl sax::XMLFilterImpl->sax::EntityResolver saxophonit::SAXEventLogger SAXEventLogger saxophonit::SAXEventLogger->sax::XMLFilterImpl saxophonit::SAXEventLogger... ... saxophonit::SAXEventLogger...->saxophonit::SAXEventLogger

Parents

interface Object

core :: Object

The root of the class hierarchy.

Children

class XMLFilterImpl

sax :: XMLFilterImpl

Base class for deriving an XML filter.

Descendants

class SAXEventLogger

saxophonit :: SAXEventLogger

A filter that internally log events it recieves.

Class definitions

sax $ EntityResolver
# Basic interface for resolving entities.
#
# If a SAX application needs to implement customized handling
# for external entities, it must implement this interface and
# register an instance with the SAX driver using the
# `sax::XMLReader.entity_resolver` property.
#
# The XML reader will then allow the application to intercept any
# external entities (including the external DTD subset and external
# parameter entities, if any) before including them.
#
# Many SAX applications will not need to implement this interface,
# but it will be especially useful for applications that build
# XML documents from databases or other specialised input sources,
# or for applications that use URI types other than URLs.
#
# The application can also use this interface to redirect system
# identifiers to local URIs or to look up replacements in a catalog
# (possibly by using the public identifier).
#
# Note: The original documentation comes from [SAX 2.0](http://www.saxproject.org).
#
# SEE: `sax::XMLReader.entity_resolver`
#
# SEE: `sax::InputSource`
abstract class EntityResolver

	# Allow the application to resolve external entities.
	#
	# The parser will call this method before opening any external
	# entity except the top-level document entity. Such entities include
	# the external DTD subset and external parameter entities referenced
	# within the DTD (in either case, only if the parser reads external
	# parameter entities), and external general entities referenced
	# within the document element (if the parser reads external general
	# entities). The application may request that the parser locate
	# the entity itself, that it use an alternative URI, or that it
	# use data provided by the application (as a character or byte
	# input stream).
	#
	# Application writers can use this method to redirect external
	# system identifiers to secure and/or local URIs, to look up
	# public identifiers in a catalogue, or to read an entity from a
	# database or other input source (including, for example, a dialog
	# box). Neither XML nor SAX specifies a preferred policy for using
	# public or system IDs to resolve resources. However, SAX specifies
	# how to interpret any InputSource returned by this method, and that
	# if none is returned, then the system ID will be dereferenced as
	# a URL.
	#
	# If the system identifier is a URL, the SAX parser must
	# resolve it fully before reporting it to the application.
	#
	# Parameters:
	#
	# * `public_id`: public identifier of the external entity
	# being referenced, or `null` if none was supplied.
	# * `system_id`: system identifier of the external entity
	# being referenced.
	#
	# Returns:
	#
	# An `InputSource` object describing the new input source,
	# or `null` to request that the parser open a regular
	# URI connection to the system identifier.
	fun resolve_entity(public_id: nullable String, system_id: nullable String):
			nullable InputSource do
		return null
	end
end
lib/sax/entity_resolver.nit:16,1--85,3