我在Intellij-IDEA(org.codehaus.mojo:jaxb2-maven-plugin:1.6)中使用JAXBMaven插件为对象生成给定的xsd文件。xsd相当大,包含很多类型,其中大部分是可选的。现在,当我将XML解码为对象时,缺少的元素表示为空对象。例如,如果我尝试执行rootObject.getAccount().getAccountName()但Account元素从XML中完全丢失,我会得到一个NullPointerException我想配置JAXB以解码完整的对象树以包括那些代表缺失元素的对象。这可能吗? 最佳答案
我已经创建了一个JAXB对象,我正在尝试将xml字符串解码到其中。我面临的问题是,当我将namespace属性放在@XmlRootElement和我发送的xml文档中时,JAXB正在创建对象,但它是空的。如果我删除它工作的namespace。所以这就是我的意思我的JAXB对象:@XmlRootElement(name="incident",namespace="http://www.ba.com/schema/BAserviceDeskAPI/incident")@XmlAccessorType(XmlAccessType.FIELD)publicclassIncident{@XmlE
我正在制作这个示例GUI,它只是将计算机部件从一侧移动到另一侧,并且能够将列表(以xml格式)加载和保存到桌面。除了重新加载已保存的xml文件外,一切正常。我认为这与Save.java中的注释有关。话虽如此,我不确定需要什么,或者这是否是问题所在。任何帮助将不胜感激。Window.javaimportjava.awt.EventQueue;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.BorderLayout;importjavax.swing.JButton;importjava.awt.event.
我正在尝试解码XML文档:以及XSD架构(由某些工具生成):这些是重要的模型类:map.java@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="",propOrder={"rooms"})@XmlRootElement(name="map")publicclassMap{/***Listofroomscontainedinthismap.*/@XmlElement(required=true)protectedListrooms;/***Getsthevalueoftheroomsproperty.***Thisaccessorm
我有一个网络服务,通过编写它的WSDL和底层XSD来定义,并且java服务器代码类/java绑定(bind)是使用JAXB/xjc生成的。一切看起来都很好服务正在正常运行......但是对于每个请求(在查看日志输出时收到后看起来格式正确)嵌套元素在通过我的java代码访问时似乎总是空的。有人能弄清楚为什么customerId.getCustomer()总是返回null吗?我的XSD(部分):生成的类CustomerId:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="customer_id",propOrder={"custome
我有一个Web服务,它接收XML文件并进行解码以将XML文件转换为对象。问题是我的Web服务可以接收不同的XML结构并且必须进行正确的解码。所以我收到了这种XML文件:1234...请注意,XMLelements是一个示例标记名称,每个XML文件都可以有不同的名称。所以,我认为我的网络服务工作流程应该是这样的:它接收XML文件。它检查用户ID。如果用户ID==1234UserAuserA=unmarshalling(XMLFile)否则,如果用户ID==5678UserBuserB=unmarshalling(XMLFile)其他UserCuserC=unmarshalling(XML
简而言之:我想将XML文件解码为抽象元素列表。我将提供一些简短的示例:XML:Java:importjava.io.File;importjava.util.List;importjavax.xml.bind.*;importjavax.xml.bind.annotation.*;@XmlTransient@XmlSeeAlso({A.class,B.class,C.class,D.class,E.class,Set.class})classAbs{privateStringx;publicAbs(){x=null;}publicStringgetX(){returnx;}public
我在处理一些.xml时遇到了一个以前从未见过的异常。这是损坏的代码:publicclassUnmarshallProva{publicstaticvoidmain(String[]args){JAXBContextjaxbCx;UnmarshallermavByXml;FileReaderfr;XMLInputFactoryxif;XMLEventReaderxer;intmavv=0;try{jaxbCx=JAXBContext.newInstance(MavType.class);mavByXml=jaxbCx.createUnmarshaller();fr=newFileRead
我需要解析archetype-catalog.xml的内容文件到Java对象结构。为此,我想我会使用旧的JAXB。所以,我寻找了xsdxml文件的定义并从中生成jaxb类:原型(prototype)目录.javaimportjava.util.ArrayList;importjava.util.List;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlType;/***0.0.0
我从服务器接收XML,其架构几乎将每个元素都指定为:我试图找到一种干净的方法,将我收到的每个标记为xsi:nil="true"的元素在解码为JAXB对象时转换为null。所以像这样:应该导致我的JAXB对象具有一个值为null的myIntElementName属性,而不是一个具有nil属性设置为true的JAXBElement对象(或任何沿着那些线)。我无法控制向我发送使用nillable属性的XML的系统,因此我需要在收到它时在我这边进行转换。 最佳答案 @XmlElement(nillable=true)您只需在您的字段/属性上