`
collegeyuan
  • 浏览: 31518 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

用Castor 处理XML文档

 
阅读更多

Castor(http://castor.exolab..org/)是一种将Java对象和XML自动绑定的开源软件。

Castor可以完成Java和XML的相互转换

 

第一步:新建javabean(PosPoilcyHistoryChangeResponse )

  public class PosPoilcyHistoryChangeResponse {

 

//返回码

private String RetCode = "";

//返回信息

private String RetMsg = "";

 

private String PolicyNumber = "";

 

//保全业务笔数

private String preservationNumber;

//保全信息

private List<PreservationtDetail> prsList = new ArrayList<PreservationtDetail>();

 

//保单生效复效次数

private String InsPolicyEffRinst;

 

//保单生效复效信息

private List<InsPolicyDtDetail> InsPolicyDtList= new ArrayList<InsPolicyDtDetail>();

 

//保单保额变动次数

private String InsPolicyCvrChgNum;

//保单保额变动信息

private List<InsPolicyAplyDetail> InsPolicyAplyList = new ArrayList<InsPolicyAplyDetail>();

 

//理赔记录数

private String SetlOfClmsRcrdNum;

//理赔信息

private List<SetlOfClmsDetail> SetlOfClmsList= new ArrayList<SetlOfClmsDetail>();

public String getRetCode() {

return RetCode;

}

public void setRetCode(String retCode) {

RetCode = retCode;

}

public String getRetMsg() {

return RetMsg;

}

public void setRetMsg(String retMsg) {

RetMsg = retMsg;

}

public String getPolicyNumber() {

return PolicyNumber;

}

public void setPolicyNumber(String policyNumber) {

PolicyNumber = policyNumber;

}

public String getPreservationNumber() {

return preservationNumber;

}

public void setPreservationNumber(String preservationNumber) {

this.preservationNumber = preservationNumber;

}

public List<PreservationtDetail> getPrsList() {

return prsList;

}

public void setPrsList(List<PreservationtDetail> prsList) {

this.prsList = prsList;

}

public String getInsPolicyEffRinst() {

return InsPolicyEffRinst;

}

public void setInsPolicyEffRinst(String insPolicyEffRinst) {

InsPolicyEffRinst = insPolicyEffRinst;

}

public List<InsPolicyDtDetail> getInsPolicyDtList() {

return InsPolicyDtList;

}

public void setInsPolicyDtList(List<InsPolicyDtDetail> insPolicyDtList) {

InsPolicyDtList = insPolicyDtList;

}

public String getInsPolicyCvrChgNum() {

return InsPolicyCvrChgNum;

}

public void setInsPolicyCvrChgNum(String insPolicyCvrChgNum) {

InsPolicyCvrChgNum = insPolicyCvrChgNum;

}

public List<InsPolicyAplyDetail> getInsPolicyAplyList() {

return InsPolicyAplyList;

}

public void setInsPolicyAplyList(List<InsPolicyAplyDetail> insPolicyAplyList) {

InsPolicyAplyList = insPolicyAplyList;

}

public String getSetlOfClmsRcrdNum() {

return SetlOfClmsRcrdNum;

}

public void setSetlOfClmsRcrdNum(String setlOfClmsRcrdNum) {

SetlOfClmsRcrdNum = setlOfClmsRcrdNum;

}

public List<SetlOfClmsDetail> getSetlOfClmsList() {

return SetlOfClmsList;

}

public void setSetlOfClmsList(List<SetlOfClmsDetail> setlOfClmsList) {

SetlOfClmsList = setlOfClmsList;

}

 

 

}

第二步:将javaBean(PosPoilcyHistoryChangeResponse) 配置到castorMapping.xml

<?xml version="1.0" encoding="UTF-8"?>

 

<mapping>

</class>

<class name="com.siebre.itx.aia.PosPoilcyHistoryChangeResponse">

<map-to xml="ResponseDTO" />

<field name="RetCode"><bind-xml name="RetCode" /></field>

<field name="RetMsg"><bind-xml name="RetMsg" /></field>

<field name="PolicyNumber"><bind-xml name="PolicyNumber" /></field>

<field name="preservationNumber"><bind-xml name="preservationNumber" /></field>

<field name="InsPolicyEffRinst"><bind-xml name="InsPolicyEffRinst" /></field>

<field name="InsPolicyCvrChgNum"><bind-xml name="InsPolicyCvrChgNum" /></field>

<field name="SetlOfClmsRcrdNum"><bind-xml name="SetlOfClmsRcrdNum" /></field>

 

</class>

</mapping>

第三步:实现xml的解组

public static void main(String[] args) {

     //创建CastorMarshaller

     CastorMarshaller castorMarshaller = new CastorMarshaller();

     castorMarshaller.setMappingLocation(new ClassPathResource("AiaCastorMapping.xml",                           PosPoilcyHistoryChangeResponse.class));

     castorMarshaller.setIgnoreExtraElements(true);

     castorMarshaller.setIgnoreExtraAttributes(true);

     castorMarshaller.afterPropertiesSet();

 

     //读取要转换成javabean的xml

     FileInputStream input = new FileInputStream("response.xml")

     int length = input.available();

     byte[] buffer = new byte[length];

      input.read(buffer, 0, length);

 

      String  responseXML = new String(buffer);

 

     //将xml解组成对象

     SAXReader saxReader = new SAXReader();

     Document document = saxReader.read(new StringReader(responseXML));

     PosPoilcyHistoryChangeResponse nposbancaResDTO = (PosPoilcyHistoryChangeResponse)                           castorMarshaller.unmarshal(new DocumentSource(document));

     }

第四步:实现xml的编组

public static void main(String[] args) {

    CastorMarshaller castorMarshaller = getCastorMarshaller();

   //创建javaBean对象,并设值

    PosPoilcyHistoryChangeResponse nposbancaResDTO =                                        new PosPoilcyHistoryChangeResponseImpl();

     nposbancaResDTO.setRetCode(“aaa");

     nposbancaResDTO.setRetMes(“bbbb");

 

     DOMResult domResult = (DOMResult) new DomResultFactory().createResult(null);

     castorMarshaller.marshal(nposbancaResDTO , domResult);

     DOMReader domReader = new DOMReader();

     Document documentOut = domReader.read((org.w3c.dom.Document) domResult.getNode());

     

   //将javaBean编组成requestXMl

    StringWriter writer = new StringWriter();

    OutputFormat format = OutputFormat.createPrettyPrint();

     XMLWriter xmlWriter = new XMLWriter(writer, format);

     xmlWriter.write(documentOut);

     String requestXMl =  writer.toString();

}

 

分享到:
评论

相关推荐

    《用Castor 处理XML文档》学习笔记

    《用Castor处理XML文档》学习笔记 在IT行业中,数据交换和持久化是常见的需求,XML作为一种结构化的数据格式,被广泛用于这些场景。Castor是一个Java库,它提供了强大的XML到Java对象绑定功能,使得处理XML文档变得...

    castor解析xml与xsd校验xml

    2. **创建Java对象**:在使用Castor解析XML之前,你需要创建与XML文档结构相对应的Java类。这些类通常包含属性,它们对应于XML元素,而getters和setters则对应于元素的开始和结束标签。 3. **绑定映射文件**:创建...

    castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具

    1. **XML到Java对象的反序列化**: 当接收到XML数据时,Castor可以将XML文档解析成相应的Java对象。这个过程基于映射文件,其中定义了XML元素和Java类属性之间的对应关系。 2. **Java对象到XML的序列化**: 相反,当...

    castor :Java与xml互转示例---代码

    Castor是一个开源的Java库,它提供了一个强大的框架,用于在Java对象和XML文档之间进行映射和转换。这个库的使用使得数据序列化和反序列化变得简单,尤其是在处理复杂的对象模型时。本文将深入探讨如何使用Castor在...

    castor样例xml to bean和bean to xml样例

    - 数据绑定:Castor的核心是其数据绑定机制,它允许开发者定义XML Schema或XML文档与Java类的映射,从而简化XML的处理。 - 自动类型转换:Castor支持多种数据类型的自动转换,包括基本类型、复杂对象、集合和数组...

    castor1.4 xsd生成java

    在XML Schema(XSD)广泛应用于定义XML数据结构的今天,Castor提供了一个方便的方法,将XSD文件自动转化为Java类,使得开发者能够更轻松地处理XML数据。以下是关于"Castor 1.4 xsd生成java"的相关知识点: 1. **...

    castor 学习文档英文原版

    框架提供了将XML文档中的数据映射到Java对象和从Java对象映射回XML文档的能力。在1.1.3节中提到源和目标的概念,它们是映射过程中需要指定的XML文档和Java类。 Castor XML数据绑定还涉及XML映射的具体操作,这部分...

    castor-xml.jar

    解析wsdl文件的好帮手,和jdom.jar,wsdl4j.jar组合,能很好的解吸wsdl文件。

    castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2

    通过这个映射文件,Castor可以知道如何在Java对象和XML文档之间进行转换。映射文件的生成通常需要手动编写,但描述中的工具能够根据给定的XML报文自动生成这些映射文件,大大提高了开发效率。 "java对象一键生成...

    Castor的使用,如何将java object转换为xml

    2. **处理复杂结构**:如果XML文档有复杂的嵌套结构,Castor能够自动处理这些关系,将XML节点转化为对应的Java对象,包括集合类、继承结构等。 **四、Castor的其他特性** 1. **类型转换**:Castor支持多种数据类型...

    castor castor castor 资料

    7. **国际化与本地化**:Castor可以处理XML文档中的国际化信息,如使用不同的语言进行标签和属性的描述。 8. **API接口**:Castor提供了丰富的API接口,包括流式处理、DOM操作、SAX事件处理等,满足不同场景下的...

    castor-1.2解析XML

    1、xml格式文件的用法,我们学过的xml有两种用法:一,作为配置文件。二、作为数据存储文件。 其中作为数据存储文件有很多优点,比如,数据更加规范,数据校验等。 2、这个工具的功能:能够把xml文件存储的数据和...

    castor 框架jar包和src

    它提供了一种将XML文档转换为Java对象以及将Java对象序列化为XML的机制,从而简化了XML处理并促进了Java应用程序与XML数据之间的交互。下面将详细介绍Castor框架、jar包和源代码的相关知识点。 1. **Castor框架核心...

    xml的一个解析工具castor

    3. **支持复杂数据结构**:Castor能够处理各种复杂的Java数据结构,如集合、数组、嵌套对象以及自定义类,这使得它能够处理几乎任何类型的XML文档。 4. **JDBC映射**:Castor提供了直接将Java对象与数据库表进行...

    XML数据绑定【castor】

    3. **复杂数据类型支持**:Castor支持对嵌套对象、数组、集合等复杂数据类型的映射,使得处理层次结构复杂的XML文档变得容易。 4. **事件驱动和流式解析**:Castor提供了基于SAX和StAX的解析方式,适合处理大体积的...

    castor1-2(java and xml 数据绑定过程所需数据包)

    Castor是Java中一个强大的数据绑定框架,它允许开发者将XML文档与Java对象之间进行映射,从而实现XML数据的序列化和反序列化。在Java应用开发中,处理XML数据时,通常需要将XML文件内容转换为Java对象,或者将Java...

    castor1.3 完整jar包

    Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...

    Castor学习笔记 (转载)

    它提供了一种简单的方法来处理XML数据,将XML文档转换为Java对象,反之亦然,极大地简化了数据交换的工作。在这个学习笔记中,我们将深入探讨Castor的核心功能、使用场景以及其与XML绑定相关的技术。 1. Castor的...

    解决Castor使用时根节点问题

    Castor,全称为Java Content Repository (JCR) API的实现...遵循以上步骤,你就可以成功地处理带有根节点的XML文档,避免因缺少根节点而导致的Castor异常。记住,良好的XML结构和准确的映射配置是避免这类问题的关键。

Global site tag (gtag.js) - Google Analytics