草庐IT

jaxb2-basics

全部标签

java - 为什么静态类在 JAXB 解码中很特殊

我遇到过几种情况,其中JAXB从xsd文件生成的类有一系列类列表,这些类列表也包含类列表。生成的类在处理这些情况时使用静态内部类,但这会导致多个实例一个类存在多次。例如,我有一个存在于多个xsd文件中的参数类。在每个实例中,此参数类都是相同的并且包含一个键值对。在为每个xsd文件生成代码时,每个生成的类都包含一个名为Parameter的内部类。为了减少冗余,我从所有生成的类中删除了Parameter类,重新实现它,并更新了所有引用。这按预期工作当我有另一个类(如LogicalDevice)也在多个类中实现时,就会出现问题。LogicalDevice包含一个ParameterList。当

java - 使用注释时如何在 JAXB 解码器上设置自定义 ValidationEventHandler

我们结合使用JAX-WS和JAXB来接收和解析XML网络服务调用。它都是基于注释的,即我们永远不会在代码中获取JAXBContext。我需要在解码器上设置自定义ValidationEventHandler,这样如果不接受特定字段的日期格式,我们就可以捕获错误并在响应中报告一些不错的内容。我们在相关字段上有一个XMLJavaTypeAdapter,它进行解析并抛出异常。我看不到如何使用我们拥有的基于注释的配置将ValidationEventHandler设置到解码器上。有什么想法吗?注意:同一个问题thiscomment目前没有答案。 最佳答案

java - JAXB:解码异构数组

我正在尝试使用MOXy解码具有以下结构的json:[{"page":1,"pages":1},[{"indicator":{"id":"IC.BUS.EASE.XQ","value":"Easeofdoingbusinessindex"},"country":{"id":"1A","value":"ArabWorld"},"value":"113.952380952381","date":"2014"},...]]数组的第一个元素是一个对象,第二个元素是另一个复杂元素的数组。我真的在SO和MOXy文档中搜索了一个类似的例子,但没有成功。我将json文档映射到JAVA类的最佳尝试如下。根

java - Jaxb 解码包含 & <> 符号的 xml

用JAXB解析我的XML我已经生成了所需的POJO,并且能够成功解析XML。但是每当我的xml包含'&'''迹象表明它正在失败。根据规则,这需要更改为'&'但是生成XML的3PP不遵循规则。现在我如何用'&'解析这个xml标志。注意-对于编码,我找到了很多答案,但不适用于解码。环境-Java8XML范例:Thisis&CustomerInfo任何帮助都会有帮助 最佳答案 JSoup旨在处理相当粗糙和现成的HTML解析,因此使用比普通XMLAPI(例如JRE附带的内置Xerces版本)更宽松的解析规则。它可以将XML输出到适合在

java - JAXB:反序列化扩展类 A 的类 B 时出现问题

请考虑以下示例:有一个ClassA和一个扩展它的ClassB。我现在的问题是我必须从xml文件中解码ClassB。请注意ClassA无法更改,因为它不在我的控制之下。这个例子中有几个问题:主要问题是ClassA没有没有Adapter的JAXB所需的默认无参数构造函数。因此,我实现了MyAdapter,它将ClassB映射到简单的类ValB,JAXB可以毫无问题地对其进行处理。主要问题是如何让JAXB使用这个适配器?无论是在类级别上定义@XmlJavaTypeAdapter还是将适配器注册到解码器,都不会这样做。有人知道如何让JAXB使用MyAdapter以便解码器返回一个对象,该对象是

java - 我什么时候应该在 JPA 2.0 中使用 @Basic(optional = false)

我在JPA中有一个带有单表映射的继承,比如说A类和B类扩展了一些抽象实体,所以我必须使A和B中的列在数据库端可以为空,但是如果有人试图保留A,那么所有字段A不应该为空,我想通过代码强制执行。我可以使用以下代码来实现此目的吗-@Entity@DiscriminatorValue("1")publicClassAextendsSomeAbstractEntity{@Basic(optional=false)privateStringnameOfA;}我读了这个答案@Basic(optional=false)vs@Column(nullable=false)inJPA并认为这可能是可以实现的

java - Jersey JAXB 如何为 List 实现 MessageBodyWriter

我正在尝试为List实现MessageBodyWriter。通过这个实现,我在线上有一个空指针异常;marshaller.marshal(o,entityStream);@Provider@Produces(MediaType.APPLICATION_XML)publicclassMyListProviderimplementsMessageBodyWriter>{privateStringmyWrapElemName="datas";privateMarshallermarshaller;publicInstrumentModelListProvider(){JAXBContextc

java - 使用 JAXB 的 JAX-WS 请求验证

在JAX-WS中,要验证传入请求,其中一种方法是使用@SchemaValidation,如以下链接中所建议。JAX-WSandXSDValidation但是我使用的应用服务器(WAS7)还不支持@SchemaValidation。(如果WAS7不支持此注释,请纠正我)所以我正在寻找其他选项,例如实现一个处理程序来验证传入的请求。在处理程序或端点类本身中,我可以创建JAXBContext并使用JAXBvalidator。由于JAX-WS内部使用JAXB,我是否需要显式创建JAXBContext或者它是否可以作为资源/注释使用?这是在JAX-WS中实现验证的好方法吗?(在没有@Schema

java - transient 变量的注解@Basic

我有一个POJO类,它包括:-持久属性,-transient特性。在编写HQL时,我同时考虑了两者:持久性和transient性。IE。HQL类似selectpersistent_properties,transient_propfromPojo_classname正确吗?我可以给transient变量写@Basic注解吗? 最佳答案 不,这是不正确的。HQL查询转换为SQL。@Transient属性不在数据库中,因此SQL查询将无法查询该属性。@Basic和@Transient是矛盾的。第一个告诉“这个属性是持久的”,第二个告诉“

java - JAXB 使用 Java 泛型解码

我正在尝试使用JAXB从遗留系统中解码XML文档。我有一个xml结构如下:0000002003LoremIpsumI1I22007DolorsitametK1K2指定部分内的标签标签会根据我的要求改变。由于内容可能会改变,我决定对结果项使用泛型,并且我已经准备好带有注释的javabean,如下所示://importshere@XmlRootElement(name="response")@XmlAccessorType(XmlAccessType.FIELD)publicclassXResponse{privateStringid;@XmlElementWrapper(name="re