java学习笔记之xml

xml学习笔记

1:xml的概述

   1.1 xml是什么
     标记语言:语言中出现了<a></a>的标签
      a:HTML 超文本标记语言 (语法非常严格,不能随意的定义标签)
      b:XML 可扩展的标记语言(用户可以根据自己的需求,随意的定义标签)
      <垃圾></垃圾>
     开发的组织:w3c 开源精神 HTML XML Java Script
     版本:使用 1.0

  1.2 xml有什么用
    a:存储数据
    b:作为配置文件
  1.3 xml怎么用

2:xml的语法
  2.1 文档声明
    <?xml version="1.0" encoding="UTF-8"?> encode:编码 decode:解码
    1) 文档声明必须为<?xml开头,以?>结束;
    2) 文档声明必须从文档的0行0列位置开始;
    3) 文档声明只有2个属性:
      a) versioin:指定XML文档版本。只会选择1.0;
      b) encoding:指定当前文档保存时编码方式。可选属性,默认值是UTF-8;

  2.2 元素(element)
    1. 元素是XML文档中最重要的组成部分, 开始标签 元素体 结束标签
    2. 普通元素的结构开始标签、元素体、结束标签组成。例如:<hello> 大家好 </hello>
    3. 元素体:元素体可以是元素,也可以是文本,例如:<b><a>你好</a></b>
    4. 空元素:元素没有元素体,空元素只有开始标签,而没有结束标签,但元素必须自己闭合,例如:<c/>
    5. 元素命名:
      a) 区分大小写
      b) 不能使用空格,不能使用冒号:
      c) 不建议以XML、xml、Xml开头
    6. 格式化良好的XML文档,必须只有一个根元素。除了根元素,所有元素必须被其他元素包含

  2.3 属性(attribute)
    1. 属性是元素的一部分,它必须出现在元素的开始标签中
    2. 属性的定义格式:属性名=属性值,其中属性值必须使用单引或双引
    3. 一个元素可以有0~N个属性,但一个元素中不能出现同名属性
    4. 属性名不能使用空格、冒号等特殊字符,且必须以字母开头

    属性和子元素的选择
      a:如果你描述的数据是对元素唯一的标识(id),则应该放在属性中
      b:如果你描述的数据需要进行再次扩展,必须放在子元素中
  2.4 注释
    XML的注释,以“<!--”开始,以“-->”结束。注释内容会被XML解析器忽略!
    a)注释不能放在文件的第一行
    b)注释的快捷键
      注释 :ctrl + shift + /
      反注释 :ctrl + shift + \
  2.4 转义字符
    ? 转义字符
      因为很多符号已经被XML文档结构所使用,所以在元素体或属性值中想使用这些符号就必须使用转义字符,例如:“<”、“>”、“’”、“””、“&”。
      < --> &lt;
      > --> &gt;
      " --> &quot;
      ‘ --> &apos;
      & --> &amp
  2.5 CDATA区
      <![CDATA[
      任意内容
      ]]>
    当你的标签内容有大量的转义字符时,则可以使用CDATA区,一次性全部转义

3:xml的约束
  xml约束:xml中的标签默认是可以随便扩展,这样就造成了xml的随意性太大,为了给xml一个统一 的规范,就必须使用xml约束

  3.1 DTD约束
    DTD(Document Type Definition),文档类型定义
      约束:标签的名字,标签的属性,标签的顺序
      我们的任务就是根据已经提供好的DTD约束文档来定义xml文件

  3.2 DTD约束步骤
     步骤1:创建bean-dtd.xml文档,并将“bean.dtd”拷贝相同目录下
     步骤2:从DTD文档开始处,拷贝需要的“文档声明”
     步骤3:完成xml内容编写

  3.4 DTD的文档声明
    1: 内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。
      <?xml version="1.0" encoding="utf-8" ?>
      <!DOCTYPE beans [
      ... //具体的语法
      ]>
      <beans>
      </beans>

    2: 本地DTD,DTD文档在本地系统上,公司内部自己项目使用。
      <?xml version="1.0" encoding="utf-8" ?>
      <!DOCTYPE beans SYSTEM"bean.dtd">
      <beans>
      </beans>

    3: 外部DTD—公共DTD,DTD文档在网络上,一般都有框架提供。
      需要有网络,当第一次使用之后,则会在本地缓存。
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- DTD的名字-->
      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
      <!-- DTD的网络位置-->
      "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
      <beans>

  3.5 元素
    <!ELEMENT 元素名 元素描述>
    ?:可以出现,但只能出现一次
    *:允许出现多次,也可以是0次
    +:该对象至少出现一次,但可以是多次
    ,:元素按照指定的顺序出现

    //------------------------------------------
    根元素:beans 而且有两个子元素:bean(0次或多次) 和import(0次或多次,而且必须按照指定的顺序出现
    #PCDATA:表示元素体是文本

    <!ELEMENT beans (bean*,import*) >
    <!ELEMENT bean (property*)>
    <!ELEMENT property (#PCDATA)>

    <!ELEMENT import (#PCDATA)>

    bean有三个属性:id className type
    <!ATTLIST bean id ID #REQUIRED
    className CDATA #REQUIRED
    type CDATA #IMPLIED
    >

    <!ATTLIST property name CDATA #REQUIRED
    value CDATA #REQUIRED
    >

    <!ATTLIST import resource CDATA #REQUIRED>

  3.2 Schema约束
    Schema是新的XML文档约束;
    Schema要比DTD强大很多,是DTD 替代者;
    Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。
    Schema 功能更强大,数据类型更完善
    Schema 支持名称空间
  3.3 约束文档和XML关系
    W3C提出Schema约束规范时,就提供“官方约束文档”。我们通过官方文档,必须“自定义schema 约束文档”,开发中“自定义文档”由框架编写者提供。我们提供“自定义文档”限定,编写出自己的xml文档。
  3.3 命名空间
    默认的命名空间
    xmlns="http://www.itcast.cn/bean"
    显式的命名空间
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    使用标签时,必须加前缀

  4:xml解析
    就是取出xml存储的数据(属性和文本)
    <!-- xml文件-->

    常用API如下:
    1. SaxReader对象
      a) read(…) 加载执行xml文档
    2. Document对象
      a) getRootElement() 获得根元素
    3. Element对象
      a) elements(…) 获得指定名称的所有子元素。可以不指定名称
      b) element(…) 获得指定名称第一个子元素。可以不指定名称
      c) getName() 获得当前元素的元素名
      d) attributeValue(…) 获得指定属性名的属性值
      e) elementText(…) 获得指定名称子元素的文本值
      f) getText() 获得当前元素的文本内容

原文地址:https://www.cnblogs.com/xuzhaocai/p/8127614.html

时间: 2024-11-07 04:26:22

java学习笔记之xml的相关文章

JAVA学习笔记 -- 读写XML

XML是一种可扩展标记语言 以下是一个完整的XML文件(也是下文介绍读写XML的样本): <? xml version="1.0" encoding="UTF-8"? > <poem author="William Carlos Williams" title="The Great Figure"> <line>Among the rain</line> <line>

16-1-8 JAVA学习笔记(1) XML语法

一.XML语法 1.xml文档声明,声明基本属性,有且只有一个文档生活,必须在最前端: <?xml version="1.0" encoding="utf-8" standalone="yes" ?>; 2.xml元素,一个xml标签就是一个xml元素,一个标签分为开始标签和结束标签,在开始标签跟结束标签间可以包含文本,文件内容成为标签体, 如果一个xml标签内不包括标签体也不包含其他元素,那么可以把开始标签跟结束标签合并,称为自闭标

16-1-9 JAVA学习笔记(2) XML 约束

定义:在XML技术里,可以编写一个文档来约束一个XML文档的写法,这称之为XML约束. 作用:约束XML文档的写法:对XML进行校验: 常用约束技术 :  XML DTD(Document Type Definition)文档类型定义: XML Schema 1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE 书架 SYSTEM"book.dtd"> 3 <书架&

16-1-10 JAVA学习笔记(3) XML 约束2

dtd 语法 1.元素 <!ELEMENT 元素名称 元素约束>   元素约束:存放类型:any/empty 元素约束:子元素的列表,将可以包含的子元素用小括号括起来,子元素用,号间隔表示出现顺序必须与声明时一致;用|号间隔表示任选其一; 元素内容中可以用+,*,?等符号表示元素出现的次数:+:一次或多次;*:0次或多次;?:0次或一次; 也可以用小括号进行组的操作; 2.属性

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特