草庐IT

java - 忽略 JAXB 中的根元素

我正在尝试使用JAXB解析xml文件。我的问题是我需要跳过根节点,如果我从xml文件中删除它,我会得到我需要的东西,否则-我会得到一个空对象。我将给出一个简化的xml和我的代码(它的行为方式相同):XML:-->George3Michael5Jeff1Todd7Jessica5办公类:importjavax.xml.bind.annotation.*;importjava.util.Vector;@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassOffice{@XmlElementWrapper(name="E

java - JAXB:如何获取包装类型的值(value)?

@XmlRootElement(name="toplist")classtoplist{privateStringdescription;privateListitems=newArrayList();@XmlElement(name="description")publicStringgetDescription(){...}publicStringsetDescription(){...}@XmlElement(name="item")@XmlElementWrapper(name="items")publicListgetToplistEntries(){...}}classIt

java - JAXB 无法识别类型继承

我有一个JAXB生成的类,带有一个抽象类型COBJECT的集合。COBJECT有多个后代,这些后代也有抽象的后代。类层次结构的片段如下:COBJECT(abstract)||---CDEFINEDOBJECT||--CDOMAINTYPE(abstract)||---CCODEPHRASE当我将CCODEPHRASE的对象添加到类型为COBJECT的集合时,例如protectedListchildren;JAXB尝试创建抽象类型COBJECT,但失败了。我尝试添加@XmlElementRefs({@XmlElementRef(type=ARCHETYPEINTERNALREF.clas

用于解码 JAXB 对象的 Java 泛型

我有以下代码将xml解码为Java对象。我想看看是否可以通过使用Java泛型而不是使用对象类型作为返回值来增强此代码。protectedstaticObjectunmarshall(Stringxml,Classclazz)throwsJAXBException{JAXBContextjc=JAXBContext.newInstance(clazz);Unmarshallerunmarshaller=jc.createUnmarshaller();Objectobj=unmarshaller.unmarshal(newStringReader(xml));returnobj;}任何建议

java - JAXB 类型问题

我有一个看起来像这样的xsd(片段):出于某种原因,这是生成的Java代码:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="IDType",propOrder={"fileID"})publicclassPatientIDType{@XmlElementRefs({@XmlElementRef(name="FileED",namespace="http://www.surescripts.com/messaging",type=JAXBElement.class),@XmlElementRef(name="IDNumber1",n

java - JAXB 解码错误 : Expected elements are <{ } Root>

我正在重用其他地方生成的现有对象来解码作为字符串类型传入的XML数据。对象:/*3:*/importjava.util.ArrayList;/*4:*/importjava.util.List;/*5:*/importjavax.xml.bind.annotation.XmlAccessType;/*6:*/importjavax.xml.bind.annotation.XmlAccessorType;/*7:*/importjavax.xml.bind.annotation.XmlElement;/*8:*/importjavax.xml.bind.annotation.XmlRoo

java - 具有 2 个根元素的 XSD(一次 1 个)

所以这是一个复杂/迟钝的情况。我正在写一个XSD并且碰巧有一个要求我需要2个根元素(在任何给定时间1个)然后在任何给定时间,这些元素中的任何一个都将用作根元素,因此XML看起来像XYZ或XYZ这两个XML都将从2个不同的URL发送回用户,即列表将从localhost/books.xml?author=XYZ发送,单本书将从发送>localhost/book_name.xml我怎样才能用一个xml实现这一点?我尝试将书籍定义放在XSD中,但JAXB2.1没有生成任何Book类。有什么我想念的吗?EDIT1:已生成BookType,但BookType没有任何根元素。

java - 在格式化 JAXB 输出方面需要帮助

我有一些对象,比方说两个,A和B。这些对象来自同一个类。我需要使用JAXB编码这些对象,输出XML应采用以下形式:anidanidanidvaluevalueanidvaluevalue如何在JAXB中生成这种格式?感谢您的帮助。更新:更具体地说,假设我们有这样的人类类:@XmlRootElementpublicclassHuman{privateStringname;privateintage;privateIntegernationalID;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.na

java - 使用 JAXB 解码 xml 项的嵌套列表

我有这样的xml构造,我需要使用JAXB将其转换为java对象:...我不应该将此构造转换为具有嵌套项目列表的元素,而是转换为多个元素,每个元素一个。这是Element类的示例:classElement{Integertype;Stringproperty1;Stringproperty2;IntegeritemId;StringitemName;}我想在解码后得到它们的列表。所有列表元素的类型、属性1和属性2值应该相同。有没有可能使用JAXB解决这个问题? 最佳答案 主.javaimportjava.io.StringReader

xml - 使用 JAXB 将空字符串解码为 null 的正确方法

我必须处理大型XML文档,这些文档通常会错误地处理缺失的属性数据。不是仅仅省略带有缺失数据的属性,而是用空字符串值指定该属性。这会在解码时导致问题,因为空字符串是一个值。例如,应该是什么是代替我正在努力想出一种“正确”的方式来优雅地处理这种格式不良的XML。目标是当属性的值为空字符串时将属性视为被省略,而空字符串永远不是该属性的有效值(例如整数)。我目前正在使用XMLAdapters将这些空字符串转换为null(如建议的inthispost),但这似乎是错误的解决方案。我正在处理的文档中的许多属性已经在使用从其他代码共享的类型适配器,而且似乎没有办法为一个属性指定多个XMLAdapte