Interface for a list of XML attributes.

This interface allows access to a list of attributes in three different ways:

  • by attribute index;
  • by Namespace-qualified name; or
  • by qualified (prefixed) name.

The list will not contain attributes that were declared #IMPLIED but not specified in the start tag. It will also not contain attributes used as Namespace declarations (xmlns*) unless the http://xml.org/sax/features/namespace-prefixes feature is set to true (it is false by default). Because SAX2 conforms to the "Namespaces in XML" specification, it does not give namespace declaration attributes a namespace URI. Some other W3C specifications are in conflict with that, expecting these declarations to be in a namespace. Handler code may need to resolve that conflict.

If the namespace-prefixes feature (see above) is false, access by qualified name may not be available; if the http://xml.org/sax/features/namespaces feature is false, access by Namespace-qualified names may not be available.

The order of attributes in the list is unspecified, and will vary from implementation to implementation.

Note: The original documentation comes from SAX 2.0.

SEE: sax::helpers::AttributesImpl

SEE: sax::ext::DeclHandler.attribute_decl

Introduced properties

abstract fun index_ns(uri: String, local_name: String): Int

sax :: Attributes :: index_ns

Look up the index of an attribute by Namespace name.
abstract fun index_of(qname: String): Int

sax :: Attributes :: index_of

Look up the index of an attribute by XML 1.0 qualified name.
abstract fun length: Int

sax :: Attributes :: length

Return the number of attributes in the list.
abstract fun local_name(index: Int): nullable String

sax :: Attributes :: local_name

Look up an attribute's local name by index.
abstract fun qname(index: Int): nullable String

sax :: Attributes :: qname

Look up an attribute's XML 1.0 qualified name by index.
abstract fun type_ns(uri: String, local_name: String): nullable String

sax :: Attributes :: type_ns

Look up an attribute's type by Namespace name.
abstract fun type_of(index: Object): nullable String

sax :: Attributes :: type_of

Look up an attribute's type by index.
abstract fun uri(index: Int): nullable String

sax :: Attributes :: uri

Look up an attribute's Namespace URI by index.
abstract fun value_ns(uri: String, local_name: String): nullable String

sax :: Attributes :: value_ns

Look up an attribute's value by Namespace name.
abstract fun value_of(index: Object): nullable String

sax :: Attributes :: value_of

Look up an attribute's value by index.

Redefined properties

redef type SELF: Attributes

sax $ Attributes :: 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.
abstract fun index_ns(uri: String, local_name: String): Int

sax :: Attributes :: index_ns

Look up the index of an attribute by Namespace name.
abstract fun index_of(qname: String): Int

sax :: Attributes :: index_of

Look up the index of an attribute by XML 1.0 qualified name.
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.
abstract fun length: Int

sax :: Attributes :: length

Return the number of attributes in the list.
abstract fun local_name(index: Int): nullable String

sax :: Attributes :: local_name

Look up an attribute's local name by index.
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).
abstract fun qname(index: Int): nullable String

sax :: Attributes :: qname

Look up an attribute's XML 1.0 qualified name by index.
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.
abstract fun type_ns(uri: String, local_name: String): nullable String

sax :: Attributes :: type_ns

Look up an attribute's type by Namespace name.
abstract fun type_of(index: Object): nullable String

sax :: Attributes :: type_of

Look up an attribute's type by index.
abstract fun uri(index: Int): nullable String

sax :: Attributes :: uri

Look up an attribute's Namespace URI by index.
abstract fun value_ns(uri: String, local_name: String): nullable String

sax :: Attributes :: value_ns

Look up an attribute's value by Namespace name.
abstract fun value_of(index: Object): nullable String

sax :: Attributes :: value_of

Look up an attribute's value by index.
package_diagram sax::Attributes Attributes core::Object Object sax::Attributes->core::Object sax::AttributesImpl AttributesImpl sax::AttributesImpl->sax::Attributes

Parents

interface Object

core :: Object

The root of the class hierarchy.

Children

class AttributesImpl

sax :: AttributesImpl

Default implementation of the Attributes interface.

Class definitions

sax $ Attributes
# Interface for a list of XML attributes.
#
# This interface allows access to a list of attributes in
# three different ways:
#
# * by attribute index;
# * by Namespace-qualified name; or
# * by qualified (prefixed) name.
#
# The list will not contain attributes that were declared
# `#IMPLIED` but not specified in the start tag. It will also not
# contain attributes used as Namespace declarations (`xmlns*`) unless
# the `http://xml.org/sax/features/namespace-prefixes`
# feature is set to `true` (it is `false` by default).
# Because SAX2 conforms to the "Namespaces in XML" specification,
# it does not give namespace declaration attributes a namespace URI.
# Some other W3C specifications are in conflict with that, expecting
# these declarations to be in a namespace.
# Handler code may need to resolve that conflict.
#
# If the namespace-prefixes feature (see above) is `false`,
# access by qualified name may not be available; if the
# `http://xml.org/sax/features/namespaces`
# feature is `false`, access by Namespace-qualified names
# may not be available.
#
# The order of attributes in the list is unspecified, and will
# vary from implementation to implementation.
#
# Note: The original documentation comes from [SAX 2.0](http://www.saxproject.org).
#
# SEE: `sax::helpers::AttributesImpl`
#
# SEE: `sax::ext::DeclHandler.attribute_decl`
interface Attributes

	# Return the number of attributes in the list.
	fun length: Int is abstract

	# Look up an attribute's Namespace URI by index.
	#
	# Parameters:
	#
	# * `index`: attribute index.
	#
	# Returns:
	#
	# The Namespace URI, or the empty string if none
	# is available, or `null` if the index is out of
	# range.
	#
	# SEE: `length`
	fun uri(index: Int): nullable String is abstract

	# Look up an attribute's local name by index.
	#
	# Parameters:
	#
	# * `index`: attribute index.
	#
	# Returns:
	#
	# The local name, or the empty string if Namespace
	# processing is not being performed, or `null`
	# if the index is out of range.
	#
	# SEE: `length`
	fun local_name(index: Int): nullable String is abstract

	# Look up an attribute's XML 1.0 qualified name by index.
	#
	# Parameters:
	#
	# * `index`: attribute index.
	#
	# Returns:
	#
	# The XML 1.0 qualified name, or the empty string
	# if none is available, or `null` if the index
	# is out of range.
	#
	# SEE: `length`
	fun qname(index: Int): nullable String is abstract

	# Look up an attribute's type by index.
	#
	# 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 Recommentation
	# (clause 3.3.3, "Attribute-Value Normalization").
	#
	# For an enumerated attribute that is not a notation, the
	# parser will report the type as `NMTOKEN`.
	#
	# Parameters:
	#
	# * `index: Int`: attribute index.
	# * `index: String`: XML 1.0 qualified (prefixed) name.
	#
	# Returns:
	#
	# The attribute's type as a string, or `null` if the specified
	# attribute is not in the list or if qualified names
	# are not available.
	#
	# SEE: `length`
	fun type_of(index: Object): nullable String is abstract

	# Look up an attribute's value by index.
	#
	# If the attribute value is a list of tokens (`IDREFS`,
	# `ENTITIES`, or `NMTOKENS`), the tokens will be concatenated
	# into a single string with each token separated by a
	# single space.
	#
	# Parameters:
	#
	# * `index: Int`: attribute index.
	# * `index: String`: XML 1.0 qualified (prefixed) name.
	#
	# Returns:
	#
	# The attribute's value as a string, or `null` if the specified
	# attribute is not in the list or if qualified names
	# are not available.
	#
	# SEE: `length`
	fun value_of(index: Object): nullable String is abstract

	# Look up the index of an attribute by Namespace name.
	#
	# Parameters:
	#
	# * `uri`: Namespace URI, or the empty string if
	# the name has no Namespace URI.
	# * `local_name`: attribute's local name.
	#
	# Returns:
	#
	# The index of the attribute, or -1 if it does not
	# appear in the list.
	fun index_ns(uri: String, local_name: String): Int is abstract

	# Look up the index of an attribute by XML 1.0 qualified name.
	#
	# Parameters:
	#
	# * `qname`: XML 1.0 qualified (prefixed) name.
	#
	# Returns:
	#
	# The index of the attribute, or -1 if it does not
	# appear in the list.
	fun index_of(qname: String): Int is abstract

	# Look up an attribute's type by Namespace name.
	#
	# See `type_of` for a description
	# of the possible types.
	#
	# Parameters:
	#
	# * `uri`: Namespace URI, or the empty string if
	# the name has no Namespace URI.
	#
	# * `local_name`: attribute's local name.
	#
	# Returns:
	#
	# The attribute type as a string, or `null` if the
	# attribute is not in the list or if Namespace
	# processing is not being performed.
	fun type_ns(uri: String, local_name: String): nullable String is abstract

	# Look up an attribute's value by Namespace name.
	#
	# See `value_of` for a description
	# of the possible values.
	#
	# Parameters:
	#
	# * `uri`: Namespace URI, or the empty string if
	# the name has no Namespace URI.
	#
	# * `local_name`: attribute's local name.
	#
	# Returns:
	#
	# The attribute value as a string, or `null` if the
	# attribute is not in the list or if Namespace
	# processing is not being performed.
	fun value_ns(uri: String, local_name: String): nullable String is abstract
end
lib/sax/attributes.nit:14,1--210,3