Java JAXB绑定以覆盖或删除XMLSchemaType xs:token
我使用maven jaxb2插件从xsd生成模型类。xsd使用type=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的情况下使用
<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;