参考文章:
http://stackoverflow.com/questions/13568543/how-do-you-specify-the-date-format-used-when-jaxb-marshals-xsddatetime
方法1:instance级别指定,即每次使用时指定
public static XMLGregorianCalendar getXmlDate(Date date) throws DatatypeConfigurationException {
return DatatypeFactory.newInstance().newXMLGregorianCalendar(new SimpleDateFormat("yyyy-MM-dd").format(date));
}
public static XMLGregorianCalendar getXmlDateTime(Date date) throws DatatypeConfigurationException {
return DatatypeFactory.newInstance().newXMLGregorianCalendar(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(date));
}
方法2:class级别,即使用Adapter,为一个类的某个属性都使用设置好的日期格式
You can use an XmlAdapter to customize how a date type is written to XML.
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class DateAdapter extends XmlAdapter<String, Date> {
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public String marshal(Date v) throws Exception {
return dateFormat.format(v);
}
@Override
public Date unmarshal(String v) throws Exception {
return dateFormat.parse(v);
}
}
Then you use the @XmlJavaTypeAdapter annotation to specify that the XmlAdapter should be used for a specific field/property.
@XmlElement(name = "timestamp", required = true)
@XmlJavaTypeAdapter(DateAdapter.class)
protected Date timestamp;
分享到:
相关推荐
**使用JAXB根据XSD生成XML文档** 在Java开发中,XML文档的生成与解析是一项常见的任务,特别是在处理数据交换和存储时。JAXB(Java Architecture for XML Binding)是Java平台标准的一部分,它提供了一种将Java对象...
在给定的例子中,我们将深入理解如何使用JAXB注解来生成XML。 1. **@XmlType**: 这个注解用于定义类的属性在XML输出中的顺序。在`WriterXml`类中,propOrder 属性指定了"id", "name", "age", "book"这四个属性的...
例如,`marshaller.marshal(obj, outputStream)`会将Java对象`obj`写入到`outputStream`,生成XML格式的数据。 4. **反序列化**:反序列化是将XML数据转换回Java对象的过程。这通常通过调用`Unmarshaller`接口的...
### 使用JAXB生成XML文档详解 #### 一、前言 在现代软件开发过程中,XML(可扩展标记语言)作为一种重要的数据交换格式,被广泛应用于各种应用场景中。特别是在J2EE(Java Platform, Enterprise Edition)领域,...
以下是一个简单的JAXB解析生成XML的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; public class JaxbExample { public static ...
本篇文章将详细讲解如何根据实体类生成XML格式的字符串,并提供一个自定义实体类转化为XML的示例。 首先,我们需要了解XML的基本结构。XML(eXtensible Markup Language)是一种标记语言,用于描述数据并定义其结构...
这个过程极大地简化了XML在Java应用中的操作。 **XML操作的基本概念:** XML(eXtensible Markup Language)是一种标记语言,常用于数据交换和配置文件。XML文档结构清晰,具有自解释性,使得数据在不同系统间交换...
当你需要在XML与Java类之间进行数据交换时,JAXB提供了一种自动化的机制,可以将XML Schema (XSD) 文件转换为Java类,反之亦然。这个过程被称为“绑定”或“反绑定”。 标题“用jaxb自动生成xsd对像”指的是利用...
在Java世界中,XML(可扩展标记语言)作为一种数据交换格式,被广泛用于存储和传输数据。而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档...
1. 自动化:JAXB自动生成Java类和XML之间的映射,大大减少了手动编码的工作量。 2. 高效:JAXB提供了高性能的序列化和反序列化机制。 3. 标准化:作为Java EE的一部分,JAXB遵循了Java社区的开放标准,确保了广泛的...
3. WebService:在开发基于SOAP的WebService时,JAXB常用于XML与Java对象的转换,使得数据交换更加便捷。 五、JAXB与其它XML处理技术对比 JAXB与其他XML处理技术(如DOM、SAX、StAX)相比,更注重于对象模型与XML...
当我们有一个Java对象,并希望将其转换成XML格式时,JAXB会使用已有的Java类和XML Schema信息来生成符合Schema规范的XML文档。这个过程可以通过调用`JAXBContext`的`createMarshaller()`方法创建一个marshaller对象...
Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...
通过配置,可以在生成Java类时引入XML Schema,确保Java对象和XML文档的一致性。 在"jaxb-ri-20120516"这个文件名中,"ri"可能代表"Reference Implementation",这意味着它可能是JAXB的一个官方参考实现版本。使用...
**Java Architecture for XML Binding (JAXB)** 是Java平台上的一个标准技术,用于在XML文档和Java对象之间进行数据绑定。它允许开发者将XML文档转换为Java对象,反之亦然,从而简化了XML处理。JAXB是Java SE和Java ...
Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许在Java对象(如JavaBeans)和XML文档之间进行互相转换。这个过程被称为对象绑定,它简化了XML数据的处理,使得开发人员无需手动编写...
在 JAXB 中,将一个 Java 对象转换为 XML 的过程称之为 Marshal,将 XML 转换为 Java 对象的过程称之为 UnMarshal。 通过在 Java 类中标注注解的方式,可以将一个 Java 对象绑定到一段 XML。这些注解定义了如何将这...
3. **灵活性**:支持动态绑定,可以在运行时根据XML Schema生成Java类。 ### JAXB的局限性 1. **复杂XML处理**:对于非常复杂的XML结构,JAXB可能需要更多的注解来配置,使得代码变得冗长。 2. **资源消耗**:虽然...
在生成XML时,需要确保正确转义这些字符;在解析XML时,解析器会自动解码这些实体。 总结,XML与JavaBean之间的转换是Java开发中的常见操作,理解XML的大小写规则、特殊符号处理和CDATA的使用对于编写健壮的XML处理...
在Java中生成XML文档,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。DOM解析器会将整个XML文档加载到内存中,适合小规模数据处理;SAX是...