Tag: jaxb

列表的自动XmlRootElement包装器

我有一个简单的课程,我需要编组。 该类声明为: @XmlRootElement public class XMLUser… 这是我得到的: myLogin myPass 现在我希望在一个文件中有多个用户,但不需要自己创建包装类,有点像使用@XmlElementWrapper而是用于类而不是字段。 我不知道这是否可行。 这样我就可以编组一个List(或jaxb提供的一些对象),我最终会得到一个像这样的xml(自动生成的标签): login1 pass2 login2 pass2 任何帮助表示赞赏。

从xsd:choice元素自定义JAXB 2.0生成的方法名称

我试图弄清楚如何自定义由JAXB 2.1.12生成的方法名称。 我有一个史诗般的XML模式(不在我的控制之下),它包含一个包含一个包含大约200个其他元素的choice元素的组。 因此,当我生成JAXB类时,创建的get()方法相当无用 – 它最终会像“getElement1AndElement2AndElement3()”。 我想将get()方法重命名为更好的东西,但我无法弄明白该怎么做。 我在教程中知道它描述了通过在元素上使用来定制类名。 我发现了一篇非常古老的文章( http://onjava.com/pub/a/onjava/2003/12/10/jaxb.html?page=2 ),它描述了将“name”属性附加到元素上,这似乎是是我需要做的。 不幸的是,我认为该文章引用的是1.x JAXB版本,并且name属性在JAXB 2.0的选择元素中不再有效。 那么有谁知道如何自定义生成的方法名称? 如果示例或任何其他信息有用,或者我想要做的事情是不可能的,请告诉我。 谢谢!

使用JAXB和XMLStreamWriter编写空标记

我正在使用标准的JAXB实现。 这是我的带注释的类(是一组类的一部分) @XmlType() @XmlAccessorType(FIELD) class MyClass { @XmlValue protected final String value = null; @XmlAttribute protected String attr; …get/set for attr… } 我正在编写root对象 JaxbContext ctx = JAXBContext.newInstance(“path.to.package”); XMLStreamWriter writer = new IndentingXMLStreamWriter(file); //stax-utils writer ctx.marshal(rootObject, writer); 结果是但我需要空标记为 。 我尝试了编写器和目标流的一些不同组合(并读取了几十个SO问题)(不仅是文件,还有StringWriter和其他人,但我需要将对象保存到文件中)。 任何建议或解决方案?

使用“xs:any”获取“编译器无法遵守此javaType自定义”

我有以下xsd: 以及以下绑定: 但是当我运行xjc时…… xjc -p leif -b bindings.xml format.xsd 我收到以下错误: parsing a schema… [ERROR] compiler was unable to honor this javaType customization. It is attached to a wrong place, or its inconsistent with other bindings. line 9 of file:/C:/Users/leif/workspace/doughan/src/main/resources/bindings.xml [ERROR] (the above customization is attached to the following location in the schema) line 7 of […]

JAXB marshaller no-arg默认构造函数

我想从java库编组java对象。 当使用JAXB marschaller编组java对象时,我遇到了一个问题: A类没有no-arg默认构造函数 我使用Java Decomplier来检查类的实现,它是这样的: public final class AImpl implements A 这意味着我无法扩展类AImpl 。 那么如何使用no-arg默认构造函数修复问题呢?

JAXB,如何在解组时validationnillable和required字段

我对JAXB有一个小问题,但不幸的是我无法找到答案。 我有一个Customer类,有2个字段名称和城市 ,映射是使用注释完成的,并且这两个字段都标记为必需而不是nillable。 @XmlRootElement(name = “customer”) public class Customer { enum City { PARIS, LONDON, WARSAW } @XmlElement(name = “name”, required = true, nillable = false) public String name; @XmlElement(name = “city”, required = true, nillable = false) public City city; @Override public String toString(){ return String.format(“Name %s, city %s”, name, city); } } 但是,当我提交这样的XML文件时: […]

如何让maven在JDK中使用不同的JAXB库

我正在使用java 1.6.0_14,其中包含注释javax.xml.bind.annotation.XmlElement的实现。 但是JDK中的那个仅适用于Method和Field。 我发现jaxb-api.jar版本2.2.3也允许这个参数,所以我想使用这个版本。 问题是,我无法弄清楚如何让maven使用这个优先于JDK中的那个,这样当我编写代码时,它不会抱怨注释被用在一个无效的位置。 有什么建议么?

在javax.xml.bind中创建一个通用集合

在我编写的REST服务器中,我有几个集合类来包装要从我的服务返回的单个项目: @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = “person_collection”) public final class PersonCollection { @XmlElement(name = “person”) protected final List collection = new ArrayList(); public List getCollection() { return collection; } } 我想重构这些以使用generics,因此样板代码可以在超类中实现: public abstract class AbstractCollection { protected final List collection = new ArrayList(); public List getCollection() { return collection; } } @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = “person_collection”) public final […]

JAXB使用Woodstox解析器来提高性能?

是否可以切换本机解析器,我认为它基于Javareflection。 我们遇到了一些性能问题,并想知道我们是否可以切换实现。 您的建议非常感谢。 附加信息:这是inheritance的代码,我们需要修复Web服务中的性能问题。 我正在寻找性能提升而无需更改代码。 现有代码使用JAXB来编组和解组通过CXF(wsdl到java)生成的java对象。 我的目标是将实现切换到sTax,然后使用Woodstox库。

当数据包含不可显示的字符时,JAXB输出无效的XML

我正在使用JAXB 2.2.5从JAXB模型输出Xml,数据是从数据库填充的,有时数据库包含不可显示的字符,它不应该像 0x1a 如果确实如此,那么JAXB只是按原样输出这个字符来输出无效的Xml,它不应该逃脱它或其他东西吗? 更新 我想知道是否有任何实现可以解决这个问题,也许Eclipselink MOXy呢? 编辑 我尝试了修复非法char问题的解决方法,但它以不合需要的方式更改输出。 fred 至 fred 即已成为 ,这是不可取的,我不知道为什么会这样做。