最近项目中需求要将用户上传的xml文件信息导入数据库,项目中使用sun提供的jaxb来解析xml文件并生成java对象,本人根据项目应用和网上的一些评论总结了下
对jaxb的应用,欢迎板砖,废话不多说了
首先我们要从sun下载一个jaxb的压缩包,在命令行模式下,将目录转到jaxb-ri-20101209.jar,用命令java -jar jaxb-ri-20101209.jar
这样,在该目录下会生成一个文件夹jaxb-ri-20101209,文件夹中有bin,docs,lib,samples,看目录就应该明白,在此就不做解释了。
在命令行中进入到安装目录的bin文件夹下运行xjc指令,如果不出现“xjc”is not recogized。。。证明安装成功
使用xsd文件生成java类的方法
在命令行中进入文件夹jaxb-ri-20101209目录的bin文件夹
输入命令
xjc -d c:\test -p com.primeton.governor.dict.xmlloader c:\test\test.xsd
c:\test生成java类的目录
com.primeton.governor.dict.xmlloader生成java类的包路径
c:\test\test.xsd xsd文件的目录
例如
test.xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
<xs:element ref="servlet-mapping"/>
<xs:element ref="servlet-class"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="servlet-mapping">
<xs:complexType mixed="true">
<xs:attribute name="id" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="servlet-class">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="test"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="test" type="xs:integer"/>
</xs:schema>
生成的java类为
ObjectFactory.java
Resource.java
ServletClass.java
ServletMapping.java
其中一个java类Resource.java,@XmlAccessorType,@XmlType,这是给引擎使用的
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"servletMapping",
"servletClass"
})
@XmlRootElement(name = "resource")
public class Resource {
@XmlElement(name = "servlet-mapping", required = true)
protected ServletMapping servletMapping;
@XmlElement(name = "servlet-class", required = true)
protected ServletClass servletClass;
/**
* Gets the value of the servletMapping property.
*
* @return
* possible object is
* {@link ServletMapping }
*
*/
public ServletMapping getServletMapping() {
return servletMapping;
}
/**
* Sets the value of the servletMapping property.
*
* @param value
* allowed object is
* {@link ServletMapping }
*
*/
public void setServletMapping(ServletMapping value) {
this.servletMapping = value;
}
/**
* Gets the value of the servletClass property.
*
* @return
* possible object is
* {@link ServletClass }
*
*/
public ServletClass getServletClass() {
return servletClass;
}
/**
* Sets the value of the servletClass property.
*
* @param value
* allowed object is
* {@link ServletClass }
*
*/
public void setServletClass(ServletClass value) {
this.servletClass = value;
}
}
如何将xml文件转换为xsd文件
首先我们要从sun下载一个trang的压缩包,解压缩后会有一个trang.jar的文件
在命令行中进入trang.jar所在的目录,输入如下命令:
java -jar trang.jar XXX1.xml XXX2.xsd
XXX1.xml为当前文件夹目录下的xml文件,也是要转换的xml文件
XXX2.xsd文件为转换后的xsd文件
例如要转换的xml文件为test.xml
<resource>
<servlet-mapping id="sm">*.action</servlet-mapping>
<servlet-class name="sc">
TestListence
<test>1</test>
</servlet-class>
</resource>
转换为的xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
<xs:element ref="servlet-mapping"/>
<xs:element ref="servlet-class"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="servlet-mapping">
<xs:complexType mixed="true">
<xs:attribute name="id" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="servlet-class">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="test"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="test" type="xs:integer"/>
</xs:schema>
分享到:
相关推荐
使用jaxb根据xsd生成xml文档,不要积分的,赶快下载
用jaxb自动生成xsd对像的实例,简单易用
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
jaxb解析生成xml例子
使用jaxb生成XML例子,含有例子和注解解析
编写xsd文件,利用jaxb生成java类。
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。J2EE的开发者也许会需要一个符合XML模式的XML文档。Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类...
JAXB注解 java 关于xml的注解,自动生成xml文件
教你使用jaxb解析xml,介绍了主要的注解,以及核心api
NULL 博文链接:https://luyuwww.iteye.com/blog/1988355
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB与xml相互转换实例。
jaxb 将xml里面的对象转化为一个个类,大大地简化了xml的相关操作。unmarshal marshal
JAXB教程 JAXB JAXB插件 里面有很详细的使用说明,看了就知道,JAXB解析XML真的很好用
jaxb xml 转map
使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。
NULL 博文链接:https://xiongpan0807.iteye.com/blog/1832124
使用 JAXB 从 XML Schema 生成 Java 类 此存储库包含可从网站获得的教程的项目文件
jaxb xml转化为对象,对象转化为xml,xml转化为xsd,数据库表转化为对象
我刚写好的 一个简单的小程序 动行里面的read文件 是在idea 中用jaxb 读xml中数据