+
Point of view
All features
class XML_TREE
Summary
DOM-like representation of an XML document
See also XML_PARSER
Direct parents
Inherit list: XML_CALLBACKS
Overview
Creation features
{ANY}
Features
{ANY}
{}
{XML_PARSER}
{}
{XML_PARSER}
writable attribute
{ANY}
The root of the tree
attribute_at (a_attribute_name: UNICODE_STRING): UNICODE_STRING
effective function
{ANY}
Usually to recover the "version" or "encoding" attributes
set_processing_instruction (target: UNICODE_STRING, processor: PROCEDURE[TUPLE 1[UNICODE_STRING]])
effective procedure
{ANY}
require
  • target /= Void
  • processor /= Void
writable attribute
{}
writable attribute
{}
writable attribute
{}
once function
{}
with_attribute (attribute_name: UNICODE_STRING, attribute_value: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
Called by the parser to add an attribute of a node BEFORE calling open_node
require
  • not attribute_name.is_empty
  • attribute_value /= Void
open_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
When the parser reads an opening node
require
  • not node_name.is_empty
ensure
  • not at_error implies current_node.is_equal(node_name)
close_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
When the parser reads a closing node
require
  • not node_name.is_empty
  • current_node.is_equal(node_name)
open_close_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
When the parser reads a node that opens and closes immediately (syntax "<node/>")
require
  • not node_name.is_empty
xml_header (line: INTEGER_32, column: INTEGER_32)
effective procedure
Called by the parser if a "<?xml ... ?>"
header is read. Note that with_attribute may have been called first (usually with the version and encoding attributes)
processing_instruction (a_target: UNICODE_STRING, a_data: UNICODE_STRING)
effective procedure
Called by the parser if a "<?...?>"
processing instruction is read.
current_node: UNICODE_STRING
effective function
The current node
entity (a_entity: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): UNICODE_STRING
effective function
Called by the parser when an &entity; is found.
Note that standard XML attributes (lt, gt, amp, apos and quot) are automatically handled and not given to this feature (they cannot be bypassed). Returns Void if the entity is not recognized.
open_entity_url (a_entity: UNICODE_STRING, a_url: URL)
effective procedure
Called by the parser when the entity triggers the reading of another stream (i.e. a SYSTEM or PUBLIC entity)
require
  • a_url /= Void
close_entity_url (a_entity: UNICODE_STRING, a_url: URL)
effective procedure
Called by the parser when the stream triggered by open_entity_url is disconnected
require
  • a_url /= Void
data (a_data: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
Called by the parser when the node contains raw data
require
  • not a_data.is_empty
parse_error (line: INTEGER_32, column: INTEGER_32, message: STRING)
effective procedure
Called by the parser if there is an error
require
  • message /= Void
ensure
  • at_error
at_error: BOOLEAN
writable attribute
True if there was at least an error
writable attribute
{}
make (url: URL)
effective procedure
{}
read the xml tree at the given url
require
  • url.is_connected implies url.read
with_error_handler (url: URL, a_error_handler: PROCEDURE[TUPLE 3[INTEGER_32, INTEGER_32, STRING]])
effective procedure
{}
new_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): XML_COMPOSITE_NODE
effective function
{}
parser: XML_PARSER
once function
{}
set_validator (a_validator: XML_VALIDATOR)
effective procedure
Sets a validator for this XML file.
The parser uses it when setting a DTD, but you may use it too to implement other validators (such as an XML Schema).
require ensure
validator: XML_VALIDATOR
writable attribute
The XML validator for this file (DTD, XML Schema...)