Element 'TemplateDocument' einer Schablonendefinitionsadetei
Bei jeder eingehenden XML-Nachricht muss in der Nachricht
mindestens ein Schablonendokument definiert sein. Dies wird im Element
TemplateDocument definiert. Das Element
TemplateDocument hat vier Unterelemente:
- DocumentType (mit optionalem
Versionsattribut): Dieser Teil gibt den Namen des
XML-Dokuments oder den Stammelementnamen sowie (sofern vorhanden) das
Attribut 'version' des Stammelements an. Nachfolgend ein Beispiel für ein Element DocumentType:
<DocumentType version='1.0'>Reset_Password</DocumentType>
- StartElement: Dieser Teil gibt das Element an,
aus dem der XML-Nachrichten-Mapper die Befehlszuordnung startet. Dieses Element muss einem Element in der DTD-Datei der Nachricht
entsprechen. Bei der Befehlszuordnung werden die Name/Wert-Paare generiert, die
als Befehlsparameter verwendet werden. Nachfolgend ein Beispiel für die Verwendung von
StartElement:
<StartElement>PasswordInfo</StartElement>
In diesem Beispiel sollte in der DTD-Datei für diese Nachricht ein
Element namens PasswordInfo
definiert sein. Die DTD-Datei sollte eine Zeile wie beispielsweise
die folgende Zeile enthalten, die ein Element PasswordInfo definiert:
<!ELEMENT PasswordInfo (Password, ConfirmPassword)>
- TemplateTagName: Dieser Teil gibt an, welche
Befehlszuordnung für die Nachricht verwendet werden soll. Die Befehlszuordnung ist an einer anderen Stelle in der
Schablonendefinitionsdatei unter dem Element
TemplateTag definiert. Dies bedeutet, dass der Wert des
Elements TemplateTagName mit dem Attribut
name eines Elements
TemplateTag übereinstimmen muss, das in der
Schablonendefinitionsdatei vorhanden ist. Weitere Einzelheiten finden Sie im Abschnitt
über das Element TemplateTag. Das folgende Beispiel veranschaulicht die Verwendung des Elements
TemplateTagName:
<TemplateTagName>PasswordReset10Map</TemplateTagName>
In diesem Beispiel muss das folgende Element TemplateTag in der
Schablonendefinitionsdatei vorhanden sein:
<TemplateTag name='PasswordReset10Map'>
...
</TemplateTag>
Die Elemente zwischen dem Start- und dem Endebefehl sind von der
Zuordnung der Nachricht abhängig.
- CommandMapping: Dieses Element bestimmt,
welche Befehle durch die Nachricht aufgerufen werden. Das Element enthält ein Unterelement namens Command. Mit dem Element Command wird der
WebSphere Commerce-Controller-Befehl angegeben, der ausgeführt werden
soll,
nachdem durch den Mapper die Nachricht erfolgreich zugeordnet wurde. Sie enthält ein verbindliches Attribut namens CommandName,
das den Namen des Befehls angibt. Der Wert dieses Attributs muss mit einem vorhandenen Befehl identisch
sein, der in der Tabelle URLREG registriert ist. Mit der folgenden Syntax könnten Sie einer Nachricht
beispielsweise den Befehl zuordnen,
der ein Kennwort zurücksetzt:
<CommandMapping>
<Command CommandName='ResetPassword'/>
</CommandMapping>
Sie können einer Nachricht auch mehrere Befehle zuordnen. Hierzu
müssen Sie die folgenden weiteren Attribute des Elements Command
verwenden:
- Attributbedingung:
Für das Attribut Condition (Bedingung) wird die folgende Syntax
verwendet (die Zeichen [] kennzeichnen einen wahlfreien Bestandteil,
das Zeichen * bedeutet, dass eine Wiederholung möglich ist):
fieldName [="fieldValue "] [AND fieldName [="fieldValue "]]*
fieldName
- Dieses Attribut sollte dem Attribut Field
des Elements Tag
in der Definition TemplateTag entsprechen. Wenn das Attribut
XPath dieses Befehls in der eingehenden
XML-Nachricht vorhanden ist, ist die Bedingung wahr.
- fieldName="fieldValue "
- Ein Wert in der XML-Nachricht ist auf das Feld in
fieldName gesetzt. Wenn der Wert mit
fieldValue identisch
ist, nachdem die Nachricht durch den Nachrichten-Mapper zugeordnet
wurde, ist die Bedingung wahr.
- fieldName1="fieldValue1" AND fieldName1="fieldValue2"
- Die Werte in der XML-Nachricht werden auf
das Feld fieldName1 und fieldName2 gesetzt,
nachdem die Nachricht syntaktisch analysiert wurde. Wenn die Werte mit fieldValue1 bzw.
fieldValue2 identisch sind, ist die Bedingung wahr.
- Attribut TemplateTagName:
Wenn Sie für dieses Element Command das Attribut TemplateTagName
angeben, wird immer dann, wenn die Bedingung (Attribut Condition)
wahr wird, eine neue Befehlsschablone für den Rest der eingehenden
XML-Nachricht verwendet. Der Name dieser Schablone ist in
TemplateTagName definiert.
- Element Constant: Die Liste der Konstanten, die für diesen
Befehl in den Parameter 'TypedProperty' gestellt werden sollen.
- Field: Der Feldname des Name/Wert-Paares, das in
den Parameter 'TypedProperty' gestellt wird.
- FieldInfo: Siehe Definition unter 'TemplateTag'.
Der Wert sollte zwischen die Befehle <Constant>
und </Constant> gestellt werden.
Das folgende einfache Beispiel erläutert, wie Sie die verschiedenen
Elemente Command verwenden können, um mehrere Befehle zuzuordnen:
<CommandMapping>
<Command CommandName='ResetPassword'
Condition='Verb="Reset" AND Noun="Password"'/>
<Command CommandName='AdminResetPassword'
Condition='Verb="Reset" AND Noun="AdminPassword"'/>
</CommandMapping>
In diesem Beispiel sollten die Elemente Noun und Verb
in der DTD-Datei für die Nachricht definiert sein.