Tag: jaxb

为什么JAXB不为列表生成setter?

当我从XSD生成JAXB类时, maxOccurs="unbounded"的元素将为它们生成一个getter方法,但是没有setter方法,如下所示: /** * Gets the value of the element3 property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> […]

JAXB:需要命名空间前缀到所有元素

我正在使用Spring WebServiceTemplate进行webservice调用,它使用JAXB生成请求XML。 我的需求需要所有的元素(包括根)在SOAP请求中有一个命名空间前缀(只有一个命名空间)。 例如: <ns1:Login xmlns:ns1="www.example.com/a"> <ns1:username>abc</ns1:username> <ns1:password>abc</ns1:password> </ns1:Login> 但是我越来越 <Login xmlns="www.example.com/a"> <username>abc<username> <password>abc<password> </Login> xsd: <?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="www.example.com/a" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ilreq="www.example.com/a" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="Login"> <xs:sequence> <xs:element name="username" type="xs:string"/> <xs:element name="password" type="xs:string"/> </xs:sequence> </xs:complexType> 从XSD生成Java类 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Login", propOrder = { "username", "password" }) @XmlRootElement public class Login { @XmlElement(required = true) […]

如何使用JAXB生成一个从xsd实现Serializable接口的Java类?

我想将caching引入到现有的使用JAXB公开Web服务的Spring项目中。 高速caching将在终点级别完成。 为了做到从XSD使用JAXB生成的类需要实现Serializable接口并重写Object的toString()方法。 如何使用XSD指示xjc工具生成具有所需属性的源代码?

JAXB用空字段进行编组

这是一个非常简单的请求,但我没有find办法。 我基本上试图在JAXB中设置一个angular色,它表示无论何时遇到空字段,而不是在输出中忽略它,将其设置为一个空值。 所以对于这个class级: @XMLRootElement Class Foo { Integer num; Date date; …. } 当这个被编组到XML文件如果date字段为空,我的输出没有那个元素。 我想要做的是包括输出中的所有字段; 如果它们是空的,则用 – replace为空白。 所以输出应该是: <foo> <num>123</num> <date></date> </foo> 谢谢, Jalpesh。

如何从XML生成JAXB类

我需要从XML中生成不提供架构的类。 我知道这是近乎无用的,但事实是,我们有XML,它的结构,我们应该能够从XML创build一个模型。 在过去我已经手工完成了,但是我正在使用的当前的XML文档相当大,我的时间可能会更好地花费在构build我所需要的东西上。 但是,我猜这已经完成了,而我却找不到它。 任何指针?

JAXB – 属性“值”已被定义。 使用<jaxb:property>来解决这个冲突

使用JAXB生成XML绑定类。 该模式基于一组传统的XML文件,并包含以下代码片段: <xs:complexType name="MetaType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="Name" /> <xs:attribute type="xs:string" name="Scheme" /> <xs:attribute type="xs:string" name="Value" /> </xs:extension> </xs:simpleContent> </xs:complexType> “值”属性与xs:string的“值”属性冲突,并且代码生成失败,出现错误: com.sun.istack.SAXParseException2: Property "Value" is already defined. Use &lt;jaxb:property> to resolve this conflict.

如何在没有编组的情况下对JAXB 2.0中的模式进行validation?

我需要在封送到XML文件之前validation我的JAXB对象。 在JAXB 2.0之前,可以使用javax.xml.bind.Validator。 但是,这已被弃用,所以我想弄清楚这样做的正确方法。 我熟悉在马歇尔时间validation,但在我的情况下,我只是想知道它是否有效。 我想我可以马歇尔临时文件或内存扔掉,但想知道是否有一个更优雅的解决scheme。

生成一个实现接口的JAXB类

我目前正在使用JAXB生成Java类,以解组XML。 现在我想创build一个与第一个类似的新模式,并且生成的类实现相同的接口。 举例来说,我有两个模式文件,它们用相似的标签来定义XML: adult.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" /> <xs:element name="Age" type="xs:integer" /> <xs:element name="Job" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> kid.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" /> <xs:element name="Age" type="xs:integer" /> <xs:element name="School" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> 使用JAXB和XJC我想生成两个类文件: public class Adult implements Person […]

将Java对象转换为XMLstring

是的,是的,我知道很多关于这个话题的问题。 但我仍然无法find解决我的问题。 我有一个注解Java对象的属性。 例如Customer, 就像这个例子 。 我想要一个string表示。 Googlebuild议为此目的使用JAXB。 但是在所有的例子中,创build的XML文件都被打印到文件或控制台,如下所示: File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(customer, file); jaxbMarshaller.marshal(customer, System.out); 但是我必须使用这个对象以XML格式发送networking。 所以我想获得一个代表XML的String。 String xmlString = … sendOverNetwork(xmlString); 我怎样才能做到这一点?

JAXB:如何编组列表中的对象?

也许是一个愚蠢的问题:我有一个<Data>types的List ,我想编组成一个XML文件。 这是我的类Database包含一个ArrayList … @XmlRootElement public class Database { List<Data> records = new ArrayList<Data>(); public List<Data> getRecords() { return records; } public void setRecords(List<Data> records) { this.records = records; } } …这是类数据: // @XmlRootElement public class Data { String name; String address; public String getName() { return name; } public void setName(String name) { this.name […]