xml概念和体系
·XML概念
XML指可扩展标记语言(EXtensible Markup Language)
XML没有预定义标签,需要自行定义标签
·XML的特点
XML数据以纯文本格式存储(只用记事本就可以)
实现不同应用程序之间的数据通信
实现不同平台间的数据通信
实现不同平台间的数据共享
使用XML将不同的程序,不同的平台之间联系起来
·XML的作用
数据存储和数据传输
·XML和HTML之间的差异
XML主要作用是数据存储和传输(传输)
HTML主要作用是用来现实数据(显示)
·一个标准的XML文档
1 <?xml version"1.0" encoding = "UTF-8"?> <!第一行为文档的声明,version是版本>
2 <books> <!books 叫根节点,也叫根元素一个XML只能有一个根元素>
3 <book id = "1001"> <!book 是 books 的子元素 ,id是属性,“1001”是属性值>
4 <name>java开发实战强化</name >
5 <author>张小三</author>
6 <price>98.5</price> <!98.5指的是文本>
7 <book>
8 </books >
9
·XML文件的体系
XHTML 可扩展标识语言
WSDL WEB SERVICES DESCRIPTION LANGUAGE 网络服务描述语言,这种文档可描述某个WEB SERVICE
WAP和WML手持设备的标记语言
XML基本语法
·XML的基本语法
- 有且只有一个根元素
- XML文档声明必须在文档的第一行
- 所有标签必须成对出现
- XML的标签严格区分大小写
- XML必须正确嵌套
- XML种的属性值必须加引号
- XML中,一些特殊字符需要使用“实体”
- XML中可以应用适当的注释
·在eclipse中编写xml文档
·XML元素
XML元素指的是开始标签到结束标签的部分
一个元素中可以包含:1.其他元素
2.文本
3.属性
4.以上的混合
·XML命名规则
1.名称可以包含字母,数字及其他字符;
2.名称不能以数字或者标点符号开始;
3.名称不能以字母xml开始;
4.名称不能包含空格
Schema技术
·DTD验证
概念:DTD文档类型定义
作用:验证身份是“有效”的XML
·使用DTD的局限性
- DTD不遵守XML语法
- DTD数据类型有限
- DTD不可扩展
- DTD不支持命名空间
·Schema技术
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:element name="books">
4 <xs:complexType>
5 <xs:sequence>
6 <xs:element name = "book" maxOccurs="unbounded">
7 <xs:complexType>
8 <xs:sequence>
9 <xs:element name="name" type ="xs:string"></xs:element>
10 <xs:element name="author" type = "xs:string"></xs:element>
11 <xs:element name="price" type ="xs:double"></xs:element>
12 </xs:sequence>
13 <xs:attribute name="id" type ="xs:positiveInteger" use="required"></xs:attribute>
14 </xs:complexType>
15 </xs:element>
16
17 </xs:sequence>
18 </xs:complexType>
19 </xs:element>
20 </xs:schema>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <books xmlns:xsi="http://www.w3.org/2001/XMLSchema"
3 xsi:noNamespaceSchemaLocation="{book.xsd}">
4 <book id="1001">
5 <name>java开发实战</name>
6 <author>邹奇方</author>
7 <price>98.5</price>
8 </book>
9 </books>
1 package com.zqf.schema;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 import javax.xml.transform.Source;
7 import javax.xml.transform.stream.StreamSource;
8 import javax.xml.validation.Schema;
9 import javax.xml.validation.SchemaFactory;
10 import javax.xml.validation.Validator;
11
12 import org.xml.sax.SAXException;
13
14 public class Test {
15 public static void main(String[] args) throws SAXException {
16 //(1)创建SchemaFactory工厂
17 SchemaFactory sch = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
18 //(2)建立验证文件对象
19 File schemaFile = new File("book.xsd");
20 //(3)利用SchemaFactory工厂对象,接收验证的文件对象,生成Schema对象
21 Schema schema=sch.newSchema(schemaFile);
22 //(4)产生对此Schema的验证器
23 Validator validator = schema.newValidator();
24 //(5)要验证的数据(准备数据源)
25 Source source = new StreamSource("book.xml");
26 //(6)开始验证
27 try {
28 validator.validate(source);
29 System.out.println("成功");
30 } catch (IOException e) {
31 // TODO Auto-generated catch block
32 e.printStackTrace();
33 System.out.println("失败");
34 }
35 }
36 }
DOM方式解析XML数据
在java程序中读取XML文件的过程称为解析XML
·解析XML文件的方式
1.DOM解析(java官方提供)
2.SAX解析(java官方提供)
3.JDOM解析(第三方提供)
4.DOM4J解析(第三方提供)
·DOM解析XML的步骤
1.创建一个DocumentBuilderFactory的对象
2.创建一个DocumentBuilder对象
3.通过DoucmentBuilder的parse(...)方法得到Document对象
4.通过getElementsByTagName(...)方法获取节点的列表
5.通过for循环遍历每一个节点
6.得到每个节点的属性和属性值
7.得到每个节点的节点名和节点值