JAXB_FORMATTED_OUTPUT
全部标签 我正在尝试为Web服务域创建一个jaxb类层次结构。我发现重写父类(superclass)中的getter方法的子类可以更改JAXB输出的元素名称,但父类(superclass)的元素名称也被写入输出,这很不方便。我想知道是否有一种方法可以抑制父类(superclass)中的setter/getter。代码:@XmlTypeclassSuperClass{@XmlElement(name="Name")publicStringgetName(){}}@XmlTypeclassSubClassextendsSuperClass{@Override@XmlElement(name="Coo
我必须生成一个xml元素,该元素的值可以是任何“原始类型”(xsd:string、xsd:boolean等)。示例:StringValue2011-10-21...所以,我尝试了两种实现方式:publicclassField{@XmlAttributeprivateStringname;@XmlValueObjectvalue;}和...publicclassField{@XmlAttributeprivateStringname;@XmlValueTvalue;}我正在测试这个:Marshallermarshaller=JAXBContext.newInstance(Field.cl
jaxb2-maven-plugin的schemagen目标在Java9上失败。错误是:[Exception]:java.lang.ClassNotFoundException[Message]:com.sun.istack.SAXParseException2jaxb2插件版本为2.3.1maven版本为3.5.0。maven编译插件版本为3.7.0。所有插件/依赖项都是最新的。我没有任何module-info.java文件。我构建的项目是遗留的Java8项目,其中JDK已从1.8u144升级到版本9。希望目前唯一失败的插件是jaxb2-maven-plugin。其他一切都很好,无论
我写了一个bean(BaseBeanEx)扩展了一个JAXB注释的bean(BaseBean)。BaseBean位于数据结构某处的列表中,无法更改。软件会在需要时显式转换为BaseBeanEx。我还编写了一个ObjectFactory来创建BaseBeanEx而不是BaseBean。这一切都很好,但现在我向BaseBeanEx添加了一个afterUnmarshal方法,它永远不会被调用。这是一个错误还是符合规范?如果以后是这种情况,是否有一些优雅的解决方法?我正在使用默认的JAXB引擎。 最佳答案 注意:我是EclipseLinkJ
我正在尝试将XML消息解码为Java对象。我大部分时间都在使用它,但有一个问题让我陷入困境。我有一个看起来像这样的架构:EdToronto2013-05-0612:12MARKHAM2013-05-0705:12MARKHAM2013-05-0815:12MARKHAM现在,问题是JAXBObjectFactory只保存最后一个事件。如果有一个元素包装事件(),那么我就会知道如何使用XML元素包装器来处理它。但是由于没有wrapper,我不确定该怎么做。有人有什么想法吗?我猜ObjectFactory正在获取所有事件,但不断用最新事件覆盖旧事件。需要有一些方法来告诉它保存每个单独的事件
我有一个FIXML格式的小型XML文档。我正在使用jaxb解码它们。问题过程完成且没有错误,但创建的对象完全为空。每个字段都是空的。列表字段(如数量)中包含正确数量的对象。但是那些对象的字段也是空的。设置我已经从here下载了FIXML模式我用xjc和maven插件创建了类。它们都在包org.fixprotocol.fixml_5_0_sp2中。我在文件中有示例xmlFIXML.XML然后我使用自定义事件处理程序调用解码器,该处理程序只在解析错误时抛出异常。解析完成,所以我知道没有生成错误。我还按照建议处理namespacehere//sortoutthefileStringxmlFi
假设我有以下XML...这是我的代码:finalJAXBContextcontext=JAXBContext.newInstance(Names.class);finalUnmarshallerum=context.createUnmarshaller();finalInputStreamin=newFileInputStream(file);finalReaderreader=newInputStreamReader(in,Charset.forName("UTF-8"));finalNamesnamesList=(Names)um.unmarshal(reader);...现在我找
比如说,我有两个类:@XmlRootElementclassA{@XmlElementStringpropertyOfA;@XmlElementBb;}classB{@XmlElementStringpropertyOfB;}JAXB返回以相应方式格式化的XML:valueAvalueB我的问题是如何在XML中展平层次结构?所以我有:valueAvalueB这可以用注释来完成吗?目前我正在考虑为A创建一种包装器类,它将按照我希望在XML中看到它们的方式构建字段。有没有更好的办法? 最佳答案 注意:我是EclipseLinkJAXB(
JAXB同时映射xsd:base64Binary和xsd:hexBinary类型为byte[].鉴于我有一个架构/DOM元素代表这些类型中的每一个,例如:ABCD对于xsd:hexBinary和YTM0NZomIzI2OTsmIzM0NTueYQ==对于xsd:base64Binary,目前尚不清楚JAXB2.1如何处理它。JAXB.unmarshal(newDOMSource(node),byte[].class)不喜欢有效载荷。以下也没有:JAXBContextctx=JAXBContext.newInstance(byte[].class);ctx.createUnmarshal
JAXB运行良好,直到我需要执行一些我无法修改其源代码的序列化bean之类的操作。如果bean没有默认构造函数,或者如果它引用了我想标记为transient的对象,那么我将不得不编写一个单独的bean,我可以对其进行注释,然后手动从另一个bean复制信息。例如,我想序列化异常对象,但发现唯一的方法是使用需要使用com.sun.*类的hack。那么,还有哪些选择呢?下一个最流行的xml序列化api是什么?能够做这样的事情会很好:在序列化时选择是否在结果中包含某些字段。(在运行序列化程序时将事物标记为transient)。通过使用引用或其他方式处理对象图中的循环,而不仅仅是死掉。也许注释一