如何在JAXB MARSHALLING期间修剪String

时间:2015-01-13 19:20:25

标签: java xml jaxb marshalling trim

我正在使用JAXB将Java对象编组为XML。

http://highlevelbits.com/2009/08/jaxb-with-maven_16.html

我尝试将collapsedstringadapter适配器设置为我的JAXB生成的类。 但是看起来collapsedstringadapter只会在unmarshal期间修剪String值,而在编组时它会返回未修剪的String。

有人可以指点我如何通过JAXB在编组期间修剪String吗?

1 个答案:

答案 0 :(得分:1)

编写并配置自己的适配器?就像您配置CollapsedStringAdapter

一样
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
    <jaxb:bindings schemaLocation="myschema.xsd" node="/xs:schema">
        <jaxb:globalBindings>
            <xjc:javaType name="java.lang.String" xmlType="xs:string"
                adapter="com.acme.foo.bind.annotation.adapters.BiCollapsedStringAdapter"/>
        </jaxb:globalBindings>
    </jaxb:bindings>
</jaxb:bindings>