Ok I answered myself after some radom testing session, soap library documentation do not mention it but if you wanna add marshallable attributes to your Typescript object you have to add an attributes
key like:
return {
Operations: {
AbstractOperation: prismaMappedOperationArray,
attributes: { 'xmlns:xsi': 'tns:ConcreteOperation1' },
},
}
And this will return:
<tns:Operations>
<tns:AbstractOperation xsi:type="tns:ConcreteOperation1">
<tns:progressive>1</tns:progressive>
<tns:identifier>FP301DW</tns:identifier>
</tns:AbstractOperation>
<tns:AbstractOperation xsi:type="tns:ConcreteOperation1">
<tns:progressive>2</tns:progressive>
<tns:identifier>FP301DW</tns:identifier>
</tns:AbstractOperation>
</tns:Operations>