
最大的优势就是可拓展性。

用途
1. 存储数据

2. 分离数据

3. 交换数据
![]()

4. 共享数据

XML被设计为一种文档语言,”什么都不做“
XML技术架构


由于是一种文本语言,开发工具基本上常见的编辑器都能够胜任
一些语法点

1. 文档声明
![]()
说明该文档是XML
2. 标记必须闭合

3. 必须合理地潜逃

4. XML元素

5. XML属性


不严格区分单双括号
6. 只有一个根元素

根元素<articles>必须是唯一的
7. 大小写敏感

8. 空白被保留

9. 转义字符

10. CDATA的使用


<![CDATA[ xxx ]]>
XML API

解析XML

1. DOM解析

![]()
类比HTML的DOM,是一样的。
一些要注意的问题


2. SAX解析

SAX是直接查找开始标签的,比DOM的查找效率要高


使用API上来说,两者区别不大
JAVA类映射JAXB
类似bean的技术(名字就叫JAva Xml Bean嘛),把xml对象化,可以和Hibernate对比学习

原理


xml(文档)=>schema(表格化)=>JAXB(对象化映射)=>Java Object(对象)
Java对象转化为XML(marshal)
先说说是怎么映射的。
package com.integrate.xml;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Article {
private String title;
private String author;
private String email;
private String date;
// 省略getter/setter
}
<!-- 那么对应的xml应该长这样 -->
<Article>
<title>丑小鸭</title>
<author>安徒生</author>
<email>antusheng@qq.com</email>
<date>1900-01-01</date>
</Article>
package com.integrate.xml;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class JAXBDemo {
public static void main(String[] args) {
// 创建xml文档对象
File xmlFile=new File("D:\\Project Zijun\\Logiciels\\eclipse\\eclipse-workspace\\Integrate\\output\\test.xml");
// 声明JAXBContext上下文对象
JAXBContext context;
try {
// 通过指定映射创建上下文,Article类必须要有@XmlRootElement的注解哦!
context=JAXBContext.newInstance(Article.class);
// 通过上下文创建java转化为xml的对象Marshaller
Marshaller m=context.createMarshaller();
Article article=new Article(); // 创建XML中数据
article.setAuthor("Janet");
article.setDate("20080601");
article.setEmail("jj@yahoo.com");
article.setTitle("XML");
m.marshal(article, xmlFile); // 将java对象转化为XML
} catch (Exception e) {
e.printStackTrace();
}
}
}

package com.integrate.xml;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class JAXBDemo {
public static void main(String[] args) {
File xmlFile=new File("D:\\Project Zijun\\Logiciels\\eclipse\\eclipse-workspace\\Integrate\\output\\test.xml");
JAXBContext context;
try {
context=JAXBContext.newInstance(Article.class);
// 就这里两句话不同
Unmarshaller un=context.createUnmarshaller(); // unmarshaller的获取
Article article =(Article) un.unmarshal(xmlFile); // xml到Article类的对象化
System.out.println(article.getAuthor());
System.out.println(article.getTitle());
System.out.println(article.getEmail());
System.out.println(article.getDate());
} catch (Exception e) {
e.printStackTrace();
}
}
}


此外,一些更加复杂的嵌套映射,可以用集合类来表示,如List<Article> list=new ArrayList<Article>();


本文深入探讨了XML作为数据交换格式的优势及其在数据存储、分离、交换和共享方面的应用。详细介绍了XML的基本语法,包括文档声明、标记闭合等,并解析了XML与Java对象之间的转换过程,重点讲解了JAXB技术如何实现XML对象化,以及Java对象与XML文件之间的相互转化。

 在Java开发中的XML&spm=1001.2101.3001.5002&articleId=100780071&d=1&t=3&u=fcfcc2f046b94d33a012bb297514a91c)
676

被折叠的 条评论
为什么被折叠?



