How to use namespaces in process variables?

Can anyone clarify how to correctly work with complex data in process variables? I.e. I have a relatively large number of jaxb classes generated from XSD schema. The structure is fairly complex and has elements in multiple namespaces. Some SOAP endpoint uses them and there are no issues with the xml.

Now I want to start a process instance within a web service and put the service’s input message as a process variable:

public void operation(edu.test.SampleClass request) {
    ObjectValue value = Variables.objectValue(request).serializationDataFormat("application/xml").create();

    ProcessInstance instance = runtimeService.startProcessInstanceByKey("myProcess",
            request.getId(),
            Collections.singletonMap("request", request));
}

It works, the data is stored into the process and I can use it in BPMN expressions for example such as ${request.innerElement.someProperty == “someValue”}.
The problem is when I look into the variable in the cockpit, all the namespaces are lost! Furthermore, if my jaxb types have the same names but different namespaces, putting them as a variable fails with duplicated element error:

Caused by: spinjar.com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 4 counts of IllegalAnnotationExceptions
Two classes have the same XML type name "textType". Use @XmlType.name and @XmlType.namespace to assign different names to them.

But the duplicated classes are annotated with @XmlType.namespace and the namespaces are different already. Wsdl2java generates them and it works for SOAP. Seems spin just ignores the namespaces.

Is this the expected behaviour? Can I use jaxb annotations with spin at all?