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,特别是处理XML中相同节点名的情况。 首先,我们需要了解Betwixt的基本概念。Betwixt基于JavaBeans规范,通过反射和注解来实现XML和Java...
- **使用Apache Commons Betwixt**:与转换过程类似,Betwixt提供了从XML到JavaBean的反向映射功能。 在实际应用中,`Bean2xml.java`可能是一个工具类,它封装了上述转换逻辑。这个类可能包含静态方法,如`...
本资料用于JavaBean和XML之间相互转换,所用到的关于betwixt的包都在内。方法写在textXml中,由于默认的方法较为简单,且有局限性,所以本资料主要侧重从自定义的配置文件中转换xml或者生成javaBean.有兴趣的朋友...
Betwixt是Apache软件基金会的一个项目,它提供了一个简单而直观的方式来映射XML文档到Java对象,以及将Java对象转换回XML。通过使用Betwixt,开发者可以轻松地在XML与Java对象之间进行数据交换,简化了XML处理的复杂...
本资料用于JavaBean和XML之间相互转换,所用到的关于betwixt的包都在内。方法写在textXml中,由于默认的方法较为简单,且有局限性,所以本资料主要侧重从自定义的配置文件中转换xml或者生成javaBean.有兴趣的朋友...
本篇文章将深入探讨如何使用Betwixt库实现XML与Java类之间的互转解析。 首先,我们需要理解Betwixt的基本概念。Betwixt是一个XML绑定工具,它允许开发者通过注解或XML配置文件来映射XML结构与Java类的属性。这种...
本篇文章将深入探讨如何使用Commons Betwixt进行这种互换操作。 一、Apache Commons Betwixt简介 Apache Commons Betwixt是Apache软件基金会的一个项目,它为Java开发者提供了一种直观的方式来绑定Java Bean和XML。...
本文将通过一个具体的Betwixt实例,来深入探讨如何使用这个库进行XML操作。首先,我们需要了解Betwixt的核心概念:绑定(Binding)。绑定是Betwixt中将Java类与XML元素或属性关联的过程。通过定义绑定,我们可以指定...
Betwixt的工作原理是通过分析JavaBean的公共属性来生成XML表示,同时也能够根据XML文档的结构实例化相应的Java对象。这种映射机制使得开发者无需手动编写大量的XML解析和序列化代码,降低了出错的可能性,也提高了...
为了方便地将Java对象与XML进行转换,开发者常常使用一些库,如XStream和Betwixt。这两个工具都提供了简单易用的API,帮助我们实现XML到对象(Object-to-XML)和对象到XML(XML-to-Object)的转换。 **XStream** ...
5. **反序列化XML**: 如果需要将Java对象转换回XML,可以使用`XMLBeans`的`write`方法,传入Java对象和输出流,生成对应的XML文件。 在提供的文件列表中,虽然只有一个名为`test`的文件,这通常是一个测试用例。这...
Betwixt 是一个开源的 Java 库,它主要用于将 Java 对象(beans)转换为 XML 文档,并且可以反向将 XML 文档转换回 Java 对象。这个库是 Apache Commons 项目的一部分,旨在简化对象与 XML 之间的映射过程。在本文中...
通过使用Betwixt,开发者可以轻松地将XML文档解析为Java对象,或者将Java对象序列化为XML文档。这极大地简化了数据交换和持久化的过程。 在本例子中,我们使用的版本是`commons-betwixt-0.8.jar`。这个库包含了一组...
2. **智能默认值**:在没有显式映射规则时,Betwixt会使用默认策略来生成XML,如使用字段名作为元素标签,字段值作为文本内容。 3. **自定义转换器**:你可以定义自己的转换器来处理特定类型的字段,比如日期、货币...
2. **实例化**: 使用Betwixt的`XMLBeanInfo`或`BeanWriter`类来读取或写入XML数据。 3. **序列化与反序列化**: `BeanWriter`可以将Java对象转换为XML字符串或写入XML文件,而`BeanReader`则能从XML输入源创建Java...
"Betwixt技术"是一种基于Java的XML绑定工具,它允许开发者将XML文档与Java对象之间进行映射。这项技术是由Apache软件基金会下的Jakarta项目开发的,目的是简化XML数据的处理,使得XML文档可以方便地在Java应用程序中...
在"obj2xml"的示例中,我们首先需要了解如何配置和使用Betwixt来将Java对象转换为XML文档。以下是一般的步骤: 1. **引入依赖**:为了使用Apache Commons Betwixt,你需要在项目中引入对应的JAR文件,这里提到的是`...
在这种情况下,经常修改XML模板,可以使用JAXB来生成Java类,并将XML文档映射到Java对象中。 Java序列化技术有多种选择,每种技术都有其优缺,选择合适的序列化技术框架取决于实际应用场景和需求。
通过简单的注解或XML映射文件,Betwixt可以理解对象结构,并生成相应的XML表示,反之亦然。这种方式使得XML处理变得更加直观和易于维护。 除了这两个特定的组件,Apache Commons项目还包括许多其他模块,如IO、...
commons-betwixt-0.8.jar