草庐IT

jaxb-episode

全部标签

java - Jaxb 可以编码没有根元素的子元素吗?

我不确定jaxb是否可以解决以下问题,但我还是会问。在某个项目中,我们使用具有定义模式的jaxb来创建xml文件的下一个结构。moreinnerchildrenheremoreinnerchildrenhere我们还使用jaxb的自动类生成来创建类:aaa和bbb,其中aaa是作为@XmlRootElement生成的。我们现在想在新项目中使用相同的架构,这也将与以前的项目兼容。我想做的是使用相同的jaxb生成的类,而不对模式执行任何更改,以便仅将单个bbb对象编码到xml中。JAXBContextjc=JAXBContext.newInstance("generated");Marsh

java - 如何克隆 JAXB 对象

我有一些需要克隆的jaxb对象(由jaxb从xsd生成的代码实例化)。Jaxb类似乎没有提供用于轻松执行此操作的接口(interface)。我不能手动编辑类也不能扩展它——所以我需要创建一个辅助/实用方法来做到这一点。什么是最好的方法? 最佳答案 考虑到JAXB的用途,我认为最简单的方法是将您的对象编码为XML,然后再将其解码。更多关于Google的讨论.JAXB常见问题suggestsbeanlib.还有一些discussion(以及下载链接)在jaxb2-commons下的Cloneable插件,尽管我在项目页面上找不到任何引用

java - 自定义解决JAXB "name collision in the ObjectFactory class"问题

在thesexsdfiles上执行“xjc”命令返回TwodeclarationscauseacollisionintheObjectFactoryclass因为有2个元素名为“Scale”和“scale”。根据thispage,可以通过使用自定义xsd文件来解决此问题。.你知道怎么做吗?你有绑定(bind)文件的例子吗? 最佳答案 您可以使用绑定(bind)标签。将schemaLocation属性设置为特定xsd的位置。子标记、schemaBindings和包,然后为该xsd定义一个新的包namespace。下面是我刚才使用xjc

java - 加入 SAAJ 和 JAXB

我正在创建一个没有轴的网络服务。我正在使用SAAJ、JAXB和Servlet。我可以使用JAXB正确编码和解码一个类。但是我怎样才能将SAAJ和JAXB一起用于SOAP通信。我想用SAAJ将JAXB转换后的xml文本放入SOAPBODY标签。我怎样才能做到这一点?我阅读了Oracle站点上的SAAJ文档,但无法理解。他们讲的很复杂。 最佳答案 您可以执行以下操作:演示SOAPBody实现了org.w3c.dom.Node,因此您可以让JAXB实现对其进行编码:importjavax.xml.bind.*;importjavax.xm

java - 对 JAXB 对象的 XPath 1.0 查询?

JAXB非常棒,可以真正节省时间,但遍历生成的对象树仍然非常耗时;几乎和直接使用DOM一样糟糕。有没有一种方法可以让我在JAXBElement上执行XPath1.0查询,而不必每次都费力地将文档编码到DOM模型或从DOM模型编码? 最佳答案 不直接,不。但是,您可以使用ApacheCommonsJxpath,它允许您跨任意对象图运行XPath查询,而不仅仅是JAXB绑定(bind)的对象图。它可以在容忍空值的“宽松”模式下运行。替换那些容易出现NPE的图形导航非常方便。 关于java-对

java - 使用 Mojo Jaxb2 maven 插件创建 Java 类时生成 hashCode() 和 equals()

我正在处理的代码使用org.codehaus.mojo中的jaxb2-maven-plugin从XSD模式生成Java类。我正在寻找一种方法来为这些类自动实现equals()和hashCode()方法,但似乎没有办法。我知道还有其他JAXB2Maven插件可以做到这一点(例如http://confluence.highsource.org/display/J2B/Home),但我想知道你们之前是否遇到过这个问题,是否有办法修复它。我正在使用xjc目标生成类。 最佳答案 你提到的JAXB2Basics不是maven-jaxb2-plu

java - 解码 JAXB 的 WebLogic 12c 迁移问题

我们有一个当前在WebLogic10.3.5.0上运行的应用程序,我们正在迁移到WL12.1.2.0.0。我们遇到了对另一个应用程序的Un-marshallingWS调用的问题。我们熟悉升级时的Marshalling错误,但似乎这个问题并不相同。需要注意的是,它在相同WL版本的DEV/Test服务器上运行良好,但在本地部署时会返回以下错误(一定是env/configuration设置不匹配?):JAXBunmarshallingexception:null;nestedexceptionisjavax.xml.bind.UnmarshalException-withlinkedexce

java - JAXB:使用缩进编码输出 XML 在第一行创建空换行符

当我用这个属性编码XML时marshal.setProperty(Marshaller.JAXB_FRAGMENT,Boolean.TRUE);marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);它会在最顶部生成一个空换行符//Generateemptylinebreakherepdfnamezipnamereceiveddatetime我认为原因是因为marshal.setProperty(Marshaller.JAXB_FRAGMENT,Boolean.TRUE);,删除,在输出xml的开头留一个换行

java - 无论如何将构造函数参数传递给 JAXB 适配器?

我在我编写的Web服务中使用Spring3IOC和JAXB/JAX-WS。我现在遇到一个小问题,数据必须在返回给消费者之前四舍五入,因为它们无法处理值的完整精度。为了尽量减少对WS设计和计算的影响,我选择使用JaxbXmlAdapter在编码响应时舍入值。一切正常。我现在的问题是我想让它变得灵活。即:在某些情况下,我需要舍入到小数点后2位,在某些情况下是4位,等等。现在,我必须创建一个TwoDecimalAdapter和一个FourDecimalAdapter并在我的模型定义中必要时使用适当的。这意味着代码重复。有没有办法创建一个通用的舍入适配器,并向它传递一个参数?例如,而不是:@j

java - JAXB,CXF : There's no ObjectFactory with an @XmlElementDecl for the element . ..与

我正在使用JAXB和CXF创建WSDL优先网络服务。我不拥有WSDL,因此无法对其进行更改。我正在使用ftp://ftp.ihe.net/TF_Implementation_Material/ITI/wsdl/PIXManager.wsdl作为我的WSDL。我使用CXF2.3.0生成Java类。Java类生成很顺利,但是当我试图在Web应用程序中运行它时,出现错误com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:17countsofIllegalAnnotationExceptions17个计数的格式There'snoObj