九XML技术

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的基本语法

  1. 有且只有一个根元素
  2. XML文档声明必须在文档的第一行
  3. 所有标签必须成对出现
  4. XML的标签严格区分大小写
  5. XML必须正确嵌套
  6. XML种的属性值必须加引号
  7. XML中,一些特殊字符需要使用“实体”
  8. XML中可以应用适当的注释

   ·在eclipse中编写xml文档

    

    

   ·XML元素

  XML元素指的是开始标签到结束标签的部分

  一个元素中可以包含:1.其他元素

            2.文本

            3.属性

            4.以上的混合

   ·XML命名规则

  1.名称可以包含字母,数字及其他字符;

  2.名称不能以数字或者标点符号开始;

  3.名称不能以字母xml开始;

  4.名称不能包含空格

 Schema技术

   ·DTD验证

  概念:DTD文档类型定义

  作用:验证身份是“有效”的XML

   ·使用DTD的局限性

  1. DTD不遵守XML语法
  2. DTD数据类型有限
  3. DTD不可扩展
  4. 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.得到每个节点的节点名和节点值

 

posted @ 2019-03-23 15:36  齐方  阅读(161)  评论(0编辑  收藏  举报