AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webservice Header um Adressing erweitern
Thema durchsuchen
Ansicht
Themen-Optionen

Webservice Header um Adressing erweitern

Ein Thema von Samashy · begonnen am 18. Mai 2017
Antwort Antwort
Benutzerbild von Samashy
Samashy

Registriert seit: 20. Feb 2004
Ort: Cottbus
127 Beiträge
 
Delphi 10.4 Sydney
 
#1

Webservice Header um Adressing erweitern

  Alt 18. Mai 2017, 16:29
Hallo,

kann mir bitte jemand helfen, meinen HEADER um 3 Parameter nach "xmlns:wsa="http://www.w3.org/2005/08/addressing" zu weitern?
Ich habe mir die Klassen in eine pas importiert:
Code:
{*******************************************************************}
{                                                                   }
{                         XML-Datenbindung                         }
{                                                                   }
{         Generiert am: 18.05.2017 17:16:38                         }
{       Generiert von:             }
{   Einstellungen gespeichert in:  }
{                                                                   }
{*******************************************************************}

unit wsaddr;

interface

uses xmldom, XMLDoc, XMLIntf;

type

{ Forward-Deklarationen }

  IXMLEndpointReferenceType = interface;
  IXMLAttributedURIType = interface;
  IXMLReferenceParametersType = interface;
  IXMLMetadataType = interface;
  IXMLRelatesToType = interface;
  IXMLAttributedUnsignedLongType = interface;
  IXMLAttributedQNameType = interface;
  IXMLProblemActionType = interface;

{ IXMLEndpointReferenceType }

  IXMLEndpointReferenceType = interface(IXMLNode)
    ['{BC2F147F-BFD6-414F-B5A7-081DE44ED30B}']
    { Eigenschaftszugriff }
    function Get_Address: IXMLAttributedURIType;
    function Get_ReferenceParameters: IXMLReferenceParametersType;
    function Get_Metadata: IXMLMetadataType;
    { Methoden & Eigenschaften }
    property Address: IXMLAttributedURIType read Get_Address;
    property ReferenceParameters: IXMLReferenceParametersType read Get_ReferenceParameters;
    property Metadata: IXMLMetadataType read Get_Metadata;
  end;

{ IXMLAttributedURIType }

  IXMLAttributedURIType = interface(IXMLNode)
    ['{546A1D9B-B4A7-4632-9F72-7E0CF6106874}']
  end;

{ IXMLReferenceParametersType }

  IXMLReferenceParametersType = interface(IXMLNode)
    ['{5541DC24-5900-4A19-90B2-B2EE59F330A4}']
  end;

{ IXMLMetadataType }

  IXMLMetadataType = interface(IXMLNode)
    ['{A3C6C82B-6CC1-42AE-A5F6-C5D48ADDA277}']
  end;

{ IXMLRelatesToType }

  IXMLRelatesToType = interface(IXMLNode)
    ['{5B8401A4-1B6E-4277-85F8-AADD8BFCBF3A}']
    { Eigenschaftszugriff }
    function Get_RelationshipType: UnicodeString;
    procedure Set_RelationshipType(Value: UnicodeString);
    { Methoden & Eigenschaften }
    property RelationshipType: UnicodeString read Get_RelationshipType write Set_RelationshipType;
  end;

{ IXMLAttributedUnsignedLongType }

  IXMLAttributedUnsignedLongType = interface(IXMLNode)
    ['{6558D2BF-F55B-4E18-A60C-C6308F9615E2}']
  end;

{ IXMLAttributedQNameType }

  IXMLAttributedQNameType = interface(IXMLNode)
    ['{56FBD882-6A08-41F0-ADCB-92CDE4ABA6BE}']
  end;

{ IXMLProblemActionType }

  IXMLProblemActionType = interface(IXMLNode)
    ['{BD5CB672-A8FE-4F70-B4DE-1CD543D1BE2B}']
    { Eigenschaftszugriff }
    function Get_Action: IXMLAttributedURIType;
    function Get_SoapAction: UnicodeString;
    procedure Set_SoapAction(Value: UnicodeString);
    { Methoden & Eigenschaften }
    property Action: IXMLAttributedURIType read Get_Action;
    property SoapAction: UnicodeString read Get_SoapAction write Set_SoapAction;
  end;

{ Forward-Deklarationen }

  TXMLEndpointReferenceType = class;
  TXMLAttributedURIType = class;
  TXMLReferenceParametersType = class;
  TXMLMetadataType = class;
  TXMLRelatesToType = class;
  TXMLAttributedUnsignedLongType = class;
  TXMLAttributedQNameType = class;
  TXMLProblemActionType = class;

{ TXMLEndpointReferenceType }

  TXMLEndpointReferenceType = class(TXMLNode, IXMLEndpointReferenceType)
  protected
    { IXMLEndpointReferenceType }
    function Get_Address: IXMLAttributedURIType;
    function Get_ReferenceParameters: IXMLReferenceParametersType;
    function Get_Metadata: IXMLMetadataType;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLAttributedURIType }

  TXMLAttributedURIType = class(TXMLNode, IXMLAttributedURIType)
  protected
    { IXMLAttributedURIType }
  end;

{ TXMLReferenceParametersType }

  TXMLReferenceParametersType = class(TXMLNode, IXMLReferenceParametersType)
  protected
    { IXMLReferenceParametersType }
  end;

{ TXMLMetadataType }

  TXMLMetadataType = class(TXMLNode, IXMLMetadataType)
  protected
    { IXMLMetadataType }
  end;

{ TXMLRelatesToType }

  TXMLRelatesToType = class(TXMLNode, IXMLRelatesToType)
  protected
    { IXMLRelatesToType }
    function Get_RelationshipType: UnicodeString;
    procedure Set_RelationshipType(Value: UnicodeString);
  end;

{ TXMLAttributedUnsignedLongType }

  TXMLAttributedUnsignedLongType = class(TXMLNode, IXMLAttributedUnsignedLongType)
  protected
    { IXMLAttributedUnsignedLongType }
  end;

{ TXMLAttributedQNameType }

  TXMLAttributedQNameType = class(TXMLNode, IXMLAttributedQNameType)
  protected
    { IXMLAttributedQNameType }
  end;

{ TXMLProblemActionType }

  TXMLProblemActionType = class(TXMLNode, IXMLProblemActionType)
  protected
    { IXMLProblemActionType }
    function Get_Action: IXMLAttributedURIType;
    function Get_SoapAction: UnicodeString;
    procedure Set_SoapAction(Value: UnicodeString);
  public
    procedure AfterConstruction; override;
  end;

{ Globale Funktionen }

function GetEndpointReference(Doc: IXMLDocument): IXMLEndpointReferenceType;
function LoadEndpointReference(const FileName: string): IXMLEndpointReferenceType;
function NewEndpointReference: IXMLEndpointReferenceType;
function GetRelatesTo(Doc: IXMLDocument): IXMLRelatesToType;
function LoadRelatesTo(const FileName: string): IXMLRelatesToType;
function NewRelatesTo: IXMLRelatesToType;
function GetRetryAfter(Doc: IXMLDocument): IXMLAttributedUnsignedLongType;
function LoadRetryAfter(const FileName: string): IXMLAttributedUnsignedLongType;
function NewRetryAfter: IXMLAttributedUnsignedLongType;
function GetProblemHeaderQName(Doc: IXMLDocument): IXMLAttributedQNameType;
function LoadProblemHeaderQName(const FileName: string): IXMLAttributedQNameType;
function NewProblemHeaderQName: IXMLAttributedQNameType;
function GetProblemAction(Doc: IXMLDocument): IXMLProblemActionType;
function LoadProblemAction(const FileName: string): IXMLProblemActionType;
function NewProblemAction: IXMLProblemActionType;

const
  TargetNamespace = 'http://www.w3.org/2005/08/addressing';

implementation

{ Globale Funktionen }

function GetEndpointReference(Doc: IXMLDocument): IXMLEndpointReferenceType;
begin
  Result := Doc.GetDocBinding('EndpointReference', TXMLEndpointReferenceType, TargetNamespace) as IXMLEndpointReferenceType;
end;

function LoadEndpointReference(const FileName: string): IXMLEndpointReferenceType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('EndpointReference', TXMLEndpointReferenceType, TargetNamespace) as IXMLEndpointReferenceType;
end;

function NewEndpointReference: IXMLEndpointReferenceType;
begin
  Result := NewXMLDocument.GetDocBinding('EndpointReference', TXMLEndpointReferenceType, TargetNamespace) as IXMLEndpointReferenceType;
end;
function GetRelatesTo(Doc: IXMLDocument): IXMLRelatesToType;
begin
  Result := Doc.GetDocBinding('RelatesTo', TXMLRelatesToType, TargetNamespace) as IXMLRelatesToType;
end;

function LoadRelatesTo(const FileName: string): IXMLRelatesToType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('RelatesTo', TXMLRelatesToType, TargetNamespace) as IXMLRelatesToType;
end;

function NewRelatesTo: IXMLRelatesToType;
begin
  Result := NewXMLDocument.GetDocBinding('RelatesTo', TXMLRelatesToType, TargetNamespace) as IXMLRelatesToType;
end;
function GetRetryAfter(Doc: IXMLDocument): IXMLAttributedUnsignedLongType;
begin
  Result := Doc.GetDocBinding('RetryAfter', TXMLAttributedUnsignedLongType, TargetNamespace) as IXMLAttributedUnsignedLongType;
end;

function LoadRetryAfter(const FileName: string): IXMLAttributedUnsignedLongType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('RetryAfter', TXMLAttributedUnsignedLongType, TargetNamespace) as IXMLAttributedUnsignedLongType;
end;

function NewRetryAfter: IXMLAttributedUnsignedLongType;
begin
  Result := NewXMLDocument.GetDocBinding('RetryAfter', TXMLAttributedUnsignedLongType, TargetNamespace) as IXMLAttributedUnsignedLongType;
end;
function GetProblemHeaderQName(Doc: IXMLDocument): IXMLAttributedQNameType;
begin
  Result := Doc.GetDocBinding('ProblemHeaderQName', TXMLAttributedQNameType, TargetNamespace) as IXMLAttributedQNameType;
end;

function LoadProblemHeaderQName(const FileName: string): IXMLAttributedQNameType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('ProblemHeaderQName', TXMLAttributedQNameType, TargetNamespace) as IXMLAttributedQNameType;
end;

function NewProblemHeaderQName: IXMLAttributedQNameType;
begin
  Result := NewXMLDocument.GetDocBinding('ProblemHeaderQName', TXMLAttributedQNameType, TargetNamespace) as IXMLAttributedQNameType;
end;
function GetProblemAction(Doc: IXMLDocument): IXMLProblemActionType;
begin
  Result := Doc.GetDocBinding('ProblemAction', TXMLProblemActionType, TargetNamespace) as IXMLProblemActionType;
end;

function LoadProblemAction(const FileName: string): IXMLProblemActionType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('ProblemAction', TXMLProblemActionType, TargetNamespace) as IXMLProblemActionType;
end;

function NewProblemAction: IXMLProblemActionType;
begin
  Result := NewXMLDocument.GetDocBinding('ProblemAction', TXMLProblemActionType, TargetNamespace) as IXMLProblemActionType;
end;

{ TXMLEndpointReferenceType }

procedure TXMLEndpointReferenceType.AfterConstruction;
begin
  RegisterChildNode('Address', TXMLAttributedURIType);
  RegisterChildNode('ReferenceParameters', TXMLReferenceParametersType);
  RegisterChildNode('Metadata', TXMLMetadataType);
  inherited;
end;

function TXMLEndpointReferenceType.Get_Address: IXMLAttributedURIType;
begin
  Result := ChildNodes['Address'] as IXMLAttributedURIType;
end;

function TXMLEndpointReferenceType.Get_ReferenceParameters: IXMLReferenceParametersType;
begin
  Result := ChildNodes['ReferenceParameters'] as IXMLReferenceParametersType;
end;

function TXMLEndpointReferenceType.Get_Metadata: IXMLMetadataType;
begin
  Result := ChildNodes['Metadata'] as IXMLMetadataType;
end;

{ TXMLAttributedURIType }

{ TXMLReferenceParametersType }

{ TXMLMetadataType }

{ TXMLRelatesToType }

function TXMLRelatesToType.Get_RelationshipType: UnicodeString;
begin
  Result := AttributeNodes['RelationshipType'].Text;
end;

procedure TXMLRelatesToType.Set_RelationshipType(Value: UnicodeString);
begin
  SetAttribute('RelationshipType', Value);
end;

{ TXMLAttributedUnsignedLongType }

{ TXMLAttributedQNameType }

{ TXMLProblemActionType }

procedure TXMLProblemActionType.AfterConstruction;
begin
  RegisterChildNode('Action', TXMLAttributedURIType);
  inherited;
end;

function TXMLProblemActionType.Get_Action: IXMLAttributedURIType;
begin
  Result := ChildNodes['Action'] as IXMLAttributedURIType;
end;

function TXMLProblemActionType.Get_SoapAction: UnicodeString;
begin
  Result := ChildNodes['SoapAction'].Text;
end;

procedure TXMLProblemActionType.Set_SoapAction(Value: UnicodeString);
begin
  ChildNodes['SoapAction'].NodeValue := Value;
end;

end.
Ich brauche als Typ "AttributedURIType" "MessageID", "To" und "Action" in solcher Form:
Code:
<wsa:To>http://localhost:...</wsa:To>
    <wsa:MessageID>urn:uuid:3D3F...</wsa:MessageID>
    <wsa:Action>http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT</wsa:Action>
und das alles in den HEADER.
Wie kann ich meinem Header diese Knoten hinzufügen?

Lieben Gruß,
Samashy
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz