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

JAXB安装与编译器使用

阅读更多

JAXB (Java Architecture for XML Binding) 的主要功能是根据DTD或者XML SchemaXML Element转化为Java类。将XML文本流转化为Java Object,把XML Processing转化为对类的一些属性的访问。简单的来说,它可以让你轻松解析和验证XML内容而不用去写那些繁琐的XML解析代码。

 

JAXB 包含两个部分:

1, 第一部分:JAXB包含一个编译器,它读入DTD或者XML Schema,然后生成相等结构的Java Object Model. 这些生成的object model DOMSAX这些generalAPI更有针对性,更好的反映了Schema原本的结构。这样,使对XML内容的操作变得更为简单。

2, 第二部分:是操作JAXB时的API,你通过这个API来和生成的代码交互。这个API隐藏了JAXB内部操作的实现代码并且提供了统一的基本操作(如 marshalling unmarshalling)。
marshalling : 是将一个Java Object转化成XML text的过程。
unmarshalling : 是将XML text转化成相应的Java Object的过程。

 

更多参见:http://www.oracle.com/technetwork/articles/javase/index-140168.html

 

 

JAXB安装及使用

 

参考:http://franktiger.iteye.com/blog/998840

 

首先从sun下载一个jaxb的压缩包,在命令行模式下,将目录转到JAXB2_20110601.jar,用命令java jar JAXB2_20110601.jar 
这样,在该目录下会生成一个文件夹jaxb-ri-20110601,文件夹中有bindocslibsamples在命令行中进入到安装目录的bin文件夹下运行xjc指令,如果不出现xjcis not recogized。。。证明安装成功 

使用xsd文件生成java类的方法 
在命令行中进入文件夹jaxb-ri-20110601目录的bin文件夹 
输入命令 
xjc -d c:\test -p com.primeton.governor.dict.xmlloader c:\test\test.xsd 
生成包放在c:\test

com.primeton.governor.dict.xmlloader生成java类的包路径 
c:\test\test.xsd  xsd文件的路径

 

xsd文件是多个时,而且分配在不同的目录下时,使用xjc命令生成bean文件时那个xsd文件路径的参数可以填写文件目录即可自动搜索所有xsd文件。

 

示例xsd文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
			elementFormDefault="qualified" 
			targetNamespace="http://www.w3school.com.cn" 
			xmlns:ns1="http://www.w3school.com.cn" >
  <xs:element name="note">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ns1:to"/>
        <xs:element ref="ns1:from"/>
        <xs:element ref="ns1:heading"/>
        <xs:element ref="ns1:body"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="to" type="xs:string"/>
  <xs:element name="from" type="xs:string"/>
  <xs:element name="heading" type="xs:string"/>
  <xs:element name="body" type="xs:string"/>
</xs:schema>
 

 

xml文件转换为xsd文件 
首先从sun下载一个trang的压缩包,解压缩后会有一个trang.jar的文件 
在命令行中进入trang.jar所在的目录,输入如下命令: 
java -jar trang.jar XXX1.xml XXX2.xsd 
XXX1.xml为当前文件夹目录下的xml文件,也是要转换的xml文件 
XXX2.xsd文件为转换后的xsd文件  

注意:一般情况下,只经过这个步骤转化过来的文件还不能直接使用,需要对其中的数据类型等做调整。

 

示例xml文件:

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<note xmlns="http://www.w3school.com.cn">
    <to>jack1</to>
    <from>tom</from>
    <heading>this is heading</heading>
    <body>this is body</body>
</note>
 
分享到:
评论
1 楼 spp_1987 2016-01-26  
楼主, 有 操作 xsd 字符串 跟 xml 字符串 的吗?
传递数据,肯定是字符串。

相关推荐

    用JAXB生成一个XML

    Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类。用JAXB的xjc生成的Java类代表了在XML模式中不同的元素和复杂类型(complexType)。(一个复杂类型通过指定属性和元素内的元素来提供对...

    java反编译器

    jackson-annotations-2.2.1.jar jackson-core-2.2.1.jar jackson-core-asl-1.8.8.jar jackson-databind-2.2.1.jar jackson-mapper-asl-1.8.8.jar jackson-module-jaxb-annotations-2.2.1.jar

    wsdl2java源码-jaxb-visitor:jaxb-访问者

    编译器生成的所有 JAXB 对象。 该插件在 bean 中产生以下变化: 将 accept(Visitor) 添加到在访问者接口上调用适当方法的每个 bean 为每个 bean 创建带有访问方法的访问者接口 创建 Traverser 接口,用于使用 ...

    XML Prototype Compiler-开源

    XML原型编译器(PCX)是一种类似于JAXB的XML编译器。 它在输入中获取XML文件,并生成一组类,这些类能够读取给定类型的XML文件。 与JAXB不同,PCX没有可用于代码生成的元语言。 研究所

    maxb:XML绑定移动体系结构(MAXB)为IOS Objective-C和基于JAXB XJC的Android Java绑定编译器提供了XSD

    XML绑定移动体系结构(MAXB)为IOS Objective-C和基于JAXB XJC的Android Java绑定编译器提供了XSD。 ##注意MAXB最初是的fork。 (及相关项目: , 和 )是由开发的,2013年起一直保留。由于设计和实施都非常好,...

    jaxb2-rich-contract-plugin:实现一些JAXB插件以从XSD生成高级合同方案

    jaxb2-rich-contract-plugin 一组JAXB / XJC插件,可从XSD生成高级合同方案 当前版本:2.1.0 ... 它与-Ximmutable一起使用(请参见上文)特别有用,但与-Xconstrained-properties一起使用(请参见下文)不能一起

    jaxb-format-plugin:JAXB(用于XML绑定的Java API)架构到源代码编译器(XJC)的插件,该代码生成代码以通过XPath表达式格式化生成的类的实例-Form source code

    用于JAXB(用于XML绑定的Java API)架构到源代码的编译器(XJC)的插件,该代码生成代码以通过任意帮助程序类格式化生成的类的实例。 动机 XJC当前有多个插件,可以在生成的JAXB类文件中生成“ toString()”方法。...

    xjc-gradle-plugin:一个Gradle插件,用于运行XJC绑定编译器以从XSD架构生成JAXB Java源代码

    一个Gradle插件,用于运行XJC绑定编译器,以使用JAXB从XML模式(xsd文件)生成Java源代码。 要求和功能 该插件需要Gradle 5.6或更高版本。 它已通过Java 8和Java 12进行了测试。 它支持XJC版本2.3.2和更高版本...

    gradle-xjc-plugin:在构建过程中运行XJC绑定编译器的Gradle插件

    Gradle XJC插件从Gradle构建中调用xjc绑定编译器。特征为项目中的每个源集自动启用XJC代码生成通过类路径隔离支持不同版本的XJC 制作和消费剧集具有maven:和classpath: URI解析的目录(类似于maven-jaxb2-plugin)...

    JiBx开发入门指南

    而JiBx使用java字节码enhance技术,不像jaxb等更多在于源代码生成技术。JiB的工作主要在于前期,也就是进行字节码绑定,这一部分基本上都是在编译器完成的。在运行期,不需要任何的配置,由于字节码已经嵌入java类中...

    legstar-core2:大型机COBOL和Java开放世界集成

    尽管仍支持JAXB,但该API应该可以在完全没有JAXB的环境中使用提供一个验证API,该API可以预先检查主机数据是否与给定的COBOL抄写本兼容非目标与legstar的向后兼容性。 API V2不兼容。 与legstar完全等效。 很少使用...

    greenmail-spring-1.4.0.zip

    immutable-xjc.zip,JAXB 2模式到Java编译器插件,用于使模式派生类不可变。IMRAMABLE XJC是一个JAXB 2 XJC插件,用于用可选的生成器模式生成器使模式派生类不可变。

    jaxme-0.3.jar.zip

    l JaxMe是JAXB(Java/XML绑定规范)的开源实现 l Java/XML绑定编译器的输入是模式描述:大多数是XML模式,也可以是DTD、RelaxNG模式、通过反射的JavaBean或数据库模式 l 输出是一系列Java类: Ø 兼容模式描述的...

    3D-MathematicalVisualization.zip

    它使用jaxb解析器解析xml,xjc(绑定编译器)生成类,然后javafx生成3d动画。,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。

    matlab集成c代码-sierra-ecg-tools:与飞利浦SierraECGXML格式配合使用的工具

    与飞利浦Sierra ECG XML格式配合使用的工具。 介绍 该项目为Philips Sierra ECG XML格式(v。1.03、1.04和1.04.01)提供了读者的参考实现,尤其着重于。 原料药 当前有以下示例库: C / C ++ C# Java 节点JS Amazon...

    Java Object Binding-开源

    一个完全用 Java 编写的 API,用于将 xml 文档绑定到 Java 对象。 与将模式绑定到类的 JAXB 不同,JOB 使用一组规范将普通 Java 对象绑定到普通 xml 文档。 不涉及模式编译器。

    matlab集成c代码-sierra-ecg:塞拉-心电图

    与飞利浦Sierra ECG XML格式配合使用的工具。 介绍 该项目为Philips Sierra ECG XML格式(v。1.03、1.04和1.04.01)提供了读者的参考实现,尤其着重于。 原料药 当前有以下示例库: C / C ++ C# Java 节点JS Amazon...

    [Java参考文档].JDK_API 1.6

    javax.xml.bind.annotation.adapters XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用。 javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的...

    Java 1.6 API 中文 New

    javax.xml.bind.annotation.adapters XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用。 javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的...

    java-new-features:Java 6,7,8 中的新特性

    编译器API JAXB 2.0 XML 数字签名 信号量 Java7: 钻石算子 switch 语句中的字符串 catch语句中的多个异常 数字文字中的下划线 Java 8: Lambda 表达式 流 功能接口 默认方法 可选的 Java时间 纳斯洪 Base64 ...

Global site tag (gtag.js) - Google Analytics