package Ġuk . co . b acon i . pk a . common . xml Ċ Ċ import Ġkotlinx . io . core . use Ċ import Ġuk . co . b acon i . pk a . common . AccessToken Ċ Ċ fun ĠXml Serializer . tag ( name : ĠString , Ġnamespace : ĠString ? Ġ= Ġnull , Ġinner : ĠXml Serializer . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġstart Tag ( namespace , Ġname ) ĊĠĠĠ Ġinner () ĊĠĠĠ Ġend Tag ( namespace , Ġname ) Ċ } Ċ Ċ fun ĠXml Serializer . attribute ( name : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠ Ġattribute ( null , Ġname , Ġvalue ) Ċ } Ċ Ċ fun ĠXml Serializer . build ( body : ĠXml Serializer . () Ġ-> ĠUnit ): ĠString Ġ= Ġuse Ġ{ ĊĠĠĠ Ġstart Document (" utf - 8 ", Ġnull ) ĊĠĠĠ Ġbody () ĊĠĠĠ Ġend Document () ĊĠĠĠ Ġreturn Ġget Output () Ċ } Ċ Ċ fun ĠXml Serializer . soap Request ( accessToken : ĠAccess Token , Ġbody : ĠXml Serializer . () Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠ Ġval Ġso ap Ġ= Ġ" soap " ĊĠĠĠ Ġval Ġtypes Ġ= Ġ" typ " ĊĠĠĠ Ġval Ġl db Ġ= Ġ" l db " ĊĊĠĠĠ Ġtag ("$ soap : Envelope ") Ġ{ ĊĊĠĠĠĠĠĠĠ Ġattribute (" xmlns :$ soap ", Ġ" http :// www . w 3 . org / 2 0 0 3 / 0 5 / soap - envelope ") ĊĠĠĠĠĠĠĠ Ġattribute (" xmlns :$ types ", Ġ" http :// th ales group . com / RT TI / 2 0 1 3 - 1 1 - 2 8 / Token / types ") ĊĠĠĠĠĠĠĠ Ġattribute (" xmlns :$ l db ", Ġ" http :// th ales group . com / RT TI / 2 0 1 7 - 1 0 - 0 1 / l db /") ĊĊĠĠĠĠĠĠĠ Ġtag ("$ soap : Header ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag ("$ types : AccessToken ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag ("$ types : Token Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ( accessToken . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtag ("$ soap : Body ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }