草庐IT

maven-jaxb-plugin

全部标签

java - JAXB - 将动态生成的 namespace 移动到文档根目录

我有这个POJO,它封装了Atom条目的一个动态的、非嵌套的元素:publicclassSimpleElement{privateNamespacenamespace;privateStringtagName;privateStringvalue;privateCollectionattributes;/*getters/setters/...*/为了完整性,属性publicclassAttribute{privateStringname;privateStringvalue;privateNamespacenamespace;/*getters/setters/...*/和命名空间:

java - 迁移到 Java 8 后,Jaxb 无法解析 XML

我正在迁移到java8,在此过程中jaxb无法解析xml配置。虽然除了JDK什么都没有改变,但相同的代码和文件使用java7成功解析,但在java8上解析不正确。请注意,没有抛出异常,但数据没有出现在xml解码到的对象中。任何可能导致这种非常烦人的失败的想法。 最佳答案 我已经找到问题的原因了。我没有研究代码,但似乎JAXB或SAX解析器背后的代码已从java7更改为8,并且在java8中更不宽容。(这也可能是由于编译器/jvm本身的变化)解析是用注解完成的。它看起来像下面这样:@XmlRootElement(name="compo

java - settings.xml 中的 Maven 命令行参数

下午好我正在尝试找出是否有可能在Settings.xml中外包命令行参数。我不能使用MAVEN_OPTSEnv-Var和.mavenrc文件,但我需要每个项目中的设置。重要的是不要使用安装后未包含的插件(与存储库连接需要设置)。设置:-Djavax.net.ssl.trustStore=VALUE-Djavax.net.ssl.trustStorePassword=VALUE-Djavax.net.ssl.keyStore=VALUE-Djavax.net.ssl.keyStorePassword=VALUE-Djavax.net.ssl.keyStoreType=VALUE-Dmav

java - application.xml 不存在。 maven EAR 构建期间出错

我正在尝试构建一个包含两个war文件的ear项目。构建EAR时出现“application.xml不存在”错误。但我已将application.xml放在项目METAINF文件夹中。请在下面找到代码。并提出解决方案。下面是我的POM.XML4.0.0au.com.mercuryReplenishmentR40.0.1-SNAPSHOTearmaven-ear-plugin2.6src/main/application/META-INF/application.xmlfalseUTF-8lib/trueau.com.mercuryReplenishmentReplenishment.wa

java - 验证 JAXB,但不忽略空格

一些代码片段。执行jaxb解码的java代码。非常简单,从在线教程中复制出来。JAXBContextjc=JAXBContext.newInstance("xmlreadtest");Unmarshalleru=jc.createUnmarshaller();//settingupforvalidation.SchemaFactoryschemaFactory=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);StreamSourceschemaSource=newStreamSource(ReadXml.cla

xml - 如何在解码期间使用 JAXB XmlAdapter 处理 XML IDREF 的前向引用?

是否可以在解码过程中处理JAXBXmlAdapter中XMLIDREF元素的前向引用?例如,我有以下XMLcomplexType:其中guardian字段可以引用文档其他地方的另一个Person类型的元素。我目前在编码时使用XmlAdapter,以便第一次编码对象时,它通过包含编码,并且该对象的任何后续出现都通过引用编码。参见mine的上一个问题.但是,由于我的XML实例文档的创建方式,Person元素的第一次出现可能发生在IDREF出现之后。这是可能的吗?或者我需要以不同的方式处理这个问题吗?谢谢! 最佳答案 我对你的relate

java - JAXB 将多个对象编码到一个文件

我想将许多对象编码到一个xml文件中。这进展顺利,除了我的编码器坚持添加额外的在每个对象之前。将多个对象编码到同一个文件中的首选方法是什么?如果没有别的,摆脱这些无关的xml声明的最佳方法是什么?我当前的代码:JAXBContextjc=JAXBContext.newInstance(relevantClasses);Marshallerm=jc.createMarshaller();XMLOutputFactoryxof=XMLOutputFactory.newFactory();XMLStreamWriterxsw=xof.createXMLStreamWriter(Channel

java - JAXB - 列表 <Serializable>?

我用xjc制作了一些类。publicclassMyType{@XmlElementRefs({@XmlElementRef(name="MyInnerType",type=JAXBElement.class,required=false),})@XmlMixedprotectedListcontent;publicListgetContent(){if(content==null){content=newArrayList();}returnthis.content;}}但是我不能使用添加内部元素getContent().add(newItem);因为MyInnerType不是可序列化

java - 动态 XML 标记和 JAXB

考虑到不需要标记complement1、2和3并且XML,我如何使用JAXB序列化和反序列化以下XML可能有complement4、5、n?我考虑过使用@XmlAnyElement注释,但我需要知道值“First”属于第一个补码,“Second”属于第二个补码,依此类推。IdentifierNameFirstSecondThird 最佳答案 我相信您可以使用@XmlAnyElement,并且您确实可以访问元素名称。您需要使用“任意列表”结构。当JAXB解码XML时,您将得到一个DOM元素对象列表,每个对象都包含元素名称和内容。我认为

java - 是否可以在 JAXB 编码期间忽略包装类

我试图让JAXB在Mashalling过程中忽略一个包装类,在代码中使用这个包装类是有意义的,因为它将所有相关信息放在一起,但是我需要在编码过程中摆脱它过程。以下是相关代码。@XmlType(name="root")@XmlRootElement(name="root")publicclassRoot{@XmlElementRefprivateListresources=newArrayList();publicvoidaddResource(Resourceresource){resources.add(resource);}}@XmlRootElement(name="",name