mirror of
https://github.com/AdaCore/aws.git
synced 2026-02-12 12:29:46 -08:00
Remove all unneeded svn:executable properties. Remove the eol-style property on testme25.out for proper handling of non standard EOL.
99 lines
2.4 KiB
Ada
99 lines
2.4 KiB
Ada
-- TestXML program modified for get XML source from AWS HTTP client
|
|
-- connection.
|
|
|
|
with GNAT.Command_Line; use GNAT.Command_Line;
|
|
with DOM.Readers; use DOM.Readers;
|
|
with Sax.Readers; use Sax.Readers;
|
|
with DOM.Core.Nodes; use DOM.Core.Nodes;
|
|
with Ada.Exceptions; use Ada.Exceptions;
|
|
with Ada.Text_IO; use Ada.Text_IO;
|
|
|
|
with AWS.Client.XML.Input_Sources;
|
|
with AWS.Response;
|
|
|
|
procedure Testxml is
|
|
use AWS.Client.XML.Input_Sources;
|
|
|
|
Silent : Boolean := False;
|
|
With_URI : Boolean := False;
|
|
HTTP : AWS.Client.HTTP_Connection;
|
|
Read : HTTP_Input;
|
|
My_Tree_Reader : Tree_Reader;
|
|
Name_Start : Natural;
|
|
Validate : Boolean := False;
|
|
Must_Normalize : Boolean := False;
|
|
|
|
Dummy : AWS.Response.Data;
|
|
|
|
begin
|
|
-- Parse the command line
|
|
loop
|
|
case Getopt ("silent uri normalize validate") is
|
|
when ASCII.Nul => exit;
|
|
|
|
when 's' => Silent := True;
|
|
when 'u' => With_URI := True;
|
|
when 'v' => Validate := True;
|
|
when 'n' => Must_Normalize := True;
|
|
|
|
when others => null;
|
|
end case;
|
|
end loop;
|
|
|
|
declare
|
|
S : constant String := Get_Argument;
|
|
begin
|
|
if S'Length > 0 then
|
|
AWS.Client.Create
|
|
(HTTP,
|
|
Host => S,
|
|
Server_Push => True,
|
|
Persistent => False);
|
|
|
|
AWS.Client.Get (HTTP, Dummy);
|
|
|
|
-- Base file name should be used as the public Id
|
|
Name_Start := S'Last;
|
|
|
|
while Name_Start >= S'First and then S (Name_Start) /= '/' loop
|
|
Name_Start := Name_Start - 1;
|
|
end loop;
|
|
|
|
Set_Public_Id (Read, S (Name_Start + 1 .. S'Last));
|
|
|
|
Create (HTTP, Read);
|
|
|
|
-- Full name is used as the system id
|
|
Set_System_Id (Read, S);
|
|
|
|
else
|
|
Put_Line ("define URL of XML file in command line.");
|
|
end if;
|
|
end;
|
|
|
|
Set_Feature (My_Tree_Reader, Validation_Feature, Validate);
|
|
|
|
Parse (My_Tree_Reader, Read);
|
|
Close (Read);
|
|
AWS.Client.Close (HTTP);
|
|
|
|
if Must_Normalize then
|
|
Normalize (Get_Tree (My_Tree_Reader));
|
|
end if;
|
|
|
|
if not Silent then
|
|
Print (Get_Tree (My_Tree_Reader),
|
|
Print_Comments => False,
|
|
Print_XML_PI => False,
|
|
With_URI => With_URI);
|
|
end if;
|
|
|
|
Free (My_Tree_Reader);
|
|
|
|
exception
|
|
when E : XML_Fatal_Error =>
|
|
Close (Read);
|
|
Put_Line (Exception_Message (E));
|
|
Free (My_Tree_Reader);
|
|
end Testxml;
|