Description
This package provides a simple minded XML parser to be used with
Gate.
  
  
  
  
   Types
   
     - 
         type Free_Specific_Data is access
     procedure (Data : in out XML_Specific_Data); 
- 
         type Node is record
      Tag   : String_Ptr; 
- 
         type Node_Ptr is access all Node; 
- 
         type XML_Specific_Data is private; 
  
   
   
  
   Subprograms
   
     - 
function Parse (File : String) return Node_Ptr; 
- 
function Parse_Buffer (Buffer : UTF8_String) return Node_Ptr; 
- 
procedure Print (N : Node_Ptr; File_Name : String := ""); 
- 
function Protect (S : String) return String; 
- 
function Find_Tag (N : Node_Ptr; Tag : UTF8_String) return Node_Ptr; 
- 
function Get_Field (N : Node_Ptr; Field : UTF8_String) return String_Ptr; 
- 
function Is_Equal (Node1, Node2 : Node_Ptr) return Boolean; 
- 
procedure Add_Child
  (N : Node_Ptr; Child : Node_Ptr; Append : Boolean := False); 
- 
function Deep_Copy (N : Node_Ptr) return Node_Ptr; 
- 
procedure Free
  (N : in out Node_Ptr; Free_Data : Free_Specific_Data := null); 
- 
function Get_Attribute
  (N : in Node_Ptr;
   Attribute_Name : in UTF8_String;
   Default        : in UTF8_String := "") return UTF8_String; 
- 
procedure Set_Attribute
  (N : Node_Ptr; Attribute_Name, Attribute_Value : UTF8_String); 
- 
function Find_Tag_With_Attribute
  (N     : Node_Ptr;
   Tag   : UTF8_String;
   Key   : UTF8_String;
   Value : UTF8_String := "")
  return Node_Ptr;