with Ada.Strings.Unbounded;
package XML is
type Attribute is limited private;
type Element is limited private;
function Create (Name : String) return Element;
function Create (Name, Value : String) return Attribute;
procedure Add_Child (To : in Element; Item : in Element);
procedure Add_Sibling (To : in Element; Item : in Element);
procedure Add_Attr (To : in Element; Item : in Attribute);
private
type Attribute_Type;
type Attribute is access Attribute_Type;
type Attribute_Type is
record
Name, Value : Ada.Strings.Unbounded.Unbounded_String;
Next : Attribute;
end record;
type Element_Type;
type Element is access Element_Type;
type Element_Type is
record
Name, Value : Ada.Strings.Unbounded.Unbounded_String;
Attrs : Attribute;
Next, Child : Element;
end record;
type Document_Type;
type Document is access Document_Type;
type Document_Type is
record
Name : Ada.Strings.Unbounded.Unbounded_String;
Child : Element;
end record;
end XML;
package body XML is
-- function Create return Document is
-- begin
-- return new Document_Type;
-- end Create;
function Create (Name : String) return Element is
begin
return new Element_Type;
end Create;
function Create (Name, Value : String) return Attribute is
begin
return new Attribute_Type;
end Create;
procedure Add_Child (To : in Element; Item : in Element) is
begin
null;
end Add_Child;
procedure Add_Sibling (To : in Element; Item : in Element) is
begin
null;
end Add_Sibling;
procedure Add_Attr (To : in Element; Item : in Attribute) is
begin
null;
end Add_Attr;
end XML;