class XML_DTD_VALIDATOR
Summary
Helps the parser to validate an XML file using a DTD
Direct parents
Inherit list: BACKTRACKING, XML_VALIDATOR
Insert list: RECYCLABLE, XML_DTD_MEMORY
Class invariant
Overview
Creation features
{XML_DTD_MEMORY}
Features
{XML_PARSER}
Nodes management, for validation
{}
Attributes string management
{}
{XML_DTD_PARSER}
<!ELEMENT . . .>
{XML_DTD_PARSER}
{}
<!ATTLIST . . .>
{XML_DTD_PARSER}
<!ENTITY . . .>
{XML_DTD_PARSER}
{XML_DTD_ELEMENT}
{XML_DTD_ELEMENT}
{XML_DTD_PCDATA_NODE}
{XML_DTD_ANY_NODE}
{XML_DTD_EMPTY_NODE}
{XML_DTD_END_NODE}
Backtracking internals
{}
{XML_DTD_MEMORY}
{RECYCLING_POOL}
  • recycle
    Do whatever needs to be done to free resources or recycle other objects when recycling this one
{}
{ANY}
internal
{}
Common client features
{ANY}
Control of the exploration
{ANY}
Internal
{}
Specific to sequences
{ABSTRACT_BACKTRACKING_SEQUENCE}
Specific to alternatives
{ABSTRACT_BACKTRACKING_ALTERNATIVE}
internal: allocation and collection
{}
{ANY}
the pools
{ANY}
Memory management
{}
writable attribute
writable attribute
point: XML_DTD_NODE
writable attribute
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
is_valid_open_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): BOOLEAN
effective function
When the parser reads an opening node
is_valid_close_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): BOOLEAN
effective function
When the parser reads a closing node
is_valid_open_close_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): BOOLEAN
effective function
When the parser reads a node that opens and closes immediately (syntax "<node/>")
current_node: UNICODE_STRING
effective function
The current node
open_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
When the parser reads an opening node
close_node (node_name: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
When the parser reads a closing node
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/>")
entity (a_entity: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): UNICODE_STRING
effective function
When the parser reads an &entity;'.
entity_url (a_entity: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): UNICODE_STRING
effective function
When the parser reads an &entity;'.
is_valid_data (a_data: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32): BOOLEAN
effective function
Called by the parser when the node contains raw data
data (a_data: UNICODE_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
Called by the parser when the node contains raw data
the_end
effective procedure
Called when the xml is totally parsed; usually it is used to recycle memory resources
once function
{}
new_node (element: XML_DTD_ELEMENT, parent: XML_DTD_NODE): XML_DTD_NODE
effective function
{}
free_node (a_node: XML_DTD_NODE)
effective procedure
{}
clear_attributes
effective procedure
{}
parse_done
effective procedure
Called when done parsing the DTD
current_element: XML_DTD_ELEMENT
writable attribute
element_built (element_name: UNICODE_STRING): BOOLEAN
effective function
adding_element (element_name: UNICODE_STRING): BOOLEAN
effective function
building_element: BOOLEAN
effective function
add_element (element_name: UNICODE_STRING)
effective procedure
commit_element (element_name: UNICODE_STRING)
effective procedure
close_fix
effective procedure
close_exactly_one
effective procedure
close_zero_or_one
effective procedure
close_zero_or_more
effective procedure
close_one_or_more
effective procedure
add_list
effective procedure
add_alt
effective procedure
child_pcdata
effective procedure
child_any
effective procedure
child_empty
effective procedure
child_one_or_more (node: UNICODE_STRING)
effective procedure
child_zero_or_more (node: UNICODE_STRING)
effective procedure
child_zero_or_one (node: UNICODE_STRING)
effective procedure
child_exactly_one (node: UNICODE_STRING)
effective procedure
root_element: XML_DTD_ELEMENT
effective function
{}
get_element (element_name: UNICODE_STRING): XML_DTD_ELEMENT
effective function
{}
once function
{}
attlist_element: XML_DTD_ELEMENT
writable attribute
building_attlist: BOOLEAN
effective function
has_attlist (element_name: UNICODE_STRING, attribute_name: UNICODE_STRING): BOOLEAN
effective function
adding_attlist (element_name: UNICODE_STRING, attribute_name: UNICODE_STRING): BOOLEAN
effective function
add_attlist (element_name: UNICODE_STRING, attribute_name: UNICODE_STRING)
effective procedure
commit_attlist (element_name: UNICODE_STRING, attribute_name: UNICODE_STRING)
effective procedure
addlist_list_value (value: UNICODE_STRING)
effective procedure
attlist_cdata
effective procedure
attlist_id
effective procedure
attlist_idref
effective procedure
attlist_idrefs
effective procedure
attlist_nmtoken
effective procedure
attlist_nmtokens
effective procedure
attlist_entity
effective procedure
attlist_entities
effective procedure
attlist_notation
effective procedure
attlist_required
effective procedure
attlist_implied
effective procedure
attlist_valid_fixed (value: UNICODE_STRING): BOOLEAN
effective function
attlist_fixed (value: UNICODE_STRING)
effective procedure
attlist_default_value (value: UNICODE_STRING)
effective procedure
has_entity (entity_name: UNICODE_STRING): BOOLEAN
effective function
add_entity (entity_name: UNICODE_STRING, entity_value: UNICODE_STRING, entity__url: UNICODE_STRING)
effective procedure
backtrack_valid_data (a_children: FAST_ARRAY[XML_DTD_NODE], a_node: BACKTRACKING_NODE, a_data: UNICODE_STRING): BOOLEAN
effective function
backtrack_is_valid (a_children: FAST_ARRAY[XML_DTD_NODE], a_node: BACKTRACKING_NODE, a_next: UNICODE_STRING): BOOLEAN
effective function

backtrack_valid_child (elt: XML_DTD_ELEMENT)
effective procedure
backtrack_valid_pcdata
effective procedure
backtrack_valid_any
effective procedure
backtrack_valid_empty
effective procedure
backtrack_valid_end
effective procedure
backtrack_pcdata: UNICODE_STRING
writable attribute
{}
backtrack_children: FAST_ARRAY[XML_DTD_NODE]
writable attribute
{}
backtrack_index: INTEGER_32
writable attribute
{}
backtrack_ok: BOOLEAN
writable attribute
{}
backtrack_next: UNICODE_STRING
writable attribute
{}
writable attribute
{}
context_clear
effective procedure
{}
Clear any saved context.
context_push
effective procedure
{}
Push the current context.
context_restore
effective procedure
{}
Restore the context to the last saved one.
context_restore_and_pop
effective procedure
{}
Restore the context to the last saved one and drop it.
context_cut
effective procedure
{}
Remove the last saved context.
root_name: UNICODE_STRING
writable attribute
make (root_node_name: UNICODE_STRING)
effective procedure
recycle
effective procedure
Do whatever needs to be done to free resources or recycle other objects when recycling this one
recycle_elements
effective procedure
{}
recycle_entity_urls
effective procedure
{}
backtrack_next_pcdata_marker: UNICODE_STRING
once function
{}
set_current_node (node: BACKTRACKING_NODE)
effective procedure
{ANY}
Sets the next node of the BACKTRACKING_NODE graph to evaluate.
push_and (node: BACKTRACKING_NODE)
effective procedure
{ANY}
Pushes node in front of the continuation path.
push_and_list (list: BACKTRACKING_NODE_AND_LIST)
effective procedure
{ANY}
Pushes list in front of the continuation path.
push_or (node: BACKTRACKING_NODE)
effective procedure
{ANY}
Pushes node in front of the possible alternatives.
push_or_list (list: BACKTRACKING_NODE_OR_LIST)
effective procedure
{ANY}
Pushes list in front of the possible alternatives.
evaluate_current_state
effective procedure
{}
That feature is called to evaluate the current state
search_first
effective procedure
{ANY}
Resets all and searches the first solution.
search_next
effective procedure
{ANY}
Searches the next solution.
search_is_success: BOOLEAN
writable attribute
{ANY}
True when search is successful
is_off: BOOLEAN
effective function
{ANY}
True when search is finished
clear
effective procedure
{ANY}
Clears the current state to nothing.
is_cleared: BOOLEAN
effective function
{ANY}
True if no partial data remain in the current state
push_sequence (sequence: ABSTRACT_BACKTRACKING_SEQUENCE)
effective procedure
{ANY}
Pushes the sequence in front of the continuation path.
push_alternative (alternative: ABSTRACT_BACKTRACKING_ALTERNATIVE)
effective procedure
{ANY}
Pushes the alternative before the continuation path.
continue
effective procedure
{ANY}
Continues the exploration of the current path.
backtrack
effective procedure
{ANY}
Stops the exploration of the current path and tries to explore the next alternative path.
push_cut_point
effective procedure
{ANY}
Inserts a cut point into the continuation path.
cut
effective procedure
{ANY}
Removes the alternatives until the one recorded by the next cut point in the continuation path.
cut_all
effective procedure
{ANY}
Cuts all alternatives.
stop_search_loop: BOOLEAN
writable attribute
{}
True if at the end of a search.
search
effective procedure
{}
Common search loop to search_first and search_next
cut_until (alternative: ABSTRACT_BACKTRACKING_ALTERNATIVE)
effective procedure
{}
Cut all alternatives until 'alternative'.
Stack of sequences represented by its top (can be Void)
current_continuation: ABSTRACT_BACKTRACKING_SEQUENCE
writable attribute
The current continuation path
pop_sequence
effective procedure
Removes the current sequence and replace it by the next sequence in the continuation path.
Stack of alternatives represented by its top (can be Void)
continue_alternative
effective procedure
Returns to the alternative on the top of the stack and put its saved continuation path as the current continuation path.
pop_alternative
effective procedure
Returns to the alternative on the top of the stack and put its saved continuation path as the current continuation path.
remove_top_sequence
effective procedure
{}
Removes the top sequence.
remove_top_alternative
effective procedure
{}
Removes the top alternative.
once function
{ANY}
Bank of cut points
once function
{ANY}
pool_of_sequence_list: BACKTRACKING_POOL_OF_SEQUENCE_LIST
once function
{ANY}
pool_of_alternative: BACKTRACKING_POOL_OF_ALTERNATIVE
once function
{ANY}
pool_of_alternative_list: BACKTRACKING_POOL_OF_ALTERNATIVE_LIST
once 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
{}
recycle_dtd_validator (a_validator: XML_DTD_VALIDATOR)
effective procedure
{}
once function
{}
new_empty_string: UNICODE_STRING
effective function
{}
new_string (s: UNICODE_STRING): UNICODE_STRING
effective function
{}
free_string (a_string: UNICODE_STRING)
effective procedure
{}
url_pool: RECYCLING_POOL[URL]
once function
{}
once function
{}