Tag: jaxb

将JAXB生成的类用于需要带有模式的整数的元素

我的XML Schema中有一个元素,定义如下: NumberCodeValueType的位置是: 也就是说,我的号码可以从前导0开始。 我无法修改此架构。 我正在使用JAXB来生成我的Java类。 不幸的是, Code元素的访问器将整数列表作为参数,这意味着所有前导0都被剥离(因为,据我所知,使用整数类型时无法在Java中保持前导0)! 有什么办法可以解决这个问题吗? 谢谢你的帮助!

JAXB是否支持xsd:restriction?

所以我希望它转换为这样的Java代码: public void setAge(int age){ if(age 120){ //throw some exception } //setting the age as it is a valid value } 在JAXB中可以吗? 曾经看过一些WebService Client存根生成器这样做可能是axis2 webservice但不确定。

JAXB使用CDATA编组解组

我正在尝试与JAXB进行编组。 我的输出就像 <![CDATA[<h1>kshitij</h1>]]> <h1>solanki</h1> <h1>1</h1> 但我需要输出像 <![CDATA[kshitij]]> <![CDATA[solanki]]> 我正在使用以下代码来执行此操作。 如果我取消注释代码,我会得到Property Binding Exception。 没有它我可以编译,但我没有得到确切的所需输出。 package com.ksh.templates; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import com.sun.xml.bind.marshaller.CharacterEscapeHandler; public class MainCDATA { public static void main(String args[]) { try { String name = “kshitij”; String surname = “solanki”; String id = “1”; TestingCDATA cdata = new […]

我应该在Maven项目中为JAXB RI使用哪些工件?

从历史上看,我总是在我的Maven项目中使用以下JAXB RI工件: com.sun.xml.bind:jaxb-impl – 运行时 com.sun.xml.bind:jaxb-xjc – 模式编译器 com.sun.xml.bind:jaxb-jxc – 模式生成器 由于大约版本2.2.10*这些工件现在被描述为“旧” : com.sun.xml.bind:jaxb-impl 旧的JAXB运行时模块。 所以看起来这些工件现在已经过时了。 问题是: 应该使用哪些工件?

使用JAXB从两个XML文件交叉引用XmlID

我正在尝试将两个不同的XML文件编组/解组到POJOS。 第一个XML文件如下所示: –Network.xml– ——— 使用@XmlID和@XmlIDREF注释,我可以成功填充Arc类以指向它引用的正确节点。 但是,我还必须解析这个XML: –NetworkInputs.xml– —— 目前,我的程序成功解组了Network对象,但是Network和NetworkInput之间没有连接,允许JAXB“看到”Network中存在的节点。 我希望我的Flow对象指向Network类中的正确Node。 我基本上想要这样做: http : //old.nabble.com/JAXB-Unmarshalling-and-XmlIDREF-using-different-stores-td14035248.html 我尝试实现这个: http : //weblogs.java.net/blog/kohsuke/archive/2005/08/pluggable_ididr.html它只是不起作用,因为我无法获取我填充的网络的节点数据静态上下文。 甚至可以做这样的事情吗?

JAXB映射对XML的循环引用

我有一个包含循环的对象图。 如何让JAXB处理这个问题? 我尝试在子类中使用@XmlTransient注释,但JAXB marshaller仍然检测到循环。 @Entity @XmlRootElement public class Contact { @Id private Long contactId; @OneToMany(mappedBy = “contact”) private List addresses; … } @Entity @XmlRootElement public class ContactAddress { @Id private Long contactAddressId; @ManyToOne @JoinColumn(name = “contact_id”) private Contact contact; private String address; … }

JAXB编组XMPP节

我正在尝试使用以下代码段来编组消息: JAXBContext jContext = JAXBContext.newInstance(Iq.class); Marshaller m = newJAXBContext.createMarshaller(); m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); Bind bind = new Bind(); bind.setResource(“resource”); Iq iq = new Iq(); iq.setId(iqId); iq.setType(“set”); iq.getAnies().add(bind); ByteArrayOutputStream baos = new ByteArrayOutputStream(); m.marshal(iq, baos); 这里,Iq和Bind是由相关xmpp模式形成的对象。 我的问题是,使用jaxb 2.0及更高版本,所有命名空间都在根元素中声明: resource 但是,这里需要的是命名空间应该占用适当的位置: resource 有没有办法通过JAXB 2.0或更高版本在第二个xml节中看到它们来编组xmpp节? 长话短说,我在这里有两个问题:1。在适当的位置声明命名空间。 2.删除我理解的命名空间前缀可以使用NamespacePrefixMapper删除? 但不确定,一个例子会很棒。

在JPA / JAX-RS Web服务中validationJAXBElement

我有一个JAX-RS webservice(Jersey),它是JPA(EclipseLink)实体的CRUD接口。 我的实体是从数据库表中自动生成的,我用JAXB注释对它们进行了注释,以便它们可以编组/解组到XML。 我的资源方法将JAXBElement对象作为必需的参数。 我没有XSD,但是,我愿意写一个来validation请求中收到的XML。 但是,我不知道如何启动validation。 Jersey自动处理编组/解组,我发现的有关validation的任何参考都是在该级别完成的。 有人知道一个示例/教程,说明如何做到这一点? 谢谢!