`
oaklet
  • 浏览: 109059 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用XMLBeans简化XML操作

    博客分类:
  • java
阅读更多
环境:
jdk1.5.0_12
xmlbeans-2.2.0

简介
XMLBeans是Bea公司的一个项目,用于访问和处理数据和文档。使用XMLBeans可以让您用面向对象的观点来对待和处理xml数据和文档,同时又可以忠实于该xml数据对应的xml结构和schema。这里简单的介绍了XMLBeans,并且给出了一个简单的例子。 XMLBeans来自于Bea,是使用java技术访问和处理XML数据和文档技术的一次突破性进展。第一次,开发者可以用自己熟悉的、方便的、面向对象的视图来看待XML数据,同时又可以访问该数据对应的结构和schema。

XMLBeans 面临着传统解析和绑定技术的竞争,如 DOM、SAX、JAXB 和 Castor,但 XMLBeans 有一些独到之处。它们的比较如下:
  • DOM 在内容中生成整个文档的树。如果文档非常大,DOM 就会变得对内存非常敏感,并会显著降低性能。通过增量解组(incremental unmarshalling)并提供 xget 方法来访问内置的模式数据类型,XMLBeans 取得了较好的性能。
  • 与 DOM 相比,SAX 对内存要求不高,但是 SAX 要求开发人员为事件处理程序编写回调方法,而 XMLBeans 则不需要。
  • 与 XMLBeans 类似,JAXB 和 Castor 也都是 XML/Java 绑定技术,但它们都没有提供百分之百的模式支持。XMLBeans 最大的优势之一是几乎百分之百的支持 XML Schema。此外,XMLBeans 还能够访问完整的 XML Infoset,对于强调元素顺序或者注释的应用程序,这一点特别有用。
  • XMLBeans 还提供了解析 XML 实例的即时验证。
  • XMLBeans 包括一些创新的特性,如 XML 游标和对 XQuery 的支持。如果开发人员需要处理复杂的 XML 模式和需要更多的本机支持(比如访问完整的 XML Infoset),那么 XMLBeans 是无可替代的。


知道了xml相当于会浏览数据库的表
知道了xpath相当于知道了sql
知道了schema相当于知道建表了

一个简单的例子:
<?xml version="1.0" encoding="GBK"?>
<circle xmlns:an="http://www.an.net/shape" name="demoCircle">
	<center>
		<x>155</x>
		<y>231</y>
	</center>
	<radius>15.59</radius>
</circle>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:an="http://www.an.net/shape" 
targetNamespace="http://www.an.net/shape" elementFormDefault="qualified">
	<xs:element name="circle">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="center" type="an:PointType"/>
				<xs:element name="radius" type="xs:double"/>
			</xs:sequence>
			<xs:attribute name="name" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="PointType">
		<xs:sequence>
			<xs:element name="x" type="xs:nonPositiveInteger"/>
			<xs:element name="y" type="xs:nonPositiveInteger"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

编译成jar包,命令类似下面:
D:\Apache\xmlbeans-2.2.0\bin\scomp -out myshape.jar myshape.xsd

import net.an.shape.CircleDocument;
import net.an.shape.PointType;
import java.io.File;

public class MyShapeTest {
  public static void main(String[] args) throws Exception {
    File input = new File("myshape.xml");
    CircleDocument circleDoc = CircleDocument.Factory.parse(input);
    CircleDocument.Circle circle = circleDoc.getCircle();
    String name = circle.getName();
    double radius = circle.getRadius();
    PointType center = circle.getCenter();
    System.out.printf("circle: %s, certer: x=%d y=%d, radius=%.3f\n",
      name,center.getX(),center.getY(),radius);
  }
}

输出如下:
circle: demoCircle, certer: x=155 y=231, radius=15.590
Press any key to continue...
总结
XMLBeans是Bea公司的一个公开源代码项目,以Schema为基础建立的、访问xml的一种解决方法,提供了访问和处理xml数据和文档时既可以完全的访问xml的内容、又不丢失xml的schema信息的强大功能。使用XMLBeans可以让您用面向对象的观点来对待和处理xml数据和文档,同时又可以忠实于该xml数据对应的xml结构和schema。
分享到:
评论

相关推荐

    论文研究-XMLBEANS简化Java对XML编程的应用研究 .pdf

    XMLBEANS简化Java对XML编程的应用研究,刘永环,,XMLBeans是把java类和xml 文档实例进行绑定的一种技术。XMLBean提供了很多种方法操纵XML,其中主要包括JavaBeans 、XML Cursor、XQuery。本文首先��

    XmlBeans 使用简介

    本文档将为读者介绍 XmlBeans 的使用简介,包括 XmlSchema 的制作相关知识,以及如何使用 XmlBeans 工具在 Java 中轻松读写 XML。 一、XmlSchema 简介 XmlSchema 是一种基于 XML 的架构定义语言,用于定义 XML ...

    xmlbeans.jar

    XMLBeans的使用极大地简化了XML数据的处理,特别是在大型项目中,如Web 2.0应用,如描述中提到的s2(Struts 2)、s2(可能是另一个框架的缩写)和h3(可能是Hibernate 3)的场景。 XMLBeans的工作原理基于一种称为...

    xmlbeans的jar包

    3. **xbean.jar**:这是XMLBeans的核心库,它实现了XML Schema到Java类的映射,以及对XML数据的操作。XBean提供了API和工具,可以将XML Schema编译成Java代码,使得程序可以直接操作XML文档的结构。 4. **xbean_...

    XML、Java 与 XMLBeans 结合应用的商业价值

    XMLBeans提供的Api,如XmlObject、XmlCursor和SchemaType,分别提供了对XML实例的高级访问、低级别操作和模式元数据的访问,简化了XML在Java应用中的使用。 使用XMLBeans有以下几个显著优点: 1. **减少重复工作**...

    XmlBeans学习

    这样,我们就可以像操作普通的Java对象一样来处理XML数据,大大简化了XML文档的处理流程。 在“XMLBeans处理XML数据和文档入门”中,初学者会了解到如何创建和加载XML Schema,以及如何基于Schema生成Java类。一旦...

    Java XML绑定技术 (Castor JAXB XMLBeans)

    通过使用这些技术,开发人员可以将复杂的XML文档转换为易于理解和操作的Java对象,大大简化了XML的处理流程。 #### 三、JAXB JAXB(Java Architecture for XML Binding)是Sun Microsystems(现已被Oracle收购)...

    xmlbeans

    综上所述,XMLBeans是一个强大的工具,它通过将XML Schema转换为Java类,简化了XML数据的处理。然而,理解和有效地利用XMLBeans需要对XML Schema和Java编程有深入的理解。在实际项目中,根据具体需求选择合适的XML...

    xmlbeans-2.4.0完整工具包

    这样,开发者可以像操作普通的Java对象一样操作XML数据,无需直接与DOM或SAX等底层API打交道,大大简化了XML处理的复杂性。 在2.4.0版本中,XMLBeans引入了一些关键特性: 1. **代码生成**:XMLBeans提供了命令行...

    org.apache.xmlbeans jar包

    这个库的核心功能是将XML Schema(XSD)转换为Java类,允许开发者通过对象模型与XML数据进行交互,从而简化XML在Java应用程序中的使用。在本案例中,"org.apache.xmlbeans.jar" 是XMLBeans库的实现,它是Java开发中...

    xmlbeans2.6.0.jar.zip

    XMLBeans的核心理念是基于XML Schema生成Java类,这些类可以像操作普通Java对象一样来操作XML数据,极大地简化了XML处理的复杂性。 XMLBeans 2.6.0的关键特性包括: 1. **XML Schema支持**:XMLBeans能够根据XML ...

    xmlbeans 2.0

    在使用XMLBeans 2.0时,开发者需要注意它可能不包含最新的XML Schema特性或性能改进,因此对于新项目,可能会考虑使用更新的XML处理库。然而,对于那些依赖XMLBeans 2.0的旧项目,了解并熟练掌握它的特性和用法至关...

    xmlbeans 使用源码 自己的一个工具,嘿嘿非常实用

    从标题和描述来看,这似乎是一个个人创建的、基于XMLBeans的实用工具,用于简化XML操作。 XMLBeans的工作原理是通过编译XML Schema(XSD)文件来生成对应的Java类,这些Java类可以直接被Java程序使用,从而实现了...

    xmlbeans-2.6.0.zip

    无论是处理XML文档,还是与XML Schema相关的数据操作,XMLBeans都能提供方便的API和工具支持。通过深入学习和熟练掌握XMLBeans,开发者可以提升XML处理能力,更轻松地应对XML在实际项目中的各种挑战。

    xmlbeans-2.5.0.jar

    总的来说,XMLBeans是一个强大的工具,它简化了XML处理,提高了开发效率,并且提供了类型安全的接口,适合那些需要频繁处理XML数据的Java应用。但同时,由于其基于XML Schema的特性,对于不需要严格类型检查或者对...

    xmlbeans-bin-4.0.0-20201016.zip

    1. **XMLBeans概念**:XMLBeans是基于Java的XML处理技术,它将XML Schema转换为Java类,使得XML数据可以像操作普通Java对象一样进行处理。这种映射方式提高了开发效率,简化了XML数据的读取和写入。 2. **Schema...

    xmlbeans-bin-3.1.0.zip

    - **XML配置文件**:处理XML配置文件,如Spring框架的配置文件,XMLBeans能简化操作。 6. **集成与部署** - **Maven依赖**:如果项目使用Maven构建,可以通过添加XMLBeans的Maven依赖来引入库。 - **JAR包导入**...

    xmlbeans-2.5.0

    与其他XML处理技术如DOM、SAX、StAX相比,XMLBeans提供了一种面向对象的方式来处理XML,简化了开发流程,并提供了更好的性能保障。然而,如果处理的XML文档非常大,或者需要高度定制的解析逻辑,可能需要权衡其内存...

    使用 XMLBeans 在 Apache Geronimo 中部署 SOA 应用程序

    XMLBeans 是一种高级的 XML-Java 绑定技术,它使得开发者可以像操作 JavaBean 一样操作 XML 结构。这项技术极大地简化了面向服务架构(SOA)的应用程序开发,减少了开发和测试的时间,提高了服务交付的敏捷性。...

    xmlbeans-2.6.jar_poi_hhh

    XMLBeans的工作原理是将XML Schema转换为Java类,这些类可以直接被Java程序使用,从而简化了XML的处理。在处理Excel的XSSF工作簿时,XMLBeans可以将Excel的XML结构映射到相应的Java对象,使得对Excel数据的操作变得...

Global site tag (gtag.js) - Google Analytics