xml编程语言
名称:可扩展标识语言,可根据自己的需求定义自己的标签
作用:xml主要用于存储数据
xml语法
xml是对html的补充,xml是纯文本,重点在于传输,html重点在于数据的显示
1:HTML
是从XML演化出来的一种编程语言,XML与HTML是父子关系
2.HTML绝大多数语法都来自于XML
3.一个XML文档必须以一个【根目录标签】开始,其他标签作为【根目录标签】的直接子标签或间接子标签
4.HTML标签对于英文字母大小写忽略不计,但是XML区分大小写
5.HTML标签中属性的内容可以通过一对"“包含也可以不用,但是XML必须包含(”"或’’)
xml文档形成一种树结构
xml必须包含根元素,该元素是其他所有元素的父元素
所有XML元素都必须有关闭标签
xml中,文档中的空格不会被删节
xml文档读取方式
1.SAX读取方式
根据开发人员需要,一次将若干个满足条件的标签加载到内存中
优点:可以节省内存
缺点:读取大量标签,运行效率相对较低
2.DOM读取方式
一次性将xml文档内容加载到内存中
缺点:浪费内存
优点:如果读取大量标签信息,此时由于是在内存中进行定位,所以运行速度较快
3.实际开发过程中,一般都采用dom方式读取
xml约束文档
1.作用
-
设置可以在当前xml文档声明的标签类型名
-
设置可以在标签中出现的属性名
-
设置标签之间的父子关系和兄弟关系
2.xml约束文档分类 -
DTD约束文档:简单约束文档
-
SCHEMA约束文档:高级约束文档
约束文档实例:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT web-app(servlet*,servlet-mapping*,welcome-file-list?)>
<!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
<!ELEMENT servlet-mapping (servlet-name,url-pattern) >
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class(#PCDATA)>
<!ELEMENT url-pattern(#PCDATA)>
<!ELEMENT welcome-file-list (welcome-file+)>
<!ELEMENT welcome-file(#PCDATA)>
<!ATTLIST web-app version CDATA #IMPLIED>
绑定一个dtd约束文档
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
代码解释:
1)<!ELEMENT 标签类型名>:声明可以在xml文档中出现标签类型名
2)<!ATTLIST 标签类型名 属性名>:声明可以在当前标签内部使用属性名称
3)<!ELEMENT 标签类型名(子标签名?)>:子标签可以出现在父标签内部,也可以不出现,如果出现只能只能出现一次
4)<!ELEMENT 标签类型名(子标签名+)>:子标签必须出现在父标签内部,并可以出现多次
5)<!ELEMENT 标签类型名(#PCDATA)>:当前标签没有子标签
6)<!ELEMENT 标签类型名(子标签名*)>:子标签可以出现在父标签内部,也可以不出现,可以出现多次
7)<!ELEMENT 标签类型名(子标签名)>:子标签必须出现在父标签内部,且只能出现一次
8)<!ELEMENT 标签类型名((子标签名|子标签名2))>:这两个子标签必须又一个出现在父标签中,但是不能同时出现
绑定一个schema约束:
<web-app xmlns="http://www.example.org/web-app_2_5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
version="2.5">
</web-app>