xml与java对象映射

JAXB提供了XML到java对象(类)之间的相互映射(转换),我们可以利用JAXB来消除繁琐的XML解析工作。

下面是引用oracle网站中有关jaxb的一句话。

 

Now developers have another Java API at their disposal that can make it easier to access XML documents: Java Architecture for XML Binding (JAXB). A Reference Implementation of the API is now available in the Java Web Services Developer Pack V 1.1.

 

JAXB包括两部分:

1.编译器程序:负责根据XML Schema(xsd文件)编译生成对应java类文件

2.JAXB API:程序中调用这些api,再结合1中的类达到映射的目的

 

对于JAXB的安装及编译器部分的使用请参见:http://maimode.iteye.com/admin/blogs/1329929

 

本篇将主要针对api部分给出代码示例,并在后文中给出文档校验的方法。

 

无论是将xml映射为java对象还是将java对象映射为xml,都首先要使用JAXB的编译器将XSD文件编译成java类文件,然后在项目中导入这些类。

 

需要引用一下类:

 

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
 

 

 

A. 将XML映射为java对象

// 建立上下文 amos.note为编译器生成的类文件的包名称
JAXBContext jaxbContext = JAXBContext.newInstance("amos.note");
// 建立unmashaller对象
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
// 将xml文件映射为java对象
Note note = (Note) unmarshaller.unmarshal(new File("e:/t/t.xml"));
// TODO ....

 以上代码片段就是将t.xml文件中的根Note节点映射为了Note对象,也可以将其他形式的xml进行映射。

 

 

B. 将java对象映射为XML

// 准备要映射的对象 amos.note.ObjectFactory是编译器生成的类
amos.note.ObjectFactory objFactory = new amos.note.ObjectFactory();
Note note = objFactory.createNote();
//上面的note对象也可是A部分中的那个note对象,这样A、B两个步骤和在一起就是对xml文件的更新了
// 建立上下文 amos.note为编译器生成的类文件的包名称
JAXBContext jaxbContext = JAXBContext.newInstance("amos.note");
// 建立mashaller对象
Marshaller marshaller = jaxbContext.createMarshaller();
// 将java对象映射为xml文件
marshaller.marshal(note, new FileOutputStream("e:/t/t.xml"));

 以上代码片段就是将Note对象映射为t.xml文件中的根Note节点,也可以映射成为其他形式的对象。

 

 

基于XSD的XML文档校验

 

参考:http://www.ibm.com/developerworks/cn/xml/x-javaxmlvalidapi.html

 

Java 5 引入了 javax.xml.validation 包,提供了独立于模式语言的验证服务接口。这个包也可用于 Java 1.3 及更高版本,不过要单独安装 JAXP 1.3。其他产品中,Xerces 2.8 包含了这个库的实现。 

 

javax.xml.validation API 使用三个类来验证文档:SchemaFactory、Schema 和 Validator。还大量使用了 TrAX 的javax.xml.transform.Source 接口来表示 XML 文档。简言之,SchemaFactory 读取模式文档(通常是 XML 文件)并创建 Schema 对象。Schema 创建一个 Validator 对象。最后,Validator 对象验证表示为 Source 的 XML 文档。 

 

改变验证所依据的模式、要验证的文档甚至使用的模式语言都很简单。但无论什么情况,验证都需要经过下列五个步骤:

 

1) 为编写模式所用的语言加载一个模式工厂。

2) 编译源文件中的模式。

3) 用编译后的模式创建一个验证程序。

4) 为需要验证的文档创建 Source 对象。StreamSource 通常最简单。

5) 验证输入的源文档。如果文档无效,validate() 方法将抛出 SAXException。否则什么也不显示。

 

可以反复使用同一个验证程序和同一个模式多次。但是所有类都不是线程安全的或者可重入的。如果用多个线程同时验证,一定要保证每个线程有自己的 Validator 和 Schema 对象。

 

需要导入的包:

 

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
 

 

下面是验证的主要代码:

/**
	 * 根据xsd文件校验一个xml文件是否有效,当无效异常时交由errorHandler处理异常
	 * 
	 * @param xmlFilePath
	 * @param xsdFilePath
	 * @param errorHandler
	 * @return
	 * @throws IOException
	 * @throws SAXException
	 */
	private boolean doValidate(String xmlFilePath, String xsdFilePath,
			ErrorHandler errorHandler) throws IOException, SAXException {
		boolean rt = false;
		// 1. Lookup a factory for the W3C XML Schema language
		SchemaFactory factory = SchemaFactory
				.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
		// 2. Compile the schema.
		// Here the schema is loaded from a java.io.File, but you could use
		// a java.net.URL or a javax.xml.transform.Source instead.
		File schemaLocation = new File(xsdFilePath);
		Schema schema = factory.newSchema(schemaLocation);

		// 3. Get a validator from the schema.
		Validator validator = schema.newValidator();
		validator.setErrorHandler(errorHandler);

		// 4. Parse the document you want to check.
		Source source = new StreamSource(xmlFilePath);

		// 5. Check the document
		try {
			validator.validate(source);
			rt = true;
		} catch (SAXException ex) {
			rt = false;
		}
		return rt;
	}

需要注意的是,当传入有效的ErrorHandler示例后,执行validator.validate(source)方法时无论是否出现异常都不在抛出SAXException异常。

 

因此,下面的方法包装上面的方法来验证

 

/**
	 * 根据xsd文件校验一个xml文件是否有效
	 * @param xmlFilePath
	 * @param xsdFilePath
	 * @return true-有效 false-无效
	 * @throws IOException
	 * @throws SAXException
	 */
	public boolean validate(String xmlFilePath, String xsdFilePath) throws IOException, SAXException{
		return this.doValidate(xmlFilePath, xsdFilePath, null);
	}

	
	/**
	 * 根据xsd文件校验一个xml文件是否有效,当无效异常时交由errorHandler处理异常
	 * @param xmlFilePath
	 * @param xsdFilePath
	 * @param errorHandler
	 * @throws IOException
	 * @throws SAXException
	 */
	public void validate(String xmlFilePath, String xsdFilePath, ErrorHandler errorHandler) throws IOException, SAXException{
		boolean rt = this.doValidate(xmlFilePath, xsdFilePath, errorHandler);
	}

 

 

其实,验证的这个步骤不必单独占用一些列资源而只做这一件事,可以在上面的映射过程中完成,oracle网站上提供了验证的说明,但是我自己测试发现他说的方法已经废弃了,因此,没有在映射的代码中提到,还有待研究。

 

附件xml.zip是完整的示例程序

Apache Commons Digester 1.7库详解:XML到Java对象映射实践 Commons Digester是一个易用但功能强大的库,用于将XML文档映射到Java对象的集合中,便于数据交换和对象持久化操作。Digester采用基于规则的配置方式,允许开发者通过简单配置即可解析XML文档,并对其中的元素和属性进行相应的Java对象映射处理。在接下来的章节中,我们将逐步深入了解Digester的工作原理、使用方法、高级特性、配置细节以及在最新版本中所做的改进。无论你是对XML数据处理感兴趣的初学者,还是需要优化现有代码库的资深开发者,本书都将为你提供所需的工具和知识。 阅读详情

相关推荐

SBM与超效率SBM模型实战:从原始面板数据到MATLAB高效实现

本文详细介绍了SBM模型与超效率SBM模型的核心原理,并提供了从原始面板数据预处理到MATLAB高效实现的完整实战指南。通过具体代码解析,帮助研究者掌握如何利用MATLAB进行数据标准化、模型构建、效率求解及结果可视化,从而精准评估决策单元的相对效率,尤其适用于在高效单元中进一步精细排名的场景。

weixin_29100399的博客 478

xml报文转Java实体

因为需要对接一些比较老的系统接口,他们的请求方式不是JSON数据结构,一般会采用xml数据结构来作为数据的入参和返参。因为我们的系统是通过JSON数据进行交互的突然接入xml数据结构的会比较的麻烦,麻烦的体现在xml数据结构比较复杂,同时如果采用字符串拼接的话会比较的难以维护。通过JAXBContext来将xml字符串转为Java实体或者把Java实体转为xml字符串

h_j_c_123的博客 3072

基于PTB-XL数据集的深度学习心电信号分类

心电信号的分析与处理是心血管疾病诊断的重要手段。该领域的主要工作领域是分类,它越来越多地得到基于机器学习的算法的支持。在这项工作中,开发了一个深度神经网络来自动分类初级心电信号。这项研究是在PTB-XL数据库中包含的数据上进行的。提出了三种神经网络架构:第一种基于卷积网络,第二种基于SincNet,第三种基于卷积网络,

weixin_55121617的博客 7007

xml与java对象的相互转换

JAXB 元素使用说明   @XmlRootElement @XmlRootElement 注解用于标注类或枚举类型,用它标注的类在映射后的 schema 中会以一个全局元素的形式出现,元素的类型是一个包含 Java 类属性的 XML 复杂数据类型。我们可以通过 @XmlRootElement 注解的 name 属性来定制映射的 schema 全局元素的名称,一般来说以 @Xm

Zhongxiucheng的专栏 2551

【个人记录】CentOS7升级glibc至2.28

由于CentOS7系统已经停止支持, 虽然大部分业务已经迁移至OpenEuler,但仍然有部分业务系统跑在CentOS7上。在尝试部署新业务环境时经常会提示如下错误(以code-server运行需要的node 20为例)node -v为了保障业务可正常运行,通常采用Docker继承好的node环境进行部署,但部分场景还是需要宿主机使用新版glibc版本。本文记录本人一次成功升级glibc(2.17=>2.28)的步骤。

喵呜 3883

GX WORKS2通过交换机连接PLC的方法

三菱PLC连接方法的分享

weixin_64927621的博客 3619

XML 与 JAVA 类映射 JAXB

回到首页☞ JDK自带的两种API是很难用的,想要提取想要的数据,需要写大量的代码。 1 什么是XML与Java类映射 XML很多元素,然后是值,而JavaBean也有很多属性。把这些属性对应起来,就叫做映射。 Hibernate就是一种Java 到数据库的映射框架。 2 JAXB的工作原理 与HIbernate映射类似,JAXB映射主要由4部分构成: schema JAXB XML文档 Jav...

JDIT的博客 838

异步fifo的UVM验证(最终最终版)

更新了refmdl以及scb

qq_44674008的博客 2987

java开发日常之XML字符格式转java对象

本文介绍开发日常中遇到的将xml节点内容转换成java对象。

qq_32590535的博客 2288

2026年【江苏“信息与未来”编程思维】真题及题解(T6:桌面游戏)

2026年【江苏“信息与未来”编程思维】真题及题解(T6:桌面游戏)

王老师青少年编程 534

基于形状的模板匹配之候选点选择

基于形状的匹配匹配,顶层金字塔提取候选点

manuoo的专栏 2767

JAXB的基本使用

JAXBContext配合几个注解,轻松完成xml与实体类的映射。OK 这就是基本用法了,做个笔记,给自己和给需要的人。关于注解,已经在代码中做了注释。稍微增加一点难度,映射集合。2.library实体类。1.Book 实体类。

wheredata的博客 648

人工智能训练师(三级)操作技能考核·自测卷

为您定制了一份。这份试卷严格拆分了“业务分析”、“智能训练”、“智能系统设计”、“培训与指导”四大模块,所有填空题均来源于上一轮整理的。您可以先用它进行“第二步(抛开答案自己填)”,填完后对照末尾的答案速查进行“第一步(补全并运行)”的校验,最后标记错题进行“第三步(针对性重复练习)”。

suny8088的博客 103

java xml映射对象集合_将XML实体映射到Java对象

下面是如何使用JAXB (JSR-222)将对象映射到XML.JDK / JRE中包含一个实现,从Java SE 6开始.JSXB由Spring支持(参见第8.5节:http://static.springsource.org/spring-ws/site/reference/html/oxm.html)SummaryCartimport java.util.List;import javax.x...

weixin_30610943的博客 271

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java xml映射对象集合,将XML实体映射到Java对象

I am quite sure, this is one of the many duplicated questions around XML to Java Object conversions.But I started this thread since I couldn't find simpler or looking for simpler solution.I have an xs...

weixin_36366239的博客 380

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java 映射对象_将XML实体映射到Java对象

下面是如何使用JAXB (JSR-222)将对象映射到XML.JDK / JRE中包含一个实现,从Java SE 6开始.JSXB由Spring支持(参见第8.5节:http://static.springsource.org/spring-ws/site/reference/html/oxm.html)SummaryCartimport java.util.List;import javax.x...

weixin_39934869的博客 147

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写xml

xml xml 是 java 实现的 xml 框架。 希望以最优雅的方式进行 xml 和 java 之间的转换处理,一行代码搞定一切。 特点 对象的和 xml 的互相映射 支持注解 @Alias 指定别名 快速开始 准备 jdk 1.7+ maven 3.x+ maven 引入 <dependency> <groupId>com.github.houbb...

1万+

java xml映射对象集合_将XML映射到Java中的对象

假设我有一个名为Test的类,就像这样public class Test {private String testId;private String description;private String department;public Test() {}public Test(String id,String des,String dpt) {this.testId = id;this.dep...

weixin_36285230的博客 339

使用Xstream实现java对象和XML文件映射小结

Xstream使用小结 XStream 对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new XStream()即可。 Java 到xml,用toXML()方法。 Xml到Java,用fromXML()方法。 在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应xml根元...

vucko 331

java 对象映射文件,如何将xml文件内容映射到Java对象

I am working on project where there is need to map xml files to java based objects.I googled and found JAXB is standard library used to map XML-Java and back to XML.I am working on application where t...

weixin_35652867的博客 136

Java对象映射XML文件

Java对象映射XML文件 一、前期准备 创建Maven工程 导入jar包 二、实验 在pom.xml中导入jar 包 <dependency> <groupId>xstream</groupId> <artifactId>xstream</artifactId> <version>1.2.2</version> </dependency> 创建实体类 //城市类 publ

做技术,坚持才是最重要的,一时的热情只是暂时的进步 732

使用XStream来映射xml中列表元素到java对象

[size=medium]网上很多讲述使用XStream来映射xml文件到java对象的文章,但是几乎没有一篇文章讲述,如何使用XStream来映射xml中的同级的列表元素到java对象的文章。本文示例中将使用XStream 1.3.1。请去XStream的官方站点上下载相应的包。[/size] [size=medium]在Eclipse中新建一个Java Project,然后引入XStre...

Think Different 385

java xml映射_将XML实体映射到Java对象

小编典典下面是如何使用JAXB(JSR-222)将对象映射到XML的方法。从Java SE 6开始的JDK /JRE中包含一个实现。Spring支持JAXB(请参见8.5节:http : //static.springsource.org/spring-ws/site/reference/html/oxm.html)购物车import java.util.List;import javax.xml...

weixin_32968239的博客 494

JAXB2-JAVA对象与XML之间的映射

 JDK6 :使用JAXB2来实现对象与XML之间的映射 JAXB是Java Architecture for XML Binding的缩写,可以将一个Java对象转变成为XML格式,反之亦然。我们把对象与关系数据库之间的映射称为ORM, 其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping). 原来JAXB是Java EE的一部分,在JDK6中,SU

小猴的专栏 1318
上一篇: JAXB安装与编译器使用
下一篇: java中char与汉字占用字节个数问题
maimode
博客等级 码龄19年 11粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值