`
oklook249900241
  • 浏览: 26739 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Betwixt将javaBean生成xml

阅读更多

 

The Betwixt library provides an XML introspection mechanism for mapping beans to XML in a flexible way. It is implemented using an XMLIntrospector and XMLBeanInfo classes which are similar to the standard Introspector and BeanInfo from the Java Beans specification. (提供XML与JAVABEAN间的相互映射。)
 
将javaBean生成Xml的步骤:
1.       要产生的 目标xml:
<?xml version='1.0' ?>
 <note>
    <to>fdfdf</to>
    <from name="frof"></from>
    <heading name="tesdd"></heading>
    <body name="fdfddf"></body>
 </note>
2.而原始javaBean的信息为:
package betwixt;
 
public class NoteBean {
 
    private String toWho ;
 
    private String fromWho ;
 
    private String title ;
 
    private String note ;
 
    public NoteBean() {
    }
 
    public String getFromWho() {
       return fromWho ;
    }
 
    public void setFromWho(String fromWho) {
       this . fromWho = fromWho;
    }
 
    public String getNote() {
       return note ;
    }
 
    public void setNote(String note) {
       this . note = note;
    }
 
    public String getTitle() {
       return title ;
    }
 
    public void setTitle(String title) {
       this . title = title;
    }
 
    public String getToWho() {
       return toWho ;
    }
 
    public void setToWho(String toWho) {
       this . toWho = toWho;
    }
 
}
 
2.       撰写 .betwixt ,文件名需和 bean 相同,故为 NoteBean. betwixt
<info primitiveTypes="element">
 <element name="note">
    <element name="to" property="toWho" />
      <element name="from">
        <attribute name="name" property="fromWho"/>
    </element>
        <element name="heading">
        <attribute name="name" property="title"/>
    </element>
        <element name="body">
        <attribute name="name" property="note"/>
    </element>
 <!--   <addDefaults />-->
 </element>
</info>
 
注意:  a. <element name="to" property="toWho" />
              表示 name 要显示的 xml 中的元素名 , property 表示对应 javaBean 中一个属性名,其值显示在 <></> 里面。
       b. <element name="from">
        <attribute name="name" property="fromWho"/>
    </element>
中间加: <attribute name="name" property="fromWho"/>
    表示会在在结点上加一个属性为 name ,其值显示在里面。
       c. <addDefaults /> 加上默认的结点,是以 javaBean 中的属性来显示。
3. 写测试代码:
import java.io.StringWriter;
import org.apache.commons.betwixt.io.BeanWriter;
public class WriteExampleApp {
 
    /**
     * Create an example bean and then convert it to xml.
     */
    public static final void main(String [] args) throws Exception {
       
        // Start by preparing the writer
        // We'll write to a string
        StringWriter outputWriter = new StringWriter();
       
        // Betwixt just writes out the bean as a fragment
        // So if we want well-formed xml, we need to add the prolog
        outputWriter.write( "<?xml version='1.0' ?>" );
       
        // Create a BeanWriter which writes to our prepared stream
        BeanWriter beanWriter = new BeanWriter(outputWriter);
       
        // Configure betwixt
        // For more details see java docs or later in the main documentation
        beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives ( false );
        beanWriter.getBindingConfiguration().setMapIDs( false );
      
        beanWriter.enablePrettyPrint();  // 启用缩进格式 .
 
        beanWriter.setEndTagForEmptyElement( true );
       // beanWriter.setIndent("/t");
 
        beanWriter.writeXmlDeclaration( "" );
        NoteBean test= new NoteBean();
        test.setToWho( "fdfdf" );
        test.setFromWho( "frof" );
        test.setTitle( "tesdd" );
        test.setNote( "fdfddf" );
       
        // If the base element is not passed in, Betwixt will guess
        // But let's write example bean as base element 'person'
        beanWriter.write( "note" , test);
       
        // Write to System.out
        // (We could have used the empty constructor for BeanWriter
        // but this way is more instructive)
        System. out .println(outputWriter.toString());
       
        // Betwixt writes fragments not documents so does not automatically close
        // writers or streams.
        // This example will do no more writing so close the writer now.
        outputWriter.close();
    }
}

轉載來自:http://blog.csdn.net/pengchua/article/details/1955405

<!--EndFragment-->

分享到:
评论

相关推荐

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    本教程将通过一个具体的例子,讲解如何使用Betwixt将XML数据转换为Java Bean,特别是处理XML中相同节点名的情况。 首先,我们需要了解Betwixt的基本概念。Betwixt基于JavaBeans规范,通过反射和注解来实现XML和Java...

    javabean和xml互相转换工具类以及jar包

    - **使用Apache Commons Betwixt**:与转换过程类似,Betwixt提供了从XML到JavaBean的反向映射功能。 在实际应用中,`Bean2xml.java`可能是一个工具类,它封装了上述转换逻辑。这个类可能包含静态方法,如`...

    betwixt互相转换JavaBean和XML(含代码和jar包)

    本资料用于JavaBean和XML之间相互转换,所用到的关于betwixt的包都在内。方法写在textXml中,由于默认的方法较为简单,且有局限性,所以本资料主要侧重从自定义的配置文件中转换xml或者生成javaBean.有兴趣的朋友...

    XML操作之betwixt

    Betwixt是Apache软件基金会的一个项目,它提供了一个简单而直观的方式来映射XML文档到Java对象,以及将Java对象转换回XML。通过使用Betwixt,开发者可以轻松地在XML与Java对象之间进行数据交换,简化了XML处理的复杂...

    betwixt互相转换JavaBean和XML(含代码和jar包).rar

    本资料用于JavaBean和XML之间相互转换,所用到的关于betwixt的包都在内。方法写在textXml中,由于默认的方法较为简单,且有局限性,所以本资料主要侧重从自定义的配置文件中转换xml或者生成javaBean.有兴趣的朋友...

    使用betwixt进行xml与java类之间的互转解析--代码

    本篇文章将深入探讨如何使用Betwixt库实现XML与Java类之间的互转解析。 首先,我们需要理解Betwixt的基本概念。Betwixt是一个XML绑定工具,它允许开发者通过注解或XML配置文件来映射XML结构与Java类的属性。这种...

    java使用commons-betwixt 实现bean与xml互转

    本篇文章将深入探讨如何使用Commons Betwixt进行这种互换操作。 一、Apache Commons Betwixt简介 Apache Commons Betwixt是Apache软件基金会的一个项目,它为Java开发者提供了一种直观的方式来绑定Java Bean和XML。...

    xml操作之betwixt实例

    本文将通过一个具体的Betwixt实例,来深入探讨如何使用这个库进行XML操作。首先,我们需要了解Betwixt的核心概念:绑定(Binding)。绑定是Betwixt中将Java类与XML元素或属性关联的过程。通过定义绑定,我们可以指定...

    commons-betwixt-0.5-src.zip_ObjectStringConvert_commons-betwixt_

    Betwixt的工作原理是通过分析JavaBean的公共属性来生成XML表示,同时也能够根据XML文档的结构实例化相应的Java对象。这种映射机制使得开发者无需手动编写大量的XML解析和序列化代码,降低了出错的可能性,也提高了...

    xstream和betwixt对xml、object的互转

    为了方便地将Java对象与XML进行转换,开发者常常使用一些库,如XStream和Betwixt。这两个工具都提供了简单易用的API,帮助我们实现XML到对象(Object-to-XML)和对象到XML(XML-to-Object)的转换。 **XStream** ...

    betwixt文件解析bai

    5. **反序列化XML**: 如果需要将Java对象转换回XML,可以使用`XMLBeans`的`write`方法,传入Java对象和输出流,生成对应的XML文件。 在提供的文件列表中,虽然只有一个名为`test`的文件,这通常是一个测试用例。这...

    betwixt详细使用说明

    Betwixt 是一个开源的 Java 库,它主要用于将 Java 对象(beans)转换为 XML 文档,并且可以反向将 XML 文档转换回 Java 对象。这个库是 Apache Commons 项目的一部分,旨在简化对象与 XML 之间的映射过程。在本文中...

    xml转换java对象

    通过使用Betwixt,开发者可以轻松地将XML文档解析为Java对象,或者将Java对象序列化为XML文档。这极大地简化了数据交换和持久化的过程。 在本例子中,我们使用的版本是`commons-betwixt-0.8.jar`。这个库包含了一组...

    commons-betwixt-0.8.rar源文件及jar包

    2. **智能默认值**:在没有显式映射规则时,Betwixt会使用默认策略来生成XML,如使用字段名作为元素标签,字段值作为文本内容。 3. **自定义转换器**:你可以定义自己的转换器来处理特定类型的字段,比如日期、货币...

    commons-betwixt-0.8的相关文件

    2. **实例化**: 使用Betwixt的`XMLBeanInfo`或`BeanWriter`类来读取或写入XML数据。 3. **序列化与反序列化**: `BeanWriter`可以将Java对象转换为XML字符串或写入XML文件,而`BeanReader`则能从XML输入源创建Java...

    betwixt技术

    "Betwixt技术"是一种基于Java的XML绑定工具,它允许开发者将XML文档与Java对象之间进行映射。这项技术是由Apache软件基金会下的Jakarta项目开发的,目的是简化XML数据的处理,使得XML文档可以方便地在Java应用程序中...

    webservice接口开发obj2xml.zip

    在"obj2xml"的示例中,我们首先需要了解如何配置和使用Betwixt来将Java对象转换为XML文档。以下是一般的步骤: 1. **引入依赖**:为了使用Apache Commons Betwixt,你需要在项目中引入对应的JAR文件,这里提到的是`...

    Java序列化技术的探讨.pdf

    在这种情况下,经常修改XML模板,可以使用JAXB来生成Java类,并将XML文档映射到Java对象中。 Java序列化技术有多种选择,每种技术都有其优缺,选择合适的序列化技术框架取决于实际应用场景和需求。

    commons.rar

    通过简单的注解或XML映射文件,Betwixt可以理解对象结构,并生成相应的XML表示,反之亦然。这种方式使得XML处理变得更加直观和易于维护。 除了这两个特定的组件,Apache Commons项目还包括许多其他模块,如IO、...

    commons-betwixt-0.8.jar

    commons-betwixt-0.8.jar

Global site tag (gtag.js) - Google Analytics