草庐IT

java - JAXB:为同一元素解码具有多个名称的 xml

我认为这对于真正了解JAXB绑定(bind)文件的人来说会很容易...基本问题如何配置JAXB以将多个元素解码到同一个类中?注意:我想避免向我的项目添加其他依赖项(如MOXy)。理想情况下,这可以通过注释或自定义绑定(bind)文件来完成。背景我有一个XML文档,其中包含同一元素的许多变体——每个变体都具有完全相同的属性。使用下面的示例,我只关心“员工”,但XML指定“董事、经理和员工”。出于我们的目的,这些都是同一父类的所有子类,我们只需要使用父类型(Employee),而我们的对象模型没有或不需要子类的实例。我希望JAXB绑定(bind)director,manager,orsta

java - Maven JAXB2 XJC 插件 : M2E plugin execution not covered

我正在使用jaxb2xjc插件从XSD生成java文件。因此,我曾经按如下方式配置我的pom.xml:org.codehaus.mojojaxb2-maven-plugin1.3generate-sourcesxjccom.mypackage.model${basedir}/src/main/resources/XSDorg.apache.maven.pluginsmaven-compiler-plugin1.61.6我将我的开发环境更改为EclipseIndigo,但它不再起作用了。错误显示:“生命周期配置未涵盖插件执行”。我知道我必须以不同的方式定义我的插件的执行,以便它在我的新环

java - 在 xml jaxb 中将 null 值表示为空元素

我需要在jaxb中将null值显示为空元素。我正在使用jaxb的moxy实现。我找到了这个选项@XmlNullPolicy(emptyNodeRepresentsNull=true,nullRepresentationForXml=XmlMarshalNullRepresentation.EMPTY_NODE)是否有任何类似的扩展可以应用于类级别(对于其中定义的所有元素) 最佳答案 我强烈建议代表null没有节点或有xsi:nil="true"属性。这最适合模式验证(即或不是xsd:int类型的有效元素。但是,如果您不能,这里是如何

java - Clickatell SOAP wsdl 到 JAXB java 类

我正在尝试从Clickatellwsdl生成JAXB类:您可以在此处找到相当大的wsdl定义:http://api.clickatell.com/soap/webservice.php?WSDL当试图从这个Wsdl生成java类时,我得到了以下错误:[错误]未定义的简单或复杂类型'SOAP-ENC:Array'[错误]未定义属性'SOAP-ENC:arrayType'我希望有人能帮助我。干杯,蒂姆 最佳答案 您的模式指的是类型SOAP-ENC:Array在架构中定义xmlns:SOAP-ENC="http://schemas.xml

java - wsimport - 如何在单独的项目/文件夹中生成服务端点类和 JAXB 类

我们对具有多个Web服务(多个WSDL)的项目使用自上而下的方法。每个Web服务都需要设置为一个单独的项目并部署为一个单独的war。问题是WSDL共享一些通用的.xsd文件。当前,如果我们为每个WSDL运行wsimport,则公共(public)JAXB类将在每个Web服务项目中被复制。理想情况下,我们希望在公共(public)共享项目中单独生成JAXB类,然后在每个Web服务项目中重用JAXB类项目,但wsimport不提供跳过JAXB类生成或指定的选项JAXB类的不同位置。关于如何在不同的JAX-WSWeb服务端点之间共享JAXB类有什么想法吗? 最佳答

java - JAXB XJC - XPath 评估结果为空目标节点?

我有以下简单的XSD文件(foo.xsd):并且我想通过使用外部绑定(bind)文件向XJCJAXB编译器提示“Height”元素应该使用类型安全的枚举类,例如(foo.xjb):但是当我运行命令“xjc-bfoo.xjbfoo.xsd”时,我得到以下错误:parsingaschema...[ERROR]XPathevaluationof"//xsd:element[@name='Height']/xsd:simpleType"resultsinemptytargetnodeline6offile:/Users/maerics/src/java/jaxb/foo.xjbFailedto

java - 既可选又可为空的 JAXB 元素

我重新设置了问题的格式,希望能使我的意图更加清晰。架构我正在编写一些Web服务,我将使用JAX-WS自行发布这些服务。我们已经使用了一段时间的过程是首先编写一个仅定义请求和响应对象的模式。这将发送给客户以批准xml消息的结构。我不想自己编写整个wsdl,因为它比基本模式更复杂。接下来,我使用JAXB命令xjc根据模式中的请求和响应类型生成类。然后,我将此类用作JAX-WS注释端点类的参数和返回类型。这现在为我提供了一个可以调用的Web服务。它使我能够更好地控制发送和返回的xml,而且还能自动执行编写完整wsdl所需的重复操作。问题在架构中,我有一个这样的元素:所以我想区分用户设置的是n

java - jaxb:枚举列表上的奇怪类转换异常

我正在使用jaxb从xsd生成java类文件。xsd包含一个元素的定义,其内容是在相同的xsd中定义的常量列表作为枚举。当使用来自oracle的jdk1.7的JAXB引用实现生成类时(v2.2.4-2)可以遍历枚举列表并为它们分配相同类型的变量。但是,当使用oracle的jdk1.8生成类时(构建1.8.0_45-b15-最新发布日期)JAXB引用实现(v2.2.8-b130911.1802)不再可能将列表的元素分配给枚举类型的变量。任何使用增强的for循环分配或迭代的尝试都以ClassCastException结束java.lang.ClassCastException:java.l

java - 使用 JAXB 支持略有变化的模式

情况我需要支持基于彼此之间仅略有不同的模式生成XML文档。具体来说,我需要支持的模式基于行业标准,随着时间的推移会略有变化,供应商可能会制作他们自己的定制版本。问题我打算使用具有继承性的JAXB2(来自Metro)作为解决方案。我希望包结构最终是这样的:com.company.xml.schema.v1com.company.xml.schema.v2com.company.xml.schema.v2.vendorxyzv2包中的类将简单地扩展v1包中的类并在必要时覆盖。不幸的是,该计划最终无法实现,因为子类无法覆盖父类中的注释(seehere)。例如,如果模式中的属性在版本之间被重命

java - JAXB 纯粹从接口(interface)编码

我有一个复杂的Java接口(interface)层次结构,我想用JAXB编码(但不一定取消编码)。这些接口(interface)表示将从JAX-RSRESTAPI以XML、JSON、YAML等形式返回的对象。(我使用的是RestEasy,它可以以XML以外的格式编码JAXB注释类型。)问题似乎是JAXB基本上是面向类的。我对JAXB和接口(interface)的困难做了很多网络研究,最接近的解决方案是MOXyJAXB-MapInterfacestoXML和JAXBandInterfaceFrontedModels.但是,我有两个主要问题:a)我想根据接口(interface)进行注释/