草庐IT

java - 如何自定义 jaxb 生成?

我有一系列xml消息,它们都有自己的模式和命名空间。这些消息目前使用JAXB进行编码(我们仍然生活在Java1.4环境中)并且我们有大量使用此JAXB代码的遗留代码,因此任何解决方案都需要将侵入性降到最低。我的问题是,虽然每条消息都有一组通用的header标记,但命名空间覆盖了整条消息,因此也使每条消息的header都是唯一的。结果,“公共(public)”header部分使用使用非常丑陋的代理类和动态反射代码实现的公共(public)类加载到namespace绑定(bind)版本中。这个公共(public)类已被确定为一些性能问题的根源。理想情况下,我想使用以下方法实现替换:使用Ma

java - JAXB 抑制 XSI 和 xmlns

我正在使用JAXB来编码一些常规对象。我得到这样的输出:CDevelopmentPerlDevelopmentJavaDevelopmentDatabaseDesignGrailsDevelopment我真的不想要xsi:type=和xmlns:xsi=出现在我的最终文档中,因为它不需要它。这可能吗?另外-我设置了一个@XmlElementWrapper(name="desiredskillslist")将标签放在employeeDesiredSkills周围,但如果可能的话,我宁愿没有根本没有标签-如果它只是名称列表,那就太好了。为什么我注释了ArrayList会这样出来?

android - 是否可以同时使用 JAXB 和简单 XML?

我正在为Android编写一个API客户端库,并且我使用简单XML来反序列化对象,因为JAXB似乎在Android上不起作用。API项目中的类具有JAXB的XML注释。我将这些类复制到我的Android库中,但更改了简单XML的XML注释。显然,这会导致同步更改出现问题。有没有办法使两者兼容,以便相同的代码可以与JAXB和简单XML一起使用? 最佳答案 我认为唯一可行的解​​决方案是同时使用两种注释类型。您可以使用JAXB和SimpleXML注释来标记每个成员字段。当然,您需要一些胶水才能使其正常工作,并使编译器不会提示不存在的注释

java - 如何使用模式验证我的 XML,JAXB 的 XMLStreamReader 一次只读取一个对象/元素?

下面的代码可以正确地一次从一个对象的流中解码XML。但是当我取消对unmarshaller.setSchema(schema)行的注释时,程序会抛出异常:[org.xml.sax.SAXParseException:cvc-elt.1:Cannotfindthedeclarationofelement'Subscriber'.]我已经使用javax.xml.validation.Validator类验证了XML,但我的目标是同时验证和解码,一次一个元素。这是我当前的代码:SchemaFactorysf=SchemaFactory.newInstance(XMLConstants.W3C

java - WSDL 中忽略的 JAX-B 全局绑定(bind)

我有一个WSDL,我从中生成NetBeans中的类。未更改的副本有日期,这些日期生成为XMLGregorianCalendar。我试图覆盖该行为并插入一个全局绑定(bind)标记,以便它生成一个JavaDate。但是,无论我将绑定(bind)标记放在哪里(如下所示),它都会被忽略,并且将XMLGregorianCalendar用作日期类型。有人可以告诉我我是否在正确的轨道上,以及在哪里放置覆盖?下面也是WSDL的整体布局。经过编辑的WSDL,显示了我认为相关的部分: 最佳答案 我认为您缺少上的命名空间前缀元素-它需要位于JAXB命名

java - 使用 @XmlAnyElement 的 XML 映射

我想实现类似this的目标.......我这里有这门课。publicclassMainGroup{privateListwidgets;@XmlAnyElementpublicListgetWidgets(){returnwidgets;}publicvoidsetWidgets(Listwidgets){this.widgets=widgets;}}并且这个Widget父类(superclass)有Button、Combobox等子类......我想实现这样的目标。......我有这个异常(exception)[com.sun.istack.internal.SAXException

xml - JAXB(在 Jersey JAX-RS 中)是否有可能支持 java.util.HashMap 的 XML 和 JSON 格式

我正在使用JAX-RS的Jersey实现来创建RESTful服务。我希望该服务通过JAX-RS中内置的非常方便的JAXB支持来支持XML和JSON响应。在我尝试使用java.util.HashMap之前,一切都运行良好(注意:您不能将接口(interface)与JAXB一起使用)。我惊讶地发现JAXB不支持内置的XMLmap,尽管JacksonJSONJAXB插件确实支持。第一次尝试:@XmlElement(name="Links")HashMaplinks=newHashMap();XML输出为空:JSON输出正确:"Links":{"status":{...},"cancel":{

xml - JAXB/XJC - 从 XS :Group 生成一个类

我是第一次使用JAXB,并且有一些非常糟糕的XML,我无法更改,我想为其生成类。XML看起来像这样:........................所以我想好吧,也许我可以将联系人元素称为一组序列。相关部分:但是,我的ContactList对象只有一个getter,如下所示:publicList>getContact()为什么没有声明Contact对象,我该如何解决这个问题?我不认为我可以将Contact声明为复杂类型,因为它不包含在元素中。谢谢 最佳答案 我认为最好的办法是首先使用XSLT将错误的XML转换为良好的XML。然后用J

java - JAXB 没有为包含生成的 Java 类的类生成所需的模式?

我有这门课@XmlRootElementpublicclassGpsDataRequest{//definitionofvariables@XmlElement(required=true,type=GpxType.class)publicGpxTypegetGpxRoot(){returngpxRoot;}@XmlElement(required=true,type=JourneyXML.class)publicJourneyXMLgetJourneyPlanRoot(){returnjourneyPlanRoot;}@XmlElement(required=true)publicS

json - Jaxb 是否需要 @XmlElement

我的问题是,在进行JSON响应时,是否有必要在pojo中的每个元素之前添加@XmlElement以供jaxb获取。我正在使用jersey-json1.17。我问这个的原因是因为,theexamplegivenonJerseysite不使用注解。我得到一个作为{}的输出,但是当我在属性前添加@XmlElement时,我得到了预期的JSON输出。我是不是做错了什么,导致我的JSON字符串为空?我的代码:顶点列表在构造函数中填充。这会产生{}的错误输出@XmlRootElementpublicclassSquareModel{Listvertices=newArrayList();....}