Apache 轴 1:禁用科学记数法中 xsd:float 的序列化



我们有一个Web服务客户端,它调用一个服务(rpc编码,我们仍然使用轴1的原因(,该服务将一些值定义为xsd:float但拒绝以科学记数法传递的值。我知道这是客户端完全符合标准的行为(https://www.w3.org/TR/xmlschema-2/3.2.4.1(,并且可能是服务器使用的正确方式xsd:decimal我想知道是否有办法告诉轴不要使用科学记数法进行xsd:floatxsd:double

可能相关:BigDecimal 在肥皂消息中具有科学记数法,询问如何使用 JAX-B 实现这一点,并接受的答案建议使用XMLAdapter。也许轴存在类似的机制。

看起来在 Axis (http://axis.apache.org/axis/java/user-guide.html#XML_-_Java_Data_Mapping_in_Axis( 中,您可以为(例如(float 定义自己的序列化程序和反序列化程序(您必须更改 XSD:;您是否有权访问?(。 这是通过 typeMapping 完成的:

<typeMapping qname="ns:local" xmlns:ns="someNamespace"
    languageSpecificType="java:my.java.thingy"
    serializer="my.java.Serializer"
    deserializer="my.java.DeserializerFactory"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

相关内容

  • 没有找到相关文章

最新更新