Java JAXB绑定以覆盖或删除XMLSchemaType xs:token

Java JAXB绑定以覆盖或删除XMLSchemaType xs:token,java,jaxb,xsd,xjc,maven-jaxb2-plugin,Java,Jaxb,Xsd,Xjc,Maven Jaxb2 Plugin,我使用maven jaxb2插件从xsd生成模型类。xsd使用type=xs:token指定某些元素,如下所示: <xs:element name="medium_text" type="xs:token"/> 问题是CollapsedStringAdapter会删除新行等(这是xs:token的正确行为),但我想避免这种情况 如何使用JAXB绑定从元素中删除xs:token类型或将其更改为xs:string?简单的解决方案是从xsd中删除类型,但是否可以在不修改xsd的情况下使用

我使用maven jaxb2插件从xsd生成模型类。xsd使用type=xs:token指定某些元素,如下所示:

<xs:element name="medium_text" type="xs:token"/>
问题是CollapsedStringAdapter会删除新行等(这是xs:token的正确行为),但我想避免这种情况


如何使用JAXB绑定从元素中删除xs:token类型或将其更改为xs:string?简单的解决方案是从xsd中删除类型,但是否可以在不修改xsd的情况下使用绑定?

您可以在绑定文件中使用以下内容


其结果如下:

@xmlement(name=“mid_text”,required=true)
@XmlJavaTypeAdapter(Adapter1.class)
@XmlSchemaType(name=“token”)
受保护的字符串中间文本;
但是Adapter1是无害的,不会更改字符串值

此外,如果您想对所有
令牌执行此操作,您可以添加
全局绑定


您可以在绑定文件中使用以下内容


其结果如下:

@xmlement(name=“mid_text”,required=true)
@XmlJavaTypeAdapter(Adapter1.class)
@XmlSchemaType(name=“token”)
受保护的字符串中间文本;
但是Adapter1是无害的,不会更改字符串值

此外,如果您想对所有
令牌执行此操作,您可以添加
全局绑定


@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name="token")
protected String medium_text;