A (potentially) multi-line spanning XML Tag start

Introduced properties

fun data: nullable String

dom :: XMLStartTag :: data

Content of this XML tag held within a PCDATA or CDATA
init defaultinit(location: nullable Location, tag_name: String, attributes: Array[XMLAttribute], matching: nullable XMLEndTag)

dom :: XMLStartTag :: defaultinit

fun matching: nullable XMLEndTag

dom :: XMLStartTag :: matching

Optional matching tag, must be matched for the document to be well-formed
protected fun matching=(matching: nullable XMLEndTag)

dom :: XMLStartTag :: matching=

Optional matching tag, must be matched for the document to be well-formed

Redefined properties

redef type SELF: XMLStartTag

dom $ XMLStartTag :: SELF

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

dom $ XMLStartTag :: 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
fun [](tag_name: String): Array[XMLTag]

dom :: XMLEntity :: []

The XMLTag children with the tag_name
fun attributes: Array[XMLAttribute]

dom :: XMLAttrTag :: attributes

List of attributes in a Tag
protected fun attributes=(attributes: Array[XMLAttribute])

dom :: XMLAttrTag :: attributes=

List of attributes in a Tag
fun attributes_to_map: Map[String, String]

dom :: XMLAttrTag :: attributes_to_map

Attributes as a map (ignoring malformed attributes)
fun children: Sequence[XMLEntity]

dom :: XMLEntity :: children

The children of self
protected fun children=(children: Sequence[XMLEntity])

dom :: XMLEntity :: children=

The children of self
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 data: nullable String

dom :: XMLStartTag :: data

Content of this XML tag held within a PCDATA or CDATA
init defaultinit(location: nullable Location, tag_name: String)

dom :: XMLTag :: defaultinit

init defaultinit(location: nullable Location, tag_name: String, attributes: Array[XMLAttribute], matching: nullable XMLEndTag)

dom :: XMLStartTag :: defaultinit

init defaultinit(location: nullable Location, tag_name: String, attributes: Array[XMLAttribute])

dom :: XMLAttrTag :: defaultinit

init defaultinit(location: nullable Location)

dom :: XMLEntity :: defaultinit

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 location: nullable Location

dom :: XMLEntity :: location

Optional location of the entity in source
protected fun location=(location: nullable Location)

dom :: XMLEntity :: location=

Optional location of the entity in source
fun matching: nullable XMLEndTag

dom :: XMLStartTag :: matching

Optional matching tag, must be matched for the document to be well-formed
protected fun matching=(matching: nullable XMLEndTag)

dom :: XMLStartTag :: matching=

Optional matching tag, must be matched for the document to be well-formed
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 parent: nullable XMLEntity

dom :: XMLEntity :: parent

Optional parent of self
fun parent=(e: XMLEntity)

dom :: XMLEntity :: parent=

Sets the parent of self to e
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.
fun tag_name: String

dom :: XMLTag :: tag_name

The name of the tag
protected fun tag_name=(tag_name: String)

dom :: XMLTag :: tag_name=

The name of the tag
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 dom::XMLStartTag XMLStartTag dom::XMLAttrTag XMLAttrTag dom::XMLStartTag->dom::XMLAttrTag dom::XMLTag XMLTag dom::XMLAttrTag->dom::XMLTag ...dom::XMLTag ... ...dom::XMLTag->dom::XMLTag

Ancestors

interface Object

core :: Object

The root of the class hierarchy.
abstract class XMLEntity

dom :: XMLEntity

Any kind of XML Entity
abstract class XMLTag

dom :: XMLTag

A Tag is a node in a DOM tree

Parents

abstract class XMLAttrTag

dom :: XMLAttrTag

Any kind of XML tag with attributes

Class definitions

dom $ XMLStartTag
# A (potentially) multi-line spanning XML Tag start
class XMLStartTag
	super XMLAttrTag

	# Optional matching tag, must be matched for the document to be well-formed
	var matching: nullable XMLEndTag

	redef fun to_s do
		var s = "<{tag_name}"
		if not attributes.is_empty then
			s += " "
			s += attributes.join(" ")
		end
		s += ">"
		for i in children do s += i.to_s
		var matching = self.matching
		if matching != null then s += matching.to_s
		return s
	end
end
lib/dom/xml_entities.nit:188,1--207,3

dom :: dom $ XMLStartTag
redef class XMLStartTag

	# Content of this XML tag held within a `PCDATA` or `CDATA`
	#
	# ~~~
	# var code = """
	# <?xml version="1.0" encoding="us-ascii"?>
	# <animal>
	#     <cat/>
	#     <tiger>This is a white tiger!</tiger>
	#     <cat/>
	# </animal>"""
	#
	# var xml = code.to_xml
	# assert xml["animal"].first["tiger"].first.as(XMLStartTag).data == "This is a white tiger!"
	# ~~~
	fun data: nullable String
	do
		for child in children do
			if child isa PCDATA then return child.content
			if child isa CDATA then return child.content
		end
		return null
	end
end
lib/dom/dom.nit:45,1--69,3