xmlBean学习

[size=large][b]XmlBeans简介[/b][/size]
XMLBeans是完全与模式兼容的XML-Java绑定 工具,使用这个工具可以以对Java友好的方式访问XML的全部特性。XMLBeans提供了一个通过schema处理xml的方法。通过XMLBeans我们通过编译schema(.xsd)产生不同的java类。并且XMLBeans把这些java类和xml 文档实例进行了绑定。这样XMLBeans就根据xml schema 为你就自动地生成了对这xml文档进行访问操作修改的java类(jar包)。通过这个jar包中类,你可以完成如:读取xml文档内容并包装成对象。查询、添加修改删除xml文档对象。
[size=large][b]XmlBeans的几个特点[/b][/size]
基于java 对象机制通过xml schema 自动生成映射的java对象结构。
 这些java对象之间的关系与xml schema 对应的元素关系完全一致。
 xmlbean 提供了一组api 来完成对映射对象的操纵和修改,从而完成对xml数据的操纵与修改。
 访问xml数据方便快速。

[size=large][b]XmlBeans使用[/b][/size]
1. 下载XmlBeans,配置环境变量
2. 生成Schema(.xsd)文件
可以手动编写,也可以使用XMLSPY和 Stylus Studio等一些工具通过xml文件来生成Schema文件
3. 利用scomp(XMLBean提供的一个编译工具)将Schema文件生成java classes文件和jar文件
Scomp的语法:
scomp [options] [dirs]* [schemaFile.xsd]* [service.wsdl]* [config.xsdconfig]*

主要参数说明:
-src [dir] -- 生成的Java Classes存放目录
-srconly -- 不编译Java Classes,不产生Jar文件
-out [jarFileName] -- 生成的Jar文件,缺省是xmltypes.jar
-compiler -- Java编译器的路径,即Javac的位置
schemaFile.xsd -- XML Schema文件位置
config.xsdconfig -- xsdconfig文件的位置, 这个文件主要用来制定生成的Java Class
的一些文件名规则和Package的名称,如包package是com.test

如:scomp –src src –out testXmlBean.jar test.xsd test.xsdconfig

4. 新建java Project,将XmlBeans和生成的jar文件加入到Project的ClassPath,利用XmlBeans读/写/修改/删除Xml文档对象

[size=large][b]XML Schema[/b][/size]
一、 xml Schema的用途
 定义一个Xml文档中都有什么元素
 定义一个Xml文档中都会有什么属性
 定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序
 定义元素或者属性的数据类型
 定义元素或者属性的默认值或者固定值

二、 xml Schema根元素
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示数据类型等定义来自w3
targetNamespace="http://www.w3schools.com" 表示文档中要定义的元素来自什么命名空间
xmlns="http://www.w3schools.com"表示此文档的默认命名空间是什么
elementFormDefault="qualified"> 表示要求xml文档的每一个元素都要有命名空间指定
……定义主体部分……
</xs:schema>

三、 定义简单元素【元素实例:<color>red</color>】
<xs:element 此处表示要定义一个元素
name=”color” 表示要定义元素的名称
type=”xs:string” 表示要定义元素的数据类型
default=”red” 表示定义元素的默认值
fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值

四、 定义一个属性
<xs:attribute
name=”birthday” 表示要定义属性的名字
type=”xs:date” 表示要定义属性的数据类型
default=”2001-01-11” 表示要定义属性的默认值
fixed=”2001-01-11” 表示要定义属性的固定值
use=”required”/> 表示此属性是否是必须指定的,即如果不指定就不符合Schema,默认没有use=”required”属性表示属性可有可无

五、 元素/属性值的限定
限定 描述
enumeration 定义可接受值的一个列表
fractionDigits 定义所允许的最大的小数位数。必须大于等于0。
length 定义所允许的字符或者列表项目的精确数目。必须大于或等于0。
maxExclusive 定义数值的上限。所允许的值必须小于此值。
maxInclusive 定义数值的上限。所允许的值必须小于或等于此值。
maxLength 定义所允许的字符或者列表项目的最大数目。必须大于或等于0。
minExclusive 定义数值的下限。所允许的值必需大于此值。
minInclusive 定义数值的下限。所允许的值必需大于或等于此值。
minLength 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。
pattern 定义可接受的字符的精确序列。
totalDigits 定义所允许的阿拉伯数字的精确位数。必须大于0。
whiteSpace 定义空白字符(换行、回车、空格以及制表符)的处理方式。

六、 定义复杂类型(参考W3School中Schema复合类型)

七、 7种指示器
 Order(顺序)指示器
All规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次
choice 指示器规定可出现某个子元素或者可出现另外一个子元素(非此即彼)
sequence 规定子元素必须按照特定的顺序出现
 Occurrence 指示器(定义某个元素出现的频率)
maxOccurs 指示器可规定某个元素可出现的最大次数
minOccurs 指示器可规定某个元素能够出现的最小次数
 Group 指示器(用于定义相关的数批元素)
元素组 通过 group 声明进行定义
必须在 group 声明内部定义一个 all、choice 或者 sequence 元素
如:
<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
属性组 通过 attributeGroup 声明来进行定义
如:
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值