Jeder Service muss über eine Mappingdefinition verfügen.
In dieser wird festgelegt wie die Soap-Anfragen und Antworten serialisiert und deserialisiert werden.
Das heisst, wie die Elemente der Soap-Anfrage heissen müssen, damit sie korrekt an das Objekt weiter geleitet werden können.
Für jeden Service müssen also zwei Dateien in config angelegt werden:
{SERVICENAME}_soaprequest.xml
und
{SERVICENAME}_soapresponse.xml
Diese müssen folgende Inhaltsstruktur haben:
<?xml version="1.0" encoding="utf-8"?>
<XmlObjectDefinition elementName="Request" className="{OBJEKTKLASSE}">
<Group elementName="{SERVICENAME}">
...
...
...
</Group>
</XmlObjectDefinition>
XmlObjectDefinition muss bei request das Attribute elementName="Request" besitzen, analog bei soapOut elementName="Response".
Darauf muss in der Hirarchie ein Group-Element Folgen, das den elementName="{SERVICENAME}" hat.
Für den Service Kundenanmeldung sieht das Mapping so aus:
Kundenanmeldung_soaprequest.xml
<?xml version="1.0" encoding="utf-8"?>
<XmlObjectDefinition elementName="Request" className="ShopAuftrag">
<Group elementName="Kundenanmeldung">
<Property name="Satz" className="AuftragsLeitsatz">
<Property name="m_konto" elementName="Kundennummer" />
<Property name="m_spr" elementName="Sprache" />
<Property name="m_waehr" elementName="Waehrung" />
<Property name="m_lnr" elementName="Ansprechpartner" />
</Property>
<Property name="Mandant" elementName="Mandant" />
</Group>
</XmlObjectDefinition>
.
Kundenanmeldung_soapresponse.xml
<?xml version="1.0" encoding="utf-8"?>
<XmlObjectDefinition elementName="Response" className="ShopAuftrag">
<Group elementName="Kundenanmeldung" >
<Group elementName="Kunde" >
<Property name="Ansprechpartner" className="Ansprechpartner">
<Property name="m_konto" elementName="Ansprechpartner" />
</Property>
<Property name="Kunde" className="Kundenstamm">
<Property name="m_konto" elementName="Kundennummer" />
<Property name="m_spr" elementName="Sprache" />
<Property name="m_waehr" elementName="Waehrung" />
</Property>
</Group>
<Property name="Mandant" elementName="Mandant" />
<Property name="Error" className="ShopError">
<Group elementName="Fehlerstatus" >
<Property name="ErrorCode" elementName="Fehlercode" />
<Group elementName="Meldung">
<Property name="ErrorText" elementName="Text" />
</Group>
</Group>
</Property>
<Property name="Kurs" elementName="Kurs" />
<Property name="Sachbearbeiter" elementName="Sachbearbeiter" className="Sachbearbeiter">
<Property name="m_name" elementName="Name" />
<Property name="m_telefon" elementName="Telefon" />
<Property name="m_tfx" elementName="Fax" />
<Property name="m_email_vk" elementName="Email" />
</Property>
<Group elementName="Vertreter1">
<Property name="Name1Vtr1" elementName="Name1" />
<Property name="Vertreter1" className="VertreterStamm">
<Property name="m_vertr" elementName="Nummer" />
</Property>
<Property name="Vertreter1Stamm" className="Kundenstamm">
<Property name="m_name2" elementName="Name2" />
<Property name="m_name3" elementName="Name3" />
<Property name="m_str" elementName="Strasse" />
<Property name="m_ort" elementName="Ort" />
<Property name="m_tel" elementName="Telefon" />
<Property name="m_tfx" elementName="Fax" />
<Property name="m_email" elementName="Email" />
</Property>
</Group>
<Group elementName="Vertreter2">
<Property name="Name1Vtr2" elementName="Name1" />
<Property name="Vertreter2" className="VertreterStamm">
<Property name="m_vertr" elementName="Nummer" />
</Property>
<Property name="Vertreter2Stamm" className="Kundenstamm">
<Property name="m_name2" elementName="Name2" />
<Property name="m_name3" elementName="Name3" />
<Property name="m_str" elementName="Strasse" />
<Property name="m_ort" elementName="Ort" />
<Property name="m_tel" elementName="Telefon" />
<Property name="m_tfx" elementName="Fax" />
<Property name="m_email" elementName="Email" />
</Property>
</Group>
<Group elementName="Vertreter3">
<Property name="Name1Vtr3" elementName="Name1" />
<Property name="Vertreter3" className="VertreterStamm">
<Property name="m_vertr" elementName="Nummer" />
</Property>
<Property name="Vertreter3Stamm" className="Kundenstamm">
<Property name="m_name2" elementName="Name2" />
<Property name="m_name3" elementName="Name3" />
<Property name="m_str" elementName="Strasse" />
<Property name="m_ort" elementName="Ort" />
<Property name="m_tel" elementName="Telefon" />
<Property name="m_tfx" elementName="Fax" />
<Property name="m_email" elementName="Email" />
</Property>
</Group>
</Group>
</XmlObjectDefinition>