Tag: jaxb

从xml创建没有架构的Jaxb类

如何创建一个简单的jaxb Java类来表示以下xml 可以有多个myelem ,每个myelem可以包含多个key 我不想使用xsd

如何在使用XJC生成JAXB代码期间重命名顶级Classname?

我试图从几个xsd生成一些bean。 不幸的是,它们都具有相同的根元素。 我已成功创建了一个用于重命名子元素的xjc绑定文件,但无法找到一种方法来选择根节点来更改它。 我尝试了以下但得到错误:[错误] XPath评估“/”需要导致一个元素。

JAXB是否始终需要XSD

http://www.oracle.com/technetwork/articles/javase/index-140168.html#binsch – 本文说“ JAXB要求您要访问的XML文档具有架构 ” 这是一个Hello World示例,使用hello.xsd http://jaxb.java.net/tutorial/section_1_3-Hello-World.html#Hello%20World- 这是一个不使用任何xsd的Hello World示例。 http://www.mkyong.com/java/jaxb-hello-world-example/ 规范是否说JAXB在没有 xsd的情况下也可以工作,如果这是真的那么术语“绑定”的合理程度。 我相信通过绑定模式发生绑定。 Carification将会很有帮助。 谢谢

在解组操作期间将nil =“true”转换为null

我从服务器接收XML,其架构几乎指定了每个元素: 我正在尝试找到一种干净的方法,将我收到的标记为xsi:nil=”true”每个元素转换为null,当它被解组到JAXB对象中时。 所以这样的事情: 应该导致我的JAXB对象具有值为null的myIntElementName属性,而不是具有nil属性设置为true的JAXBElement对象(或沿着这些行的任何内容)。 我对发送给我使用nillable属性的XML的系统没有任何控制权,所以当我收到它时,我需要在我的结尾转换它。

JAXB模式在哪里发布?

JAXB 1.0和JAXB 2.0模式应该可以从JAXB站点的Bindings Schema获得 。 不幸的是,它最后一次更新于2005年,并且所有链接都被破坏了。 模式的官方位置是什么? v1.0,2.0,2.1和2.2应该有一些权威来源。

Jaxb Unmarshall带有未知的@XmlRootElement

在不知道根元素的情况下,我无法实现解组 XML。 例如。 要么 等等… 我想在类上映射解组结果: // @XmlRootElement ?? public class Container implements Serializable { private Bar bar; } 我总是需要修复@XmlRootElement 。 我搜索了如何在运行时设置@XmlRootElement但没有成功。 任何想法? 我在Spring Batch上下文中,我可以使用我选择的unmarshaller。 注意:我不能使用@XmlElementDecl或ObjectFactory ,如下所示,因为我不知道可能的根名称的名称 。

从未知的JAXBContext(XML)为JSON创建Marshaller

我必须使用一个只提供JAXBContext的lib来为XML对象编组和解组XML数据。 此外,我从未见过XML:只有JAXB对象传递给我。 我现在需要的是将这些对象转换为XML,而不是转换为JSON。 有没有办法从给定的JAXBContext创建一个可用于生成JSON输出的编组器? 情况是我不仅在改造数据。 我还有逻辑,它作用于XML和JSON之间的Java对象(并操纵数据)。 这也是双向转型。 JAXBContext是关于XML和Java对象之间转换的信息 – 我的目的是重用这个上下文信息,而不必使用与JAXB不同的第二种技术实现第二次转换。 JAXBContext(及其Java对象)已经拥有有关XML结构的信息; JAXB自动识别该结构是使用它的省时省力的原因。

EclipseLink动态MOXy访问枚举值

我正在使用下面列出的XSD和相应的XML。 一切都适用于动态MOXy,但我不知道如何访问java中的枚举类型。 有什么建议么? 感谢帮助。 //JAVA code DynamicEntity person = (DynamicEntity) dynamicJAXBContext.createUnmarshaller().unmarshal(instanceDoc); String firstName = person.get(“firstName”); String lastName = person.get(“lastName”); //until here it works well //but now: how to get and set the value of the “quadrant”? // following lines do not work String quadrant=person.get(“quadrant); person.set(“quadrant”,”NORTH”);

java.util.Map属性的Jaxb名称空间

我有一个包含hashmap的简单类: @XmlRootElement() public class Customer { private long id; private String name; private Map attributes; public Map getAttributes() { return attributes; } public void setAttributes(Map attributes) { this.attributes = attributes; } @XmlAttribute public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } […]

JAXB:在解组时拦截?

我有一个使用JAX-RS和JAXB的典型Web服务,在解组时我想知道JAXB显式调用了哪些setter。 这有效地让我知道调用者提供的文档中包含哪些元素。 我知道我可以使用XmlAdapter解决这个XmlAdapter ,但是我在很多不同的包中都有很多类,我不想为每一个都创建适配器。 我也不想把钩子放进每一个二传手。 如果可能,我想要一个通用的解决方案。 请注意,我的所有类都设置为使用getter和setter; 它们都没有使用访问类型的字段。 我的服务使用Jersey 2.4,Spring 3.2和MOXy 2.5.1,所以如果有任何东西可以从任何一个中得到充分利用,那就更好了。 我们最初的想法是我们可以动态创建一个工厂类(类似于@XmlType支持的),它将返回一个拦截setter的代理对象。 我们认为我们可以使用MOXy中的MetadataSource概念来实现这一点,但这似乎不可能。 有人有主意吗?