xml senden und empfangen mit Xb2Net - SOAP
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
xml senden und empfangen mit Xb2Net - SOAP
Schreibe das hier, da es Xb2Net nicht extra gibt.
Ich habe keine Ahnung von Xb2Net und Soap, etc.
Wie mache ich das in Xb2Net?
Die Xml Datei wird von mir erzeugt.
Zum Bezug einer Registriernummer ist
die Methode "Datenregistratur" im WEB-Service implementiert, die wie folgt aufzurufen ist:
XmlDocument Datenregistratur (XmlDocument doc)
doc: XML-Dokument mit den Pflichtangaben zur Erteilung einer Registriernummer
Die Methode liefert das Ergebnis in einem XML-Dokument zurück.
Ich habe keine Ahnung von Xb2Net und Soap, etc.
Wie mache ich das in Xb2Net?
Die Xml Datei wird von mir erzeugt.
Zum Bezug einer Registriernummer ist
die Methode "Datenregistratur" im WEB-Service implementiert, die wie folgt aufzurufen ist:
XmlDocument Datenregistratur (XmlDocument doc)
doc: XML-Dokument mit den Pflichtangaben zur Erteilung einer Registriernummer
Die Methode liefert das Ergebnis in einem XML-Dokument zurück.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
das würde besser zum WEB passen oder ?
Hast du ein Beispiel wie die Anforderung XML Datei aussehen soll ?
Hast du ein Beispiel wie die Anforderung XML Datei aussehen soll ?
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Hier, aber die habe ich ja schon erstellt.
In den Beispielen zu Xb2Net habe ich nur Aufrufe mit exe, etc. gesehen,
hier ist das so
Test-Client für Test-System
Das DIBt stellt einen Test-Client zur Überprüfung und zum Test der Eingabe – XML zur Verfügung,
dort sind auch die XSD-Dateien für die Eingabe-/Ausgabe-Dateien verfügbar.
https://energieausweis.dibt.de/schema/S ... assung.xsd
https://energieausweis.dibt.de/schema/X ... tratur.xsd
https://energieausweis.dibt.de/schema/X ... assung.xsd
Der Test-Client kann aufgerufen werden unter:
https://energieausweis.dibt.de/sandbox/webservicetest
a) Aufrufkonvention zur Registratur eines Energieausweises (Beispiel)
In den Beispielen zu Xb2Net habe ich nur Aufrufe mit exe, etc. gesehen,
hier ist das so
Test-Client für Test-System
Das DIBt stellt einen Test-Client zur Überprüfung und zum Test der Eingabe – XML zur Verfügung,
dort sind auch die XSD-Dateien für die Eingabe-/Ausgabe-Dateien verfügbar.
https://energieausweis.dibt.de/schema/S ... assung.xsd
https://energieausweis.dibt.de/schema/X ... tratur.xsd
https://energieausweis.dibt.de/schema/X ... assung.xsd
Der Test-Client kann aufgerufen werden unter:
https://energieausweis.dibt.de/sandbox/webservicetest
a) Aufrufkonvention zur Registratur eines Energieausweises (Beispiel)
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!-- Datenbeispiel - Energieausweis zur Nutzung WEB-Service Registriernummernvergabe
<root xmlns="https://energieausweis.dibt.de/schema/SchemaDatenErfassung.xsd">
<Authentifizierung>
<Aussteller_ID_DIBT>test@test.de</Aussteller_ID_DIBT>
<Aussteller_PWD_DIBT>FA02193CBF8EEF3C4A4C639D2DB24221</Aussteller_PWD_DIBT>
</Authentifizierung>
<EnEV-Nachweis>
<Ausstellungsdatum>2014-02-12</Ausstellungsdatum>
<Bundesland>Berlin</Bundesland>
<Postleitzahl>12101</Postleitzahl>
</EnEV-Nachweis>
<Energieausweis-Daten>
<Gebaeudeart>Wohngebäude</Gebaeudeart>
<Art>Energieverbrauchsausweis</Art>
<Neubau>1</Neubau>
</Energieausweis-Daten>
</root>
Gruß
Klaus
Klaus
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Hallo Klaus,
wenn es um die Kommunikations geht, hilft vielleicht das Beispiel mit XB2NET
Grüße
Rudolf
wenn es um die Kommunikations geht, hilft vielleicht das Beispiel mit XB2NET
Grüße
Rudolf
Code: Alles auswählen
cUrl := "https://teambox.com/api/1/projects -u formcommander:1245789"
oHttp := TServerXMLHTTPRequest():New()
if oHttp:Open("POST",cUrlList,,"formcommander","1245789")
dc_hourglasson()
oHTTp:lIgnoreCertAll := .t.
if oHttp:Send()
sleep(5)
cc := oHttp:responseBody
if !empty(cc)
dc_hourglassoff()
return cc
else
wmeld("no response from " + cUrl)
return NIL
endif
else
dc_hourglassoff()
wmeld("Error send GET message to server:" + cUrl)
return NIL
endif
else
wmeld("Error open " + cUrl)
endif
return NIL
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Das sieht für mich nach einem WSDL aus, womit SOAP Mittel der Wahl wäre. Du hast doch eXpress++, Klaus, oder? Da gibt es u.a. ein Tool "SOAPTEST.EXE" (<ExpressDir>\Samples\Soap), in dem Du einfach Parameter bestimmen und Abfragen auslösen kannst. Xb2.Net wird verwendet. Dort siehst Du auch die erzeugten Requests als XML-Struktur. SOAP ist relativ simpel, und man kann theoretisch auch darauf verzichten, sich die Beschreibungsdaten (WSDL/XSD) anzusehen. Entscheidend ist, dass man den Abruf richtig parametrisiert.
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Hallo Tom,
werde das mal mit SOAPTEST.EXE probieren.
Aus der Beschreibung gibt es beide Möglichkeiten
4 Beispiel für WEBService-Nutzung in C##
1. Nach dem Hinzufügen des entsprechenden WEB_Service-Verweises zum Projekt
Testsystem
https://energieausweis.dibt.de/sandbox/ ... rvice.asmx
Produktivsystem
https://energieausweis.dibt.de/publishe ... rvice.asmx
...
XmlDocument xml = new XmlDocument();
XmlDocument xmlresult = new XmlDocument();
xml.Load(Server.MapPath("~/") + "bsp.xml"); //*** Bsp. XML laden
DibtEnergieAusweisServiceSoapClient s = new DibtEnergieAusweisServiceSoapClient();
XmlElement xe = xmlresult.CreateElement("root");
xe.InnerXml = ((XmlElement)s.Datenregistratur(xml.DocumentElement)).InnerXml;
xmlresult.AppendChild(xe);
oder
XmlNode xmlNodeObject_result = s.Datenregistratur(xml.DocumentElement);
xmlresult.AppendChild(xmlresult.ImportNode(xmlNodeObject_result, true));
...
2. Für eine direkte Parametrisierung in einem Client kann eine erweiterte WSDL zur
WEB-Service-Einbindung verwendet werden:
Testsystem
https://energieausweis.dibt.de/sandbox/ ... eEx01.wsdl
Produktivsystem
https://energieausweis.dibt.de/publishe ... eEx01.wsdl
Dies stellt entsprechend der eingebundenen XSD's konfigurierte Klassen für den Zugriff auf die Eingabe- und
Rückgabeparameter für den WEB-Service-Aufruf bereit.
werde das mal mit SOAPTEST.EXE probieren.
Aus der Beschreibung gibt es beide Möglichkeiten
4 Beispiel für WEBService-Nutzung in C##
1. Nach dem Hinzufügen des entsprechenden WEB_Service-Verweises zum Projekt
Testsystem
https://energieausweis.dibt.de/sandbox/ ... rvice.asmx
Produktivsystem
https://energieausweis.dibt.de/publishe ... rvice.asmx
...
XmlDocument xml = new XmlDocument();
XmlDocument xmlresult = new XmlDocument();
xml.Load(Server.MapPath("~/") + "bsp.xml"); //*** Bsp. XML laden
DibtEnergieAusweisServiceSoapClient s = new DibtEnergieAusweisServiceSoapClient();
XmlElement xe = xmlresult.CreateElement("root");
xe.InnerXml = ((XmlElement)s.Datenregistratur(xml.DocumentElement)).InnerXml;
xmlresult.AppendChild(xe);
oder
XmlNode xmlNodeObject_result = s.Datenregistratur(xml.DocumentElement);
xmlresult.AppendChild(xmlresult.ImportNode(xmlNodeObject_result, true));
...
2. Für eine direkte Parametrisierung in einem Client kann eine erweiterte WSDL zur
WEB-Service-Einbindung verwendet werden:
Testsystem
https://energieausweis.dibt.de/sandbox/ ... eEx01.wsdl
Produktivsystem
https://energieausweis.dibt.de/publishe ... eEx01.wsdl
Dies stellt entsprechend der eingebundenen XSD's konfigurierte Klassen für den Zugriff auf die Eingabe- und
Rückgabeparameter für den WEB-Service-Aufruf bereit.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Waaas für ein langer Quelltext
Aber man sieht, der MAINSTREAM wird mit fertigem Code belohnt
Aber man sieht, der MAINSTREAM wird mit fertigem Code belohnt
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net
Es gibt im Testsystem eine Funktion "Datenregistratur". Das trägst Du in "SOAPTEST" bei "Method" ein, darunter (Response) "DatenregistraturResponse". Die URL trägst Du weiter oben ein ("URL"). "Style" dürfte "Document" sein, "Serialization" "Literal". Spannend ist es bei den Variablen, deren Reihenfolge irrelevant ist. "Type" ist meistens "Character". Du kannst dann per "Run Test" sehen, was die Methode antwortet (speichern der Abfrage nicht vergessen - Namen bei "Ini Group" hinterlegen"). Du siehst dann auch (auf den weiteren Karteireitern), welchen Request das Tooll erzeugt - und kannst ihn z.B. hiermit vergleichen:
https://energieausweis.dibt.de/sandbox/ ... egistratur
Im Quellcode des Tools siehst Du, wie es gemacht wird. Die WSDL- und XSD-Dateien kannst Du ignorieren. Eigentlich muss man die, wenn man WSDL macht, abrufen, um daraus abstrakte Requests zu erzeugen, aber so lange sich dort nichts ändert, ist es verzichtbar.
https://energieausweis.dibt.de/sandbox/ ... egistratur
Im Quellcode des Tools siehst Du, wie es gemacht wird. Die WSDL- und XSD-Dateien kannst Du ignorieren. Eigentlich muss man die, wenn man WSDL macht, abrufen, um daraus abstrakte Requests zu erzeugen, aber so lange sich dort nichts ändert, ist es verzichtbar.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net - SOAP
Liefert die Abfrage also quasi ein leeres XML-Formular mit allen Feldern zum Ausfüllen zurück ?TOM hat geschrieben: Eigentlich muss man die, wenn man WSDL macht, abrufen, um daraus abstrakte Requests zu erzeugen
PS: ich habe das Thema mal ins WEB verschoben, mit SQL hat es ja nix zu tun (außer dem Hersteller).
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: xml senden und empfangen mit Xb2Net - SOAP
Nein. Eine WSDL-Datei beschreibt die Struktur eines (SOAP)-Webservices, also verfügbare Methoden/Funktionen, Parameter und Rückgabewerte. WSDL steht für "Web Services Description Language". Wenn man mit einem Webservice arbeitet, erlaubt diese Datei, die Abfragen dynamisch möglichen Änderungen anzupassen. Man muss sie aber nicht verwenden. Wenn man die URLs/Namespaces, Funktionsnamen und Parameter kennt (aus der WSDL-Datei ), generiert man einfach einen Request mit diesen Daten, feddisch. Als Rückgabe bekommt man einen "SOAP-Envelope", in den die Antwortdaten eingebunden sind. Mit Xb2.Net kann man diese Daten einfach als Instanzen des Rückgabeobjekts abrufen. Dieses Rückgabeobjekt ist der Content des Request-Objekts. In Boris' Beispielen ist das gut sichtbar, aber noch besser in denen von Roger.
Herzlich,
Tom
Tom