Tag: jaxb2

为Spring Jaxb2Marshaller指定一个包而不是“classesToBeBound”

我试图使用Jaxb2Marshaller使用spring编组一组java类。 我知道这可以使用以下代码完成 com.example.test1 com.example.test2 我想要做的是不是指定类列表,而是仅指定包含所有类的包名(在上面的例子中为com.example)。 有没有人知道这样做的方法,或任何其他方式不要求我列出所有类。 任何帮助,将不胜感激 ! 谢谢。

什么是Jaxb等效的Text节点值?

我希望转换一个看起来像这样的类…… public class Amenity { public String id; public String value; } 使用JaxB注释将以下XML转换为: value-string-here 有谁知道在value成员变量上使用什么注释来完成此任务? 我到目前为止最接近的是: @XmlRootElement public class Amenity { @XmlAttribute public String id; @XmlElement public String value; } 不幸的是,这种方法不允许我指定value成员变量不应该呈现为自己的标记 。

JAXB将不需要的名称空间声明附加到标记

我正在实现一个自制的XMPP子协议,我正在使用StAX和JAXB的组合来解析/编组消息。 当我编组一条消息时,我最终会遇到大量不需要的命名空间声明: compton@ilf 代替: compton@ilf 有什么办法可以转变吗? 所有这些名称空间都用在由JAXB编组/解组的不同消息中,但每条消息都使用一个名称空间。 PS。 我不是XML专家,如果我犯了一些愚蠢的错误,请不要骂我;)

Apache CXF在Web服务上的命名空间问题

我正在使用Apache CXF 2.7.3,并遇到一个我真的不明白的命名空间问题。 我已经尝试过广泛搜索,但我发现的大部分结果都是针对不同的行为。 问题是在调用Web服务时,如果参数元素是名称空间限定的,它将失败。 消息中的所有其他元素都是合格的,它接受它,而不是参数元素。 这是精确的行为: 请求WITHOUT参数元素限定: a 取得成功: ABC123 Smith 请求WITH参数限定: a 导致JAXBexception: soap:Client Unmarshalling Error: unexpected element (uri:”http://www.example.org/order”, local:”id”). Expected elements are <{}id> 在我所做的所有研究中,这通常意味着命名空间在某处不匹配。 但我已经彻底检查了它,并且命名空间在任何地方都是相同的,包括ObjectFactory.class,package-info.class和cxf-servlet.xml配置文件以及@WebService注释。 任何人都可以指出我正确的方向,我在这里缺少什么?

为什么JAXB有时会映射到JAXBElement?

在非官方指南中有一个占位符回答,其中包含一篇文章链接(对我而言)似乎非常不相关。 我使用XJC生成我的JAXB类,虽然它们中的大多数按预期映射到彼此,但是一些元素被映射到JAXBElement 。 这对于具有循环的图来说是最烦人的,其中有时Foo元素的父节点将是JAXBElement ,它本身不具有父属性,从而打破了循环。 我可以想到各种解决方法,但如果有人能够向我解释这种行为会更好。 为什么JAXB有时将元素映射到JAXBElement而不是Foo?

@XmlRegistry – 它是如何工作的?

我在互联网上找到了一些JAXB2 @XmlRegistry例子,但是没有很好的深入教程讨论将@XmlRegistry与@XmlElementDecl一起使用的概念,想知道它的概念是否在一般情况下没有多少探讨。 无论如何这里是我的问题,首先是一些我用来使用JAXB解组xml的示例类: 我正在尝试使用JAXB解组的主要类 – Employee.java package com.test.jaxb; import java.util.List; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlElementDecl; import javax.xml.bind.annotation.XmlRegistry; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.namespace.QName; import com.test.jaxb.dto.Address; @XmlRootElement public class Employee { private int id; private String name; private String email; private List addresses; public int getId() { return id; } public void setId(int id) { this.id = id; } […]

jaxb当xsi:nil = true如果存在任何子元素,它仍然显示

我有下面的xml输出,当父元素具有属性xsi时,我们如何隐藏子元素(endDate):nil = true即使子元素是nillable = true? // XML输出 //快照类 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = “”, propOrder = { “OffersElement”}) @XmlRootElement(name = “snapshots”) public class Snapshots { @XmlElement(name = “Offers”) private OffersElement OffersElement; public OffersElement getOffersElement() { return offersElement; } public void setOffersElement(OffersElement offersElement) { this.offersElement = offersElement; } } // OffersElement类 @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = “Offer”) public class OffersElement […]

无法理解JAXB Unmarshalling行为

参考我以前的post 。 我有以下代码从文件中读取XML。 logger.log(Level.INFO, “testSchemaChange”); JAXBContext jaxbContext = JAXBContext.newInstance(“com.store.web.ws.v1.model”); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); JAXBElement jeBookType = (JAXBElement) unmarshaller.unmarshal(new File (BOOK_XML)); BookType bookType = jeBookType.getValue(); logger.log(Level.INFO, “Book recieved: ” + bookType.getISBN()); 我正在使用Book作为我的根元素而不是BookList来播种XML。 只要我在JAXBContext.newInstance保留包的完整路径,此示例就可以正常工作。 不久,我改变了吗? JAXBContext jaxbContext = JAXBContext.newInstance(“com.store.web.ws.v1.model”); 至 JAXBContext jaxbContext = JAXBContext.newInstance(BookType.class); 我开始得到exceptionSEVERE: unexpected element (uri:””, local:”book”). Expected elements are (none) SEVERE: unexpected element (uri:””, […]

使用StaxEventItemWriter构建非平凡的XML文件

我需要使用这种结构将一些数据库表的内容转储到XML文件 value value value … … 每个表的未知记录的实际数量,因此我无法将单个表的所有数据存储在内存中并转储到XML。 我现在的工作定义为: RecordBean public class RecordBeanRowMapper implements RowMapper { final static RowMapper<Map> columnMapRowMapper = new ColumnMapRowMapper(); private String tableName; public void setTableName(String tableName) { this.tableName = tableName; } @Override public RecordBean mapRow(ResultSet rs, int rowNum) throws SQLException { final RecordBean b = new RecordBean(); b.setTableName(tableName); b.setColumnValues(Maps.transformValues(columnMapRowMapper.mapRow(rs, rowNum), new Function() […]

如何让JAXB2发出CamelCase绑定?

我正在使用jaxws-maven-plugin的wsimport目标从WSDL生成Java类。 开箱即用,这将从XML模式生成可怕的类和方法; 例如,来自名为MY_OBJECT的XML元素的名为MYOBJECT的类。 我发现我可以使用外部文件自定义JAXB2绑定 ; 这对于少数类和方法是可接受的,但是在这种情况下手动命名所有内容的开销是不合需要的。 一些搜索揭示了对XJC CamelCase Always插件的引用,但这似乎没有维护,大多数链接都是404。 不愿意放弃,我确实找到了一个似乎提供此function的camelcase-always Maven工件,但我不知道如何配置它以便jaxws-maven-plugin使用它。 如何在不指定全部手动的情况下获取CamelCase绑定?