JAXB_FORMATTED_OUTPUT
全部标签 我们对具有多个Web服务(多个WSDL)的项目使用自上而下的方法。每个Web服务都需要设置为一个单独的项目并部署为一个单独的war。问题是WSDL共享一些通用的.xsd文件。当前,如果我们为每个WSDL运行wsimport,则公共(public)JAXB类将在每个Web服务项目中被复制。理想情况下,我们希望在公共(public)共享项目中单独生成JAXB类,然后在每个Web服务项目中重用JAXB类项目,但wsimport不提供跳过JAXB类生成或指定的选项JAXB类的不同位置。关于如何在不同的JAX-WSWeb服务端点之间共享JAXB类有什么想法吗? 最佳答
我有以下简单的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
我重新设置了问题的格式,希望能使我的意图更加清晰。架构我正在编写一些Web服务,我将使用JAX-WS自行发布这些服务。我们已经使用了一段时间的过程是首先编写一个仅定义请求和响应对象的模式。这将发送给客户以批准xml消息的结构。我不想自己编写整个wsdl,因为它比基本模式更复杂。接下来,我使用JAXB命令xjc根据模式中的请求和响应类型生成类。然后,我将此类用作JAX-WS注释端点类的参数和返回类型。这现在为我提供了一个可以调用的Web服务。它使我能够更好地控制发送和返回的xml,而且还能自动执行编写完整wsdl所需的重复操作。问题在架构中,我有一个这样的元素:所以我想区分用户设置的是n
我正在使用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
情况我需要支持基于彼此之间仅略有不同的模式生成XML文档。具体来说,我需要支持的模式基于行业标准,随着时间的推移会略有变化,供应商可能会制作他们自己的定制版本。问题我打算使用具有继承性的JAXB2(来自Metro)作为解决方案。我希望包结构最终是这样的:com.company.xml.schema.v1com.company.xml.schema.v2com.company.xml.schema.v2.vendorxyzv2包中的类将简单地扩展v1包中的类并在必要时覆盖。不幸的是,该计划最终无法实现,因为子类无法覆盖父类中的注释(seehere)。例如,如果模式中的属性在版本之间被重命
我有一个复杂的Java接口(interface)层次结构,我想用JAXB编码(但不一定取消编码)。这些接口(interface)表示将从JAX-RSRESTAPI以XML、JSON、YAML等形式返回的对象。(我使用的是RestEasy,它可以以XML以外的格式编码JAXB注释类型。)问题似乎是JAXB基本上是面向类的。我对JAXB和接口(interface)的困难做了很多网络研究,最接近的解决方案是MOXyJAXB-MapInterfacestoXML和JAXBandInterfaceFrontedModels.但是,我有两个主要问题:a)我想根据接口(interface)进行注释/
我想知道是否可以让JAXB不为用作包装器的XML元素创建Java对象。例如对于如下结构的XML我不想要的对象完全被创造出来。所以对于像这样的类classRoot{privateEntityentity;}元素应直接解码到实体字段中。用JAXB可以实现吗? 最佳答案 虽然它需要额外的编码,但所需的解码是通过以下方式使用transient包装器对象完成的:@XmlRootElement(name="root")publicclassRoot{privateEntityentity;staticclassEntity{}staticcla
在我们的应用程序中有一个相当普遍的模式。我们在Xml中配置一组(或列表)对象,它们都实现一个公共(public)接口(interface)。在启动时,应用程序读取Xml并使用JAXB创建/配置对象列表。我从来没有想出(在多次阅读各种帖子之后)仅使用JAXB来执行此操作的“正确方法”。例如,我们有一个接口(interface)Fee,以及多个具体实现类,它们具有一些共同的属性,以及一些不同的属性和非常不同的行为。我们用来配置应用程序使用的费用列表的Xml是:NYSE...在上面的Xml中,每个元素对应于Fee接口(interface)的具体子类。type属性提供有关要实例化哪种类型的信息
考虑以下代码:Main.java====packagecom.sample;importcom.sample.entity.Customer;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;publicclassMain{publicstaticvoidmain(String[]args)throwsJAXBException{JAXBContextjc=JAXBContext.newInstance(Customer.class);C
所以现在当我使用XML模式验证XML文件时,我只能知道它是失败还是通过,如果我想知道它失败的原因,我需要查看错误消息,例如[org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:Invalidcontentwasfoundstartingwithelement'City'.Oneof'{Address1}'isexpected.]在上面的示例中,它失败了,因为我缺少标记Address1。我的问题是当验证失败时,我能知道是哪个标签导致失败吗?这是因为我需要针对每个重要缺失标签以不同方式处理这些失败。现在我的想法是FileInputStr