1、XML
1)什么是xml
a.指可扩展标记语言
b.是一种很像HTML的标记语言
c.设计宗旨是传输数据,而不是显示数据
d.标签没有被预定义,需要自行定义标签
e.被设计为具有自我描述性
d.是W3C的推荐标准
2)xml和html之间的差异
a.xml被设计用来传输和存储数据,它的焦点是数据的内容
b.html被设计用来显示数据,他的焦点是数据的外观
c.html的主要工作是用来显示信息,而xml是用来传输信息
d.xml标签都是自定义的,而html的标签是预定义的
3)xml的定义
a.新建一个.xml文件

b.声明xml文件
一个xml文件,必须在文件的首行进行版本和编码声明,和自定义的根标签
version | 1.0(常用1.0) |
encoding | utf-8(万国码) |
students(根标签) | 名字可自定义,但是在xml中的标签使用需要被包含在根标签之中 |
student(子标签) | 名字可自定义,需要被包含在根标签里面,每个子标签可定义自己的属性等 |
<?xml version="1.0" encoding="utf-8" ?>
<students>
<student id="" name=""></student>
<student></student>
</students>
注意:在进行自定义声明xml文件时,首行的版本声明前面不能有空格,需要顶格声明;
声明属性时,属性值必须被引号引起来;
每个标签必须正确关闭;
xml的标签时区分大小写的;
在xml中有且仅有一个根标签
c.xml中的转义字符
| 普通字符 | xml中的转义字符 |
| < | < |
| > | > |
| & | & |
| ' | &apos |
| " | " |
因为xml在java中,现在大多数都是做配置文件,框架的流行,xml也出现了两种特定的约束
4)xml的两种约束
a.DTD约束
准备约束文件:note.dtd
<!ELEMENT notes (note*)>
<!ELEMENT note (to,from+,heading,body>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from EMPTY>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body ANY>
<!ATTLIST to name CDATA #REQUIRED>
<!ATTLIST to id ID #REQUIRED>
| 语法定义 | 含义 | ||
| <!ELEMENT 元素名称 类别> | |||
| 类别 | 空标签 | EMPTY 表示元素一定是空元素 | |
| 普通字符串 | (#PCATA) 表示元素的内容一定是普通字符串(不能含有字标签) | ||
| 任何内容 | ANY 表示元素的内容可以是任意内容 包括子标签 | ||
| <!ELEMENT 元素名称 (子元素名称1,子元素名称2...)> 按照顺序出现子标签 | |||
| 标签+ | 至少出现一次 | 每个标签必须出现一次 | |
| 标签* | 0或者n次 | ||
| 标签? | 0次或者1次 | ||
| 约束属性:<!ATTLIST 元素的名称 属性的名称 属性类型 默认值> | |||
| 属性默认值 | #REQUIRED | 属性必须填写 | |
| #IMPLED | 属性不是必须填写的 | ||
| #FIXED value | 属性不是必须的,但是值是固定的 | ||
| 属性的类型 | CDATA | 表示普通字符串 | |
| (en1,en2) | 表示任选一个值 | ||
| ID | 表示在一个xml文件中属性值必须唯一 值不能用数字开头 | ||
DTD约束文件的使用
<?xml version="1.0" encoding="utf-8" ?>
<!--1、引入dtd约束:SYSTEM表示使用当前系统的哪个文件-->
<!DOCTYPE notes SYSTEM "note.dtd">
<notes>
<note>
<to name="张三" id="dddd">xxx</to>
<from/>
<heading></heading>
<body></body>
</note>
</notes>
b.Schema约束
准备约束文件:student.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<!--targetNamespace:名称空间,可随便命名-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.csdn.com.cn"
xmlns="http://www.csdn.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
| 步骤 |
| 1.填写xml文档的根元素 |
| 2.引入xsi前缀.xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 3.引入xsd文件命名空间. xsi:schemaLocation="http://www.gxaedu.com.cn student.xsd" |
| 4.为每一个xsd约束声明一个前缀,作为标识“xmlns="http://www.gxaedu.com.cn" |
schema约束文件的使用
<?xml version="1.0" encoding="UTF-8" ?>
<note xmlns="http://www.csdn.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.csdn.com.cn"
>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
区别:
| DTD约束 | Schema |
| 语法相对简单,功能简单,学习成本低,适用于mybaits和Servlet | 语法非常复杂,功能更加抢答,学习成本高,适用于spring和servlet |
220

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



