草庐IT

JAXB_FORMATTED_OUTPUT

全部标签

java - 如何使用 JAXB 从 xsd 生成实现 Serializable 接口(interface)的 Java 类?

我想在一个现有的Spring项目中引入缓存,该项目使用JAXB来公开WebServices。缓存将在端点级别完成。为了做到这一点,使用JAXB从XSD生成的类需要实现Serializable接口(interface)并覆盖Object的toString()方法。如何使用XSD指示xjc工具生成具有所需属性的源代码? 最佳答案 可序列化在自定义绑定(bind)文件中使用xjc:serializable将java.io.Serializable接口(interface)与serialVersionUID一起添加到您的类中:toStrin

java - 带有空字段的 JAXB 编码

这是一个非常简单的请求,但我只是没有找到方法。我基本上是在尝试在JAXB中设置一个角色,即每当遇到空字段时,而不是在输出中忽略它,而是将其设置为空值。所以对于类(class):@XMLRootElementClassFoo{Integernum;Datedate;….}如果日期字段为空,则将其编码到XML文件中时,我的输出中没有该元素。我想要做的是在输出中包含所有字段;如果它们为空,请将它们替换为-比如说一个空白。所以输出应该是:123谢谢,贾尔佩什。 最佳答案 谢谢大家的回答。ChrisDail-我尝试了你的方法,但它并没有真正达

java - 如何在不编码的情况下验证 JAXB 2.0 中的模式?

我需要在编码到XML文件之前验证我的JAXB对象。在JAXB2.0之前,可以使用javax.xml.bind.Validator。但这已被弃用,所以我试图找出正确的方法。我熟悉在编码(marshal)时间进行验证,但就我而言,我只想知道它是否有效。我想我可以编码到一个临时文件或内存并将其丢弃,但想知道是否有更优雅的解决方案。 最佳答案 首先,javax.xml.bind.Validator已被弃用,取而代之的是javax.xml.validation.Schema(javadoc)。这个想法是您通过javax.xml.validat

java - 为什么在 Apache Felix 中运行时 JAXB 找不到我的 jaxb.in​​dex?

它就在那里,在它应该被索引的包中。不过,当我打电话时JAXBContextjc=JAXBContext.newInstance("my.package.name");我收到一个JAXBException说明"my.package.name"doesntcontainObjectFactory.classorjaxb.index虽然它确实包含两者。什么有效,但不是我想要的,是JAXBContextjc=JAXBContext.newInstance(my.package.name.SomeClass.class);这个来自其他人的问题出现在相当多的邮件列表和论坛上,但似乎没有得到答案。我

java - JAXB :Need Namespace Prefix to all the elements

我正在使用SpringWebServiceTemplate进行Web服务调用,该调用使用JAXB生成请求XML。我的要求需要所有元素(包括根)在SOAP请求中都有一个命名空间前缀(只有一个命名空间)。例如:abcabc但我得到了abcabcxsd:从XSD生成的Java类@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="Login",propOrder={"username","password"})@XmlRootElementpublicclassLogin{@XmlElement(required=true)protected

java - JAXB - 属性 "Value"已定义。使用 <jaxb :property> to resolve this conflict

使用JAXB生成XML绑定(bind)类。架构基于一组旧版XML文件,并包含以下代码段:'Value'属性与xs:string的'value'属性冲突,代码生成失败,报错:com.sun.istack.SAXParseException2:Property"Value"isalreadydefined.Use<jaxb:property>toresolvethisconflict. 最佳答案 答案在于利用JAXB绑定(bind)(site-template.xjb):XPath表达式定位节点并对其进行重命名,从而避免命名冲突。

java - jaxb 解码时间戳

我无法让JAXB在ResteasyJAX-RS服务器应用程序中解码时间戳。我的类(class)是这样的:@XmlAccessorType(XmlAccessType.NONE)@XmlRootElement(name="foo")publicfinalclassFoo{//Otherfieldsomitted@XmlElement(name="timestamp",required=true)protectedDatetimestamp;publicFoo(){}publicDategetTimestamp(){returntimestamp;}publicStringgetTimes

java - JAXB 和属性排序

我希望我的Java类的序列化XML输出遵守Java类中属性的顺序。JAXB似乎是按字母顺序排列的。我可以通过将@XmlType与propOrder一起使用并指定所有属性来覆盖它,但我有一个包含许多属性的类,这些属性尚未最终确定。我读到指定一个空的propOrder会这样做,但它不会。我的示例类:packagetest;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importjavax.xml.bind.annotation.XmlType;@XmlRo

java - 使用 JAXB 的具有属性和内容的 XML 元素

如何使用JAXB生成以下XML?sportdescription 最佳答案 用@XmlAttribute注释类型和性别属性,用@XmlValue注释描述属性:packageorg.example.sport;importjavax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD)@XmlRootElementpublicclassSport{@XmlAttributeprotectedStringtype;@XmlAttributeprotectedStringg

java - Spring 4 REST 程序使用 JAXB 返回 XML 列表

我正在尝试使用Spring4实现REST服务。REST方法将返回XML格式的客户对象列表。该应用程序是注释驱动的。对于XML,我使用了JAXB注释。据我了解,Spring在找到JAXB注释时会立即使用“Jaxb2RootElementHttpMessageConverter”。客户POJO:@XmlRootElement(name="customer")publicclassCustomer{privateintid;privateStringname;privateListfavBookList;@XmlAttributepublicintgetId(){returnid;}publ