整理自网络视频。
1.Xml概述
xml用来存储和传输数据的。与任何语言无关。
xml 可用于PHP,java,.net任何编程语言
XML(extensible markup language)通过标签来标记数据。
设计宗旨:是存储,传输数据,而非显示数据。
XML标签没有被预定义
存储:存储试题,等。
传输:Ajax,webService.
属性节点不属于任何节点父节点和子节点。
2.文档声明。默认声明的编码集:ISO-8859-1
浏览器查看的编码集,和文件保存的编码集一致的。
记事本默认的保存编码方式(ANSI=gbk),若要保存为utf-8则可另存为。
当声明standlone = “yes”该XML不依赖于外部 的文件
使用XML描述复杂关系模型数据
<?xml version=”1.0” encoding= “utf-8” ?>
<book>
<id>001</id>
<name>thinkin java-java编程思想</name>
</book>
3.xml语法规范
所有的XML标签必须结束;标签不允许嵌套;XML有且有一个根元素;XML文件中的空格和换行都会被解析器解析。
1.XML严格区分大小写;元素和属性名称不能以数字开头;不能包含空格;名称中间不能有冒号。
2.属性:一个元素可以定义多个属性的。属性的值可以单引号,和双引号标记。
3.注释在声明元素的后面。<!-- --->
4.CDATA区域的内容不会被处理。---存放特殊的代码。转义,优先使用CDATA,后使用转义字符。
5.通过PI指令(引用css;效果等同于html),指令之前不能有注释。
6.XSLT显示XML,比CSS强大。CSS=HTML的样式表;XSL=XML的样式表。
4.XML技术两大类
1.存储,传输数据---程序员为了开发的简便,不使用约束。不使用XML约束技术,XML格式不一定正确。所有的XML数据内容生成,解析过程都是通过程序来完成的。
2.使用XML作为配置文件---XML DTD,XMLSchema
3.使用了约束,内容更加规范。企业部使用没有约束的,为了生成XML和解析XML时代码更加的简单
元素:标签对。
5.XML约束技术 DTD 和 Schema
1、编写数据xml --- books.xml
2、编写dtd文件
* 为文档每一个元素(不同名称) <!ELEMENT
语法 <!ELEMENT 元素名称 子元素>
元素内部文本 #PCDATA
DTD与xml关联三种方式
1、内部DTD ----- 语法 <!DOCTYPE 根元素 []>
2、外部DTD (引用本地DTD) ----- 语法 <!DOCTYPE 根元素 SYSTEM "本地DTD文件位置" >
3、公共DTD (引用网络上DTD)<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
* 公共DTD 使用 名称W3C规范官方组织规定的
元素(ELEMENT)定义
*内容特点符合含义
()子元素、分组
,代表子元素顺序
+ * ? ---- 正则表达式 + 1到多个 、* 任意个(0到多个)、 ? 0或者1个
| 多选一
特殊元素内容:文本类型内容 #PCDATA子元素内容如果为空 EMPTY
属性(ATTLIST)定义
属性列表:
属性类型
1、CDATA 文本类型属性
2、(值1|值2|值3 ) 三个值选一个
约束
1、#REQUIERD 属性必须
2、#IMPLIED 属性可选
3、fixed value 属性值固定
4、default 默认值
实体(ENTITY)定义
对于xml数据内容重复,可以抽取实体(修改的时候修改一处就行了)
6.XML Schema 使用一套预先定义好元素和属性开发的
----- 预先定义好元素和属性 规定了schema 结构和内容
----- 定义schema 规定xml文档 格式和内容
预先已经定义好元素和属性 ------ 定义schema ------- 定义xml实例
Schema本身也是xml ,不像DTD使用单独语法
和XML文档一样,一个XML schema文档也必须有个根结点,其名称必须为schema
将schema中定义元素,绑定URI地址(名称空间)上,用来唯一标识元素来自哪个schema 。
为什么要有名称空间?
一个xml实例引用多个Schema,当两个schema定义同名元素,为了区分同名元素引用自哪个文档。
Schema快速入门
1、编写数据xml文件
2、编写schema文件 .xsd
1) 引入 W3C 名称空间xmlns="http://www.w3.org/2001/XMLSchema"
每一个元素 对应 <element>
区分复杂元素和简单元素
2) 为schema定义元素指定名称空间 URI (URI可以是任何路径)
elementFormDefault="unqualified"
1、如果schema 将 elementFormDefault="unqualified" ,xml 实例文档引用名称空间必须使用前缀 ---- 前缀修饰根元素
2、当前xml实例文档所有子元素必须不能用前缀
名称空间作用 --- 唯一标识schema当中定义元素
简单元素 直接编写type属性 、复杂元素<complexType>
原文链接:https://www.f2er.com/xml/297784.html