Verwenden von SOAP-Headern in Orchestrierungen
In Orchestrierungen werden Eigenschaftsschemas verwendet, um SOAP-Headerkontexteigenschaften zu definieren. SOAP-Headerkontexteigenschaften legen Sie mit dem BizTalk-Editor fest.
Definieren von SOAP-Headerkontexteigenschaften mit Eigenschaftsschemas
Sie benötigen ein Eigenschaftsschema, um definierte SOAP-Headerkontexteigenschaften in Orchestrierungen verwenden zu können. Für das Eigenschaftenschema muss der Zielnamespace von http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
festgelegt sein, und die Eigenschaft Schema-Basiseigenschaft muss auf MessageContextPropertyBase festgelegt sein. Jeder Stammelementname im Eigenschaftsschema muss mit dem Stammelementnamen im definierten SOAP-Header übereinstimmen. Sie können dann Werte für die Kontexteigenschaften mit dem Namespace des Eigenschaftsschemas und dem Eigenschaftsnamen festlegen.
Hinweis
Der Namespace des Eigenschaftenschemas unterscheidet sich vom Namespace des Zielschemas (http://schemas.microsoft.com/BizTalk/2003/SOAPHeader
). Ihr Namespace kann eine beliebige Zeichenfolge sein. Üblicherweise wird der Name des Projekts als Standardwert für den Namespace verwendet.
Der folgende Code zeigt das Zuweisen einer SOAP-Headerkontexteigenschaft, bei der der Eigenschaftenschemanamespace SOAPHeader mit dem Eigenschaftsnamen OrigDest ist:
requestMessageInstance(SOAPHeader.OrigDest) = stringVar;
Weitere Informationen zu Eigenschaftenschemas und Kontexteigenschaften finden Sie unter Eigenschaftenschemas.
Mit dem BizTalk-Editor SOAP-Headerkontexteigenschaften festlegen
Bei Orchestrierungen werden die Kontexteigenschaften von SOAP-Headern auf Zeichenfolgen festgelegt, die XML-Daten enthalten. Sie legen diese Zeichenfolgen mit dem BizTalk-Ausdrucks-Editor in einer Nachrichtenzuweisungs- oder Ausdrucksform fest.
Das folgende Beispiel zeigt die Zeichenfolge, mit der die Kontexteigenschaft festgelegt wird:
RequestMessageInstance(SOAPHeader.OrigDest) = "<?xml version=\"1.0\"?>
<OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">
<Origination>Home</Origination>
<Destination>Work</Destination>
</OrigDest>"
Mit dem BizTalk-Editor eine Instanz eines SOAP-Headerstammelements erstellen
Es kann schwierig sein, den SOAP-Header auf die richtige Zeichenfolge festzulegen. Wenn einem BizTalk-Projekt ein Webverweis hinzugefügt wird, werden alle komplexen Webnachrichtenteile als Stammelemente zur Datei Reference.xsd hinzugefügt. Reference.xsd enthält außerdem Stammelemente für jeden definierten SOAP-Header. Um sicherzustellen, dass Sie den SOAP-Header mit der richtigen Zeichenfolge festlegen, sollten Sie den BizTalk-Editor verwenden, um eine instance des SOAP-Headerstammelements für Reference.xsd zu erstellen. Sie können die generierten instance Daten direkt oder die instance Daten verwenden, um Ihre realen Daten zu enthalten.
Weitere Informationen zur Verwendung des BizTalk-Editors zum Generieren von instance Daten finden Sie unter Generieren von Instanzmeldungen.
Erstellen eines XMLDocument, um Kontexteigenschaften festzulegen
Sie können Kontexteigenschaften festlegen, indem Sie ein XmlDocument erstellen und den Zeichenfolgenwert des XmlDocument in die context-Eigenschaft schreiben. Sie deklarieren eine Variable vom Typ XMLDocument und weisen die XML-Daten zu.
Das folgende Beispiel zeigt das Festlegen einer Deklarierung einer Variablen vom Typ XMLDocument und das Zuweisen der XML-Daten:
xmlDoc.LoadXml("<?xml version=\"1.0\"?><OrigDest xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\"><Origination>Home</Origination><Destination>Work</Destination></OrigDest>");
Im folgenden Beispiel wird gezeigt, wie die Kontexteigenschaft festgelegt wird:
RequestMessageInstance(SOAPHeader.OrigDest) = xmlDoc.OuterXml;
Weitere Informationen zur Verwendung des BizTalk-Ausdrucks-Editors finden Sie unter Anforderungen und Einschränkungen für Ausdrücke. Weitere Informationen zum Aufrufen von .NET-Klassen finden Sie unter Erstellen von Nachrichten im Benutzercode.
Erstellen von SOAP-Headern für eine SOAP-Anforderung
Wenn Sie SOAP-Header für eine SOAP-Anforderung erstellen, müssen Sie sicherstellen, dass Sie die SOAP-Header ordnungsgemäß erstellt haben. Der SOAP-Adapter überprüft den Inhalt der SOAP-Headerkontexteigenschaften nicht.
Hinweis
Wenn der SOAP-Header fehlerhaft ist, kann BizTalk die SOAP-Anforderung nicht an den Webdienst senden.
Die SOAP-Antwort, die BizTalk an den Webdienst zurückgibt, kann auch SOAP-Header enthalten. Sie können auf diese SOAP-Header nur zugreifen, wenn sie als SOAP-Header definiert sind.
Hinweis
Verwendete Webdienste unterstützen nur definierte SOAP-Header.
Weitere Informationen zu definierten SOAP-Headern finden Sie unter Verwenden von SOAP-Headern. Das Festlegen von SOAP-Headern für eine Antwort auf Kontexteigenschaften erfolgt mit derselben Syntax wie für die SOAP-Header für eine Anforderung.
Anhand des folgenden Codes wird gezeigt, wie auf die SOAP-Header für eine Antwort zugegriffen wird:
stringVar = ResponseMessageInstance(SOAPHeader.OrigDest);
Die Werte, die in den Kontexteigenschaften enthalten sind, enthalten XML-Daten. Sie legen diese Zeichenfolgen mit dem BizTalk-Ausdrucks-Editor in einer Nachrichtenzuweisungs- oder Ausdrucksform fest. Sie laden die Zeichenfolge in ein XmlDocument und verwenden XPath-Abfragen, um auf bestimmte Felder zuzugreifen.
Weitere Informationen zum Erstellen von XML-Dokumenten im BizTalk-Ausdrucks-Editor finden Sie unter XLANG-s Language.