fpc/packages/fcl-sdo/examples/xsd2pas/xsd2pas.pas
michael 9058529a44 * Initial implementation of FCL-SDO
git-svn-id: trunk@22399 -
2012-09-16 09:54:08 +00:00

62 lines
1.1 KiB
ObjectPascal

program xsd2pas;
{$mode objfpc}{$H+}
uses
cwstring, Classes, SysUtils, sdo, sdo_datafactory, sdo_xsdintf,
sdo_xsd_helper, xsd_generator, pas_generator;
procedure LoadSchemaFile(AFactory : ISDODataFactory; AFileName : string);
var
xsdHelper : IXSDHelper;
begin
try
xsdHelper := TXSDHelper.Create(AFactory);
xsdHelper.LoadFromFile(AFileName);
except
On E : exception do
begin
E.Message:='Load failed'+E.Message;
raise;
end;
end;
end;
procedure CreatePascalCode(AFactory : ISDODataFactory; AFileName : string);
var
xsdHelper : IXSDHelper;
begin
xsdHelper := TXSDHelper.Create(AFactory);
try
xsdHelper.GenerateCode(AFactory.getTypes(),'urn:wst-test',AFileName);
except
On E : exception do
begin
E.Message:='Generate failed'+E.Message;
raise;
end;
end;
end;
procedure MainProc;
var
fact : ISDODataFactory;
begin
Fact:=TSDODataFactory.Create();
Writeln('Handling ',ParamStr(1));
LoadSchemaFile(Fact,ParamStr(1));
CreatePascalCode(Fact,'myunit');
end;
begin
MainProc;
end.