+
Point of view
All features
class XML_DTD_PARSER
Summary
Parses a validation instruction in an XML file:
 <!DOCTYPE . . .>
Direct parents
Insert list: SINGLETON, URL_VALIDITY, XML_DTD_MEMORY, XML_PARSER_TOOLS
Class invariant
Overview
Creation features
{XML_PARSER}
Features
Error reporting
{XML_PARSER}
{XML_PARSER}
{}
{}
{}
{}
{ANY}
{}
{ANY}
Memory management
{}
{ANY}
  • is_equal (other: XML_DTD_PARSER): BOOLEAN
    Is other attached to an object considered equal to current object?
{}
{ANY}
has_error: BOOLEAN
effective function
error_message: STRING
effective function
require
effective function
require
  • a_buffer /= Void
urls: FAST_ARRAY[URL]
writable attribute
{}
writable attribute
{}
set_buffer (a_buffer: UNICODE_PARSER_BUFFER)
effective procedure
{}
set_url (a_url: URL)
effective procedure
{}
url: URL
effective function
{}
effective function
{}
relative_url (a_url: STRING): URL
effective function
{}
require
  • not a_url.is_empty
parse_system_dtd (validator: XML_DTD_VALIDATOR): URL
effective function
{}
ensure
parse_public_dtd (validator: XML_DTD_VALIDATOR): URL
effective function
{}
ensure
parse_external_dtd (validator: XML_DTD_VALIDATOR, a_url: URL)
effective procedure
{}
require ensure
parse_inline_dtd (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_dtd (validator: XML_DTD_VALIDATOR, standalone: BOOLEAN)
effective procedure
{}
parse_xml_header
effective procedure
{}
parse_attribute: BOOLEAN
effective function
{}
an attribute in the XML header
skip_comment
effective procedure
{}
parse_element (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_element_children (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_element_child_list (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_element_child_alt (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_element_child (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_attlist (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_attlist_option (validator: XML_DTD_VALIDATOR)
effective procedure
{}
parse_entity (validator: XML_DTD_VALIDATOR)
effective procedure
{}
entity_system_file (path: STRING): UNICODE_STRING
effective function
{}
entity_public_url (pubid: UNICODE_STRING, a_url: STRING): UNICODE_STRING
effective function
{}
entity_public_file (pubid: UNICODE_STRING, a_url: STRING): UNICODE_STRING
effective function
{}
read_stream_in (a_buffer: UNICODE_STRING, u: URL)
effective procedure
{}
require
  • u.is_connected
ensure
  • not u.is_connected
in_comment: BOOLEAN
writable attribute
{}
next
effective procedure
{}
require
  • buffer.is_connected
  • not end_of_input
current_character: INTEGER_32
effective function
{}
require
  • buffer.is_connected
  • not end_of_input
end_of_input: BOOLEAN
effective function
{}
require
  • buffer.is_connected
pe_entity_names: FAST_ARRAY[UNICODE_STRING]
writable attribute
{}
pe_entity_strings: FAST_ARRAY[UNICODE_STRING]
writable attribute
{}
pe_entity_old_indexes: FAST_ARRAY[INTEGER_32]
writable attribute
{}
writable attribute
{}
pe_index: INTEGER_32
writable attribute
{}
has_pe_entity (pe_entity_name: UNICODE_STRING): BOOLEAN
effective function
{}
add_pe_entity (pe_entity_name: UNICODE_STRING, string: UNICODE_STRING)
effective procedure
{}
require
make
effective procedure
{}
Error_end_of_file: STRING
is "Unexpected end of file"
constant attribute
{}
error: STRING
writable attribute
{}
set_error (a_error: STRING)
effective procedure
{}
line: INTEGER_32
effective function
{ANY}
column: INTEGER_32
effective function
{ANY}
skip_blanks
effective procedure
{}
require
previous
effective procedure
{}
require
skip (character: CHARACTER): BOOLEAN
effective function
{}
require
skip2 (char1: CHARACTER, char2: CHARACTER): BOOLEAN
effective function
{}
require
skip_word (word: STRING): BOOLEAN
effective function
{}
require
  • buffer.is_connected
  • not word.is_empty
is_identifier_start (unicode: INTEGER_32): BOOLEAN
effective function
{}
require
is_identifier_part (unicode: INTEGER_32): BOOLEAN
effective function
{}
require
read_identifier: UNICODE_STRING
effective function
{}
require
read_string: UNICODE_STRING
effective function
{}
require
read_identifier_as_string: STRING
effective function
{}
require
read_string_as_string: STRING
effective function
{}
require
is_separator (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_base_char (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_ideographic (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_combining_char (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_extender (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_letter (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
is_digit (unicode: INTEGER_32): BOOLEAN
effective function
{ANY}
dtd_validators_pool: RECYCLING_POOL[XML_DTD_VALIDATOR]
effective function
{}
new_dtd_validator (root_node_name: UNICODE_STRING): XML_DTD_VALIDATOR
effective function
{}
ensure
  • Result /= Void
  • Result.root_name = root_node_name
recycle_dtd_validator (a_validator: XML_DTD_VALIDATOR)
effective procedure
{}
once function
{}
new_empty_string: UNICODE_STRING
effective function
{}
ensure
  • Result /= Void
new_string (s: UNICODE_STRING): UNICODE_STRING
effective function
{}
require
  • s /= Void
ensure
  • Result.is_equal(s)
free_string (a_string: UNICODE_STRING)
effective procedure
{}
require
  • a_string /= Void
url_pool: RECYCLING_POOL[URL]
once function
{}
once function
{}
is_equal (other: XML_DTD_PARSER): BOOLEAN
effective function
{ANY}
Is other attached to an object considered equal to current object?
require
  • other /= Void
ensure
  • commutative: generating_type = other.generating_type implies Result = other.is_equal(Current)
is_real_singleton: BOOLEAN
effective function
{}
ensure
  • assertion_check_only: Result
singleton_memory_pool: HASHED_DICTIONARY[POINTER, STRING]
once function
{}
This pool is unique in the whole system.
A memory is kept for each singleton type (type, not class) in the system.
current_is_not_an_expanded_type: BOOLEAN
effective function
{}
Check that the dynamic type of the SINGLETON is not an expanded type.
valid_url (a_url: ABSTRACT_STRING): BOOLEAN
effective function
{ANY}
True if the STRING represents a real URL (i.e. with a known protocol and a valid URI for that protocol)
require
  • a_url /= Void