草庐IT

java - JAXB @XmlElements,不同类型但名称相同?

我有一个Animal类和一个名为AnimalExtension的Animal扩展。publicclassAnimalpublicclassAnimalExtensionextendsAnimal这两个类之间的唯一区别是AnimalExtension有另一个名为animalId的实例变量。Animal没有这个实例变量。我也有自己的数据类型,我想将其编码和取消编码为XML。这种数据类型称为AnimalList。在AnimalList中,有一个Animals列表作为实例变量。@XmlType(name="AnimalList")publicclassAnimalList{privateLis

java - JAXB 解码一个集合

我有一个XML文档:WARN2011-03-1715:25Hereisthetextfromtheapplication(classname)TBReceptionWARN2011-03-1715:25Hereisthetextfromtheapplication(classname)TBReception和两个POJO:packageorg.jwes.jaxb.jax;importjava.util.ArrayList;importjava.util.List;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bin

Java Web 服务/JAXB - 抽象父类(super class)

我有一个包含带有抽象父类(superclass)的JAXB注释类的包。我想在Web服务接口(interface)中使用这个父类(superclass),所以我可以将任何子类作为参数传递。当我这样做时,抛出异常:javax.xml.ws.WebServiceException:javax.xml.bind.UnmarshalException-withlinkedexception:[javax.xml.bind.UnmarshalException:Unabletocreateaninstanceofxxx.yyy.ZZZ-withlinkedexception:[java.lang.

java - JAXB @XmlAttribute @XmlValue 实例

我是JAXB的新手,在从XML到Java类实例的转换方面遇到了麻烦。我有以下XML:clientGreeting1000YourConnectionwithAPIServerisSuccessful2009-02-1606:22:21我开发了以下Java代码:/***Copyright2013.ABNSoftware.AllRightsreserved.*Author......Andre*Created.....14.03.2013**/packagenet.regmaster.onlinenic.model;importjavax.xml.bind.annotation.XmlAt

java - JAXB maven 插件不生成类

我正在尝试从XSD生成java文件,但未生成以下代码。如果我取消注释outputDirectory,它会起作用,但首先删除该文件夹。添加clearOutputDir=false也不会生成任何内容。org.codehaus.mojojaxb2-maven-pluginxjcuk.co.infogen.camel.message${basedir}/src/main/resources/xsd${basedir}/src/main/javafalse-->我收到消息:[INFO]---jaxb2-maven-plugin:2.2:xjc(default)@service-business-

java - JAXB:如何注释类以便它们属于不同的 namespace ?

我想要有JAXB-annotated类,这将是编码/解码到不同的XML命名空间。我需要的是这样的:如何实现?可以通过编程方式完成吗?(不需要JAXB的.xjb绑定(bind)文件?) 最佳答案 @XmlRootElement(name="someRootElement",namespace="urn:my:ns1")classTest{@XmlElement(name="someElement",namespace="urn:my:ns1")Stringelem1="One";@XmlElement(name="someElemen

java - 使用 JAXB 解码时将空元素转换为 null

使用以下JAXB注释定义一个类:classCourse{@XmlElement(name="book")ListrequiredBooks=newArrayList();解码包含此内容的XML文档时...我最终将一本书添加到列表中,并将其所有属性设置为null。我不控制XML输入。如何防止添加这本空书?我尝试在set..()或add..()方法中进行拦截,但事实证明JAXB在处理集合时会绕过setter。有什么建议吗? 最佳答案 这是一个确实有效的解决方案。再一次,优雅被抛在了后面。JAXB定义了两个回调:beforeUnmarsh

java - 如何知道使用了什么 JAXB 实现?

我正在使用MOXy作为JAXB实现,但我想以某种方式在某些管理屏幕上(动态地)显示实现名称(例如Moxy)和版本号。我如何从JAXB检索该信息?干杯 最佳答案 您可以执行类似以下的操作来确定正在使用的JAXBimpl:importjavax.xml.bind.JAXBContext;publicclassDemo{privatestaticfinalStringMOXY_JAXB_CONTEXT="org.eclipse.persistence.jaxb.JAXBContext";privatestaticfinalStringME

java - 如何防止 JAXB 在编码时绑定(bind) @XmlRootElement 的父类(super class)方法?

我有一个注释为@XmlRootElement和@XmlAccessorType(XmlAccessType.NONE)的类。我遇到的问题是父类(superclass)的方法被绑定(bind),而我不希望它们被绑定(bind),并且无法更新类。我希望有一个注释可以放在根元素类上以防止这种情况发生。例子:@XmlRootElement@XmlAccessorType(XmlAccessType.NONE)publicclassPersonextendsNamedObject{@XmlElementpublicStringgetId(){...}}我希望只有在Person上注释为@XmlEl

java - 在对象图中检测到循环。这将导致无限深的 XML

我有两个DTO对象,比如A和B,它们具有getter和setter,用于从数据库中获取数据。问题是当我调用A时,B被调用并且B再次将自身指向A并创建一个循环。我不能忽略/隐藏创建循环的方法。我需要获取A和B的全部数据。有什么办法可以实现吗?请帮忙这是导致问题的我的代码。这是调用环境DTO的应用程序DTO@OneToMany(mappedBy="application",fetch=FetchType.LAZY,cascade=CascadeType.ALL)publicSetgetEnvironment(){returnenvironment;}publicvoidsetEnviron