// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx?WSDL
//  >Import : http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx?WSDL:0
// Encoding : utf-8
// Version  : 1.0
// (11/11/2013 06:16:10 p.m. - * $Rev: 5154 $)
// ************************************************************************ //

unit TimbrarCD;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_NLBL = $0004;
  IS_UNQL = $0008;
  IS_ATTR = $0010;
  IS_TEXT = $0020;

type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:dateTime        - "http://www.w3.org/2001/XMLSchema"
  // !:int             - "http://www.w3.org/2001/XMLSchema"
  // !:base64Binary    - "http://www.w3.org/2001/XMLSchema"

  genera_dotnet        = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  genera_dotnetResponse = class;                { "http://localhost/Timbrar/"[Lit][GblElm] }
  genera_ut8           = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  genera_ut8Response   = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  saldo                = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  saldoResponse        = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  acuseSAT             = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }
  acuseSATResponse     = class;                 { "http://localhost/Timbrar/"[Lit][GblElm] }



  // ************************************************************************ //
  // XML       : genera_dotnet, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  genera_dotnet = class(TRemotable)
  private
    Fempresa: WideString;
    Fempresa_Specified: boolean;
    Fpwd: WideString;
    Fpwd_Specified: boolean;
    Ffe_xml: WideString;
    Ffe_xml_Specified: boolean;
    procedure Setempresa(Index: Integer; const AWideString: WideString);
    function  empresa_Specified(Index: Integer): boolean;
    procedure Setpwd(Index: Integer; const AWideString: WideString);
    function  pwd_Specified(Index: Integer): boolean;
    procedure Setfe_xml(Index: Integer; const AWideString: WideString);
    function  fe_xml_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property empresa: WideString  Index (IS_OPTN) read Fempresa write Setempresa stored empresa_Specified;
    property pwd:     WideString  Index (IS_OPTN) read Fpwd write Setpwd stored pwd_Specified;
    property fe_xml:  WideString  Index (IS_OPTN) read Ffe_xml write Setfe_xml stored fe_xml_Specified;
  end;



  // ************************************************************************ //
  // XML       : genera_dotnetResponse, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  genera_dotnetResponse = class(TRemotable)
  private
    Fgenera_dotnetResult: WideString;
    Fgenera_dotnetResult_Specified: boolean;
    Ffe_xml_timbrada: WideString;
    Ffe_xml_timbrada_Specified: boolean;
    Fuuid: WideString;
    Fuuid_Specified: boolean;
    Fdt6: TXSDateTime;
    Fsello_sat: WideString;
    Fsello_sat_Specified: boolean;
    Fserie_sat: WideString;
    Fserie_sat_Specified: boolean;
    Fcadena: WideString;
    Fcadena_Specified: boolean;
    Fsaldo: Integer;
    Fxml_tim: WideString;
    Fxml_tim_Specified: boolean;
    procedure Setgenera_dotnetResult(Index: Integer; const AWideString: WideString);
    function  genera_dotnetResult_Specified(Index: Integer): boolean;
    procedure Setfe_xml_timbrada(Index: Integer; const AWideString: WideString);
    function  fe_xml_timbrada_Specified(Index: Integer): boolean;
    procedure Setuuid(Index: Integer; const AWideString: WideString);
    function  uuid_Specified(Index: Integer): boolean;
    procedure Setsello_sat(Index: Integer; const AWideString: WideString);
    function  sello_sat_Specified(Index: Integer): boolean;
    procedure Setserie_sat(Index: Integer; const AWideString: WideString);
    function  serie_sat_Specified(Index: Integer): boolean;
    procedure Setcadena(Index: Integer; const AWideString: WideString);
    function  cadena_Specified(Index: Integer): boolean;
    procedure Setxml_tim(Index: Integer; const AWideString: WideString);
    function  xml_tim_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
    destructor Destroy; override;
  published
    property genera_dotnetResult: WideString   Index (IS_OPTN) read Fgenera_dotnetResult write Setgenera_dotnetResult stored genera_dotnetResult_Specified;
    property fe_xml_timbrada:     WideString   Index (IS_OPTN) read Ffe_xml_timbrada write Setfe_xml_timbrada stored fe_xml_timbrada_Specified;
    property uuid:                WideString   Index (IS_OPTN) read Fuuid write Setuuid stored uuid_Specified;
    property dt6:                 TXSDateTime  read Fdt6 write Fdt6;
    property sello_sat:           WideString   Index (IS_OPTN) read Fsello_sat write Setsello_sat stored sello_sat_Specified;
    property serie_sat:           WideString   Index (IS_OPTN) read Fserie_sat write Setserie_sat stored serie_sat_Specified;
    property cadena:              WideString   Index (IS_OPTN) read Fcadena write Setcadena stored cadena_Specified;
    property saldo:               Integer      read Fsaldo write Fsaldo;
    property xml_tim:             WideString   Index (IS_OPTN) read Fxml_tim write Setxml_tim stored xml_tim_Specified;
  end;



  // ************************************************************************ //
  // XML       : genera_ut8, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  genera_ut8 = class(TRemotable)
  private
    Fempresa: WideString;
    Fempresa_Specified: boolean;
    Fpwd: WideString;
    Fpwd_Specified: boolean;
    Fxml_in: TByteDynArray;
    Fxml_in_Specified: boolean;
    procedure Setempresa(Index: Integer; const AWideString: WideString);
    function  empresa_Specified(Index: Integer): boolean;
    procedure Setpwd(Index: Integer; const AWideString: WideString);
    function  pwd_Specified(Index: Integer): boolean;
    procedure Setxml_in(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  xml_in_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property empresa: WideString     Index (IS_OPTN) read Fempresa write Setempresa stored empresa_Specified;
    property pwd:     WideString     Index (IS_OPTN) read Fpwd write Setpwd stored pwd_Specified;
    property xml_in:  TByteDynArray  Index (IS_OPTN) read Fxml_in write Setxml_in stored xml_in_Specified;
  end;



  // ************************************************************************ //
  // XML       : genera_ut8Response, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  genera_ut8Response = class(TRemotable)
  private
    Fgenera_ut8Result: WideString;
    Fgenera_ut8Result_Specified: boolean;
    Fxml_timbre: TByteDynArray;
    Fxml_timbre_Specified: boolean;
    Fsaldo: Integer;
    procedure Setgenera_ut8Result(Index: Integer; const AWideString: WideString);
    function  genera_ut8Result_Specified(Index: Integer): boolean;
    procedure Setxml_timbre(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  xml_timbre_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property genera_ut8Result: WideString     Index (IS_OPTN) read Fgenera_ut8Result write Setgenera_ut8Result stored genera_ut8Result_Specified;
    property xml_timbre:       TByteDynArray  Index (IS_OPTN) read Fxml_timbre write Setxml_timbre stored xml_timbre_Specified;
    property saldo:            Integer        read Fsaldo write Fsaldo;
  end;



  // ************************************************************************ //
  // XML       : saldo, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  saldo = class(TRemotable)
  private
    Fempresa: WideString;
    Fempresa_Specified: boolean;
    Fpwd: WideString;
    Fpwd_Specified: boolean;
    procedure Setempresa(Index: Integer; const AWideString: WideString);
    function  empresa_Specified(Index: Integer): boolean;
    procedure Setpwd(Index: Integer; const AWideString: WideString);
    function  pwd_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property empresa: WideString  Index (IS_OPTN) read Fempresa write Setempresa stored empresa_Specified;
    property pwd:     WideString  Index (IS_OPTN) read Fpwd write Setpwd stored pwd_Specified;
  end;



  // ************************************************************************ //
  // XML       : saldoResponse, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  saldoResponse = class(TRemotable)
  private
    FsaldoResult: WideString;
    FsaldoResult_Specified: boolean;
    Fsaldo: Integer;
    procedure SetsaldoResult(Index: Integer; const AWideString: WideString);
    function  saldoResult_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property saldoResult: WideString  Index (IS_OPTN) read FsaldoResult write SetsaldoResult stored saldoResult_Specified;
    property saldo:       Integer     read Fsaldo write Fsaldo;
  end;



  // ************************************************************************ //
  // XML       : acuseSAT, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  acuseSAT = class(TRemotable)
  private
    Frfc: WideString;
    Frfc_Specified: boolean;
    Fpwd: WideString;
    Fpwd_Specified: boolean;
    Fuuid: WideString;
    Fuuid_Specified: boolean;
    procedure Setrfc(Index: Integer; const AWideString: WideString);
    function  rfc_Specified(Index: Integer): boolean;
    procedure Setpwd(Index: Integer; const AWideString: WideString);
    function  pwd_Specified(Index: Integer): boolean;
    procedure Setuuid(Index: Integer; const AWideString: WideString);
    function  uuid_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property rfc:  WideString  Index (IS_OPTN) read Frfc write Setrfc stored rfc_Specified;
    property pwd:  WideString  Index (IS_OPTN) read Fpwd write Setpwd stored pwd_Specified;
    property uuid: WideString  Index (IS_OPTN) read Fuuid write Setuuid stored uuid_Specified;
  end;



  // ************************************************************************ //
  // XML       : acuseSATResponse, global, <element>
  // Namespace : http://localhost/Timbrar/
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  acuseSATResponse = class(TRemotable)
  private
    FacuseSATResult: WideString;
    FacuseSATResult_Specified: boolean;
    Facuse: TByteDynArray;
    Facuse_Specified: boolean;
    procedure SetacuseSATResult(Index: Integer; const AWideString: WideString);
    function  acuseSATResult_Specified(Index: Integer): boolean;
    procedure Setacuse(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  acuse_Specified(Index: Integer): boolean;
  public
    constructor Create; override;
  published
    property acuseSATResult: WideString     Index (IS_OPTN) read FacuseSATResult write SetacuseSATResult stored acuseSATResult_Specified;
    property acuse:          TByteDynArray  Index (IS_OPTN) read Facuse write Setacuse stored acuse_Specified;
  end;


  // ************************************************************************ //
  // Namespace : http://localhost/Timbrar/
  // soapAction: http://localhost/Timbrar/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : TimbrarSoap
  // service   : Timbrar
  // port      : TimbrarSoap
  // URL       : http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx
  // ************************************************************************ //
  TimbrarSoap = interface(IInvokable)
  ['{14DDB48B-759F-883A-534F-9265AABD4D28}']

    // Cannot unwrap: 
    //     - More than one strictly out element was found
    function  genera_dotnet(const parameters: genera_dotnet): genera_dotnetResponse; stdcall;

    // Cannot unwrap: 
    //     - More than one strictly out element was found
    function  genera_ut8(const parameters: genera_ut8): genera_ut8Response; stdcall;

    // Cannot unwrap: 
    //     - More than one strictly out element was found
    function  saldo(const parameters: saldo): saldoResponse; stdcall;

    // Cannot unwrap: 
    //     - More than one strictly out element was found
    function  acuseSAT(const parameters: acuseSAT): acuseSATResponse; stdcall;
  end;

function GetTimbrarSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): TimbrarSoap;
var gUrlTimbrado:String;

implementation
  uses SysUtils;

function GetTimbrarSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): TimbrarSoap;
const
  //Pruebas
  {defWSDL = 'http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx?WSDL';
  defURL  = 'http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx';}
  //Productivo
  {defWSDL = 'http://ws.comercio-digital.mx/timbre/timbrar.asmx?WSDL';
  defURL  = 'http://ws.comercio-digital.mx/timbre/timbrar.asmx';}

  //defWSDL = 'http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx?WSDL';
  //gUrlTimbrado+'?WSDL';
  //defURL  = 'http://pruebas.comercio-digital.mx/Timbre/Timbrar.asmx';}
  //gUrlTimbrado;

  defSvc  = 'Timbrar';
  defPrt  = 'TimbrarSoap';
var
  RIO: THTTPRIO;
  defWSDL,defURL : String;
begin
  defWSDL := gUrlTimbrado+'?WSDL';
  defURL  := gUrlTimbrado;
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as TimbrarSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


constructor genera_dotnet.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure genera_dotnet.Setempresa(Index: Integer; const AWideString: WideString);
begin
  Fempresa := AWideString;
  Fempresa_Specified := True;
end;

function genera_dotnet.empresa_Specified(Index: Integer): boolean;
begin
  Result := Fempresa_Specified;
end;

procedure genera_dotnet.Setpwd(Index: Integer; const AWideString: WideString);
begin
  Fpwd := AWideString;
  Fpwd_Specified := True;
end;

function genera_dotnet.pwd_Specified(Index: Integer): boolean;
begin
  Result := Fpwd_Specified;
end;

procedure genera_dotnet.Setfe_xml(Index: Integer; const AWideString: WideString);
begin
  Ffe_xml := AWideString;
  Ffe_xml_Specified := True;
end;

function genera_dotnet.fe_xml_Specified(Index: Integer): boolean;
begin
  Result := Ffe_xml_Specified;
end;

constructor genera_dotnetResponse.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

destructor genera_dotnetResponse.Destroy;
begin
  FreeAndNil(Fdt6);
  inherited Destroy;
end;

procedure genera_dotnetResponse.Setgenera_dotnetResult(Index: Integer; const AWideString: WideString);
begin
  Fgenera_dotnetResult := AWideString;
  Fgenera_dotnetResult_Specified := True;
end;

function genera_dotnetResponse.genera_dotnetResult_Specified(Index: Integer): boolean;
begin
  Result := Fgenera_dotnetResult_Specified;
end;

procedure genera_dotnetResponse.Setfe_xml_timbrada(Index: Integer; const AWideString: WideString);
begin
  Ffe_xml_timbrada := AWideString;
  Ffe_xml_timbrada_Specified := True;
end;

function genera_dotnetResponse.fe_xml_timbrada_Specified(Index: Integer): boolean;
begin
  Result := Ffe_xml_timbrada_Specified;
end;

procedure genera_dotnetResponse.Setuuid(Index: Integer; const AWideString: WideString);
begin
  Fuuid := AWideString;
  Fuuid_Specified := True;
end;

function genera_dotnetResponse.uuid_Specified(Index: Integer): boolean;
begin
  Result := Fuuid_Specified;
end;

procedure genera_dotnetResponse.Setsello_sat(Index: Integer; const AWideString: WideString);
begin
  Fsello_sat := AWideString;
  Fsello_sat_Specified := True;
end;

function genera_dotnetResponse.sello_sat_Specified(Index: Integer): boolean;
begin
  Result := Fsello_sat_Specified;
end;

procedure genera_dotnetResponse.Setserie_sat(Index: Integer; const AWideString: WideString);
begin
  Fserie_sat := AWideString;
  Fserie_sat_Specified := True;
end;

function genera_dotnetResponse.serie_sat_Specified(Index: Integer): boolean;
begin
  Result := Fserie_sat_Specified;
end;

procedure genera_dotnetResponse.Setcadena(Index: Integer; const AWideString: WideString);
begin
  Fcadena := AWideString;
  Fcadena_Specified := True;
end;

function genera_dotnetResponse.cadena_Specified(Index: Integer): boolean;
begin
  Result := Fcadena_Specified;
end;

procedure genera_dotnetResponse.Setxml_tim(Index: Integer; const AWideString: WideString);
begin
  Fxml_tim := AWideString;
  Fxml_tim_Specified := True;
end;

function genera_dotnetResponse.xml_tim_Specified(Index: Integer): boolean;
begin
  Result := Fxml_tim_Specified;
end;

constructor genera_ut8.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure genera_ut8.Setempresa(Index: Integer; const AWideString: WideString);
begin
  Fempresa := AWideString;
  Fempresa_Specified := True;
end;

function genera_ut8.empresa_Specified(Index: Integer): boolean;
begin
  Result := Fempresa_Specified;
end;

procedure genera_ut8.Setpwd(Index: Integer; const AWideString: WideString);
begin
  Fpwd := AWideString;
  Fpwd_Specified := True;
end;

function genera_ut8.pwd_Specified(Index: Integer): boolean;
begin
  Result := Fpwd_Specified;
end;

procedure genera_ut8.Setxml_in(Index: Integer; const ATByteDynArray: TByteDynArray);
begin
  Fxml_in := ATByteDynArray;
  Fxml_in_Specified := True;
end;

function genera_ut8.xml_in_Specified(Index: Integer): boolean;
begin
  Result := Fxml_in_Specified;
end;

constructor genera_ut8Response.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure genera_ut8Response.Setgenera_ut8Result(Index: Integer; const AWideString: WideString);
begin
  Fgenera_ut8Result := AWideString;
  Fgenera_ut8Result_Specified := True;
end;

function genera_ut8Response.genera_ut8Result_Specified(Index: Integer): boolean;
begin
  Result := Fgenera_ut8Result_Specified;
end;

procedure genera_ut8Response.Setxml_timbre(Index: Integer; const ATByteDynArray: TByteDynArray);
begin
  Fxml_timbre := ATByteDynArray;
  Fxml_timbre_Specified := True;
end;

function genera_ut8Response.xml_timbre_Specified(Index: Integer): boolean;
begin
  Result := Fxml_timbre_Specified;
end;

constructor saldo.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure saldo.Setempresa(Index: Integer; const AWideString: WideString);
begin
  Fempresa := AWideString;
  Fempresa_Specified := True;
end;

function saldo.empresa_Specified(Index: Integer): boolean;
begin
  Result := Fempresa_Specified;
end;

procedure saldo.Setpwd(Index: Integer; const AWideString: WideString);
begin
  Fpwd := AWideString;
  Fpwd_Specified := True;
end;

function saldo.pwd_Specified(Index: Integer): boolean;
begin
  Result := Fpwd_Specified;
end;

constructor saldoResponse.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure saldoResponse.SetsaldoResult(Index: Integer; const AWideString: WideString);
begin
  FsaldoResult := AWideString;
  FsaldoResult_Specified := True;
end;

function saldoResponse.saldoResult_Specified(Index: Integer): boolean;
begin
  Result := FsaldoResult_Specified;
end;

constructor acuseSAT.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure acuseSAT.Setrfc(Index: Integer; const AWideString: WideString);
begin
  Frfc := AWideString;
  Frfc_Specified := True;
end;

function acuseSAT.rfc_Specified(Index: Integer): boolean;
begin
  Result := Frfc_Specified;
end;

procedure acuseSAT.Setpwd(Index: Integer; const AWideString: WideString);
begin
  Fpwd := AWideString;
  Fpwd_Specified := True;
end;

function acuseSAT.pwd_Specified(Index: Integer): boolean;
begin
  Result := Fpwd_Specified;
end;

procedure acuseSAT.Setuuid(Index: Integer; const AWideString: WideString);
begin
  Fuuid := AWideString;
  Fuuid_Specified := True;
end;

function acuseSAT.uuid_Specified(Index: Integer): boolean;
begin
  Result := Fuuid_Specified;
end;

constructor acuseSATResponse.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

procedure acuseSATResponse.SetacuseSATResult(Index: Integer; const AWideString: WideString);
begin
  FacuseSATResult := AWideString;
  FacuseSATResult_Specified := True;
end;

function acuseSATResponse.acuseSATResult_Specified(Index: Integer): boolean;
begin
  Result := FacuseSATResult_Specified;
end;

procedure acuseSATResponse.Setacuse(Index: Integer; const ATByteDynArray: TByteDynArray);
begin
  Facuse := ATByteDynArray;
  Facuse_Specified := True;
end;

function acuseSATResponse.acuse_Specified(Index: Integer): boolean;
begin
  Result := Facuse_Specified;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(TimbrarSoap), 'http://localhost/Timbrar/', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(TimbrarSoap), 'http://localhost/Timbrar/%operationName%');
  InvRegistry.RegisterInvokeOptions(TypeInfo(TimbrarSoap), ioDocument);
  InvRegistry.RegisterInvokeOptions(TypeInfo(TimbrarSoap), ioLiteral);
  InvRegistry.RegisterExternalParamName(TypeInfo(TimbrarSoap), 'genera_dotnet', 'parameters1', 'parameters');
  InvRegistry.RegisterExternalParamName(TypeInfo(TimbrarSoap), 'genera_ut8', 'parameters1', 'parameters');
  InvRegistry.RegisterExternalParamName(TypeInfo(TimbrarSoap), 'saldo', 'parameters1', 'parameters');
  InvRegistry.RegisterExternalParamName(TypeInfo(TimbrarSoap), 'acuseSAT', 'parameters1', 'parameters');
  RemClassRegistry.RegisterXSClass(genera_dotnet, 'http://localhost/Timbrar/', 'genera_dotnet');
  RemClassRegistry.RegisterSerializeOptions(genera_dotnet, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(genera_dotnetResponse, 'http://localhost/Timbrar/', 'genera_dotnetResponse');
  RemClassRegistry.RegisterSerializeOptions(genera_dotnetResponse, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(genera_ut8, 'http://localhost/Timbrar/', 'genera_ut8');
  RemClassRegistry.RegisterSerializeOptions(genera_ut8, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(genera_ut8Response, 'http://localhost/Timbrar/', 'genera_ut8Response');
  RemClassRegistry.RegisterSerializeOptions(genera_ut8Response, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(saldo, 'http://localhost/Timbrar/', 'saldo');
  RemClassRegistry.RegisterSerializeOptions(saldo, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(saldoResponse, 'http://localhost/Timbrar/', 'saldoResponse');
  RemClassRegistry.RegisterSerializeOptions(saldoResponse, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(acuseSAT, 'http://localhost/Timbrar/', 'acuseSAT');
  RemClassRegistry.RegisterSerializeOptions(acuseSAT, [xoLiteralParam]);
  RemClassRegistry.RegisterXSClass(acuseSATResponse, 'http://localhost/Timbrar/', 'acuseSATResponse');
  RemClassRegistry.RegisterSerializeOptions(acuseSATResponse, [xoLiteralParam]);

end.