I think either of us doesn't understand ;-) Since the service provider essentially replaced the SOAP string type with its own 'StringType' simple type that "VEMPTY" text content can appear in any element. Hence, I need to globally replace that text in every SOAP message - regardless of which XML element it is used with. That's why I concluded that I can't use the standard TransformationFeature.
I was also checking whether CXF allowed to register custom deserializers/mapper for a given type (i.e. from that custom XML StringType to Java String) but I haven't found anything yet. On 29.11.17 14:22, Sergey Beryozkin wrote: > You should be able to replace it: > > https://github.com/apache/cxf/blob/master/core/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java#L56 > > > and > > https://github.com/apache/cxf/blob/master/core/src/test/java/org/apache/cxf/staxutils/transform/InTransformReaderTest.java#L73 > > > You'd likely need to say that {someNs}modifiedBy has to be replaced by > {someNs}modifiedBy > > HTH, Sergey > On 29/11/17 09:22, Marcel Stör wrote: >> We're consuming SOAP messages for which the string type was extended or >> redefined (see at the bottom). To denote null/empty values the XML >> element uses "VEMPTY" as text content. >> >> Example: <ns2:modifiedBy>VEMPTY</ns2:modifiedBy> >> >> Before the message is deserialized and mapped to the Java model we'd >> like to transform "VEMPTY" to "". As this special text content can >> appear in arbitrary elements I don't think the standard >> TransformationFeature as per >> https://cxf.apache.org/docs/transformationfeature.html#TransformationFeature-Replacingtextcontent >> >> is applicable. Correct? >> >> I suspect we need to use the XSLT transformation, right? >> >> [StringType] >> <xsd:simpleType name="StringType"> >> <xsd:annotation> >> <xsd:documentation xml:lang="en"> >> ...some documentation... >> VEMPTY if effective value is null >> ...some more documentation... >> </xsd:documentation> >> </xsd:annotation> >> <xsd:restriction base="xsd:string"/> >> </xsd:simpleType> >> >> <xsd:element name="modifiedBy" type="st:StringType"> >> <xsd:annotation> >> <xsd:documentation> >> .... >> </xsd:documentation> >> </xsd:annotation> >> </xsd:element> >> > > -- Marcel Stör, https://frightanic.com My PGP key: https://frightanic.com/pgp/ Couchsurfing: http://www.couchsurfing.com/people/marcelstoer O< ascii ribbon campaign - stop html mail - http://j.mp/1OThh9L
signature.asc
Description: OpenPGP digital signature