当前位置:阳光沙滩 >前端 > 查看文章
阿里云优惠码

前端XML概述

标签:, 前端

1.XML技术

24985bd6bb0eb97152c08aa800b2cb3a

与数据相关技术,在企业中XML技术常用于存储和传输数据,流行原因:XML与编程语言无关
比如说,可以用于JAVA,也可以用于PHP、.net,是吧,爽多啦!
通过标签来标记数据

2.那什么是标记语言呢?

<mark> contene</mark>典型的标记语言HTML语言,只不过是用于标记文本信息的,也就是说作用于文本信息的。

XML标记随意定义哦—也就是扩展性
XML典型存储和传输应用:
1、XML充当数据库 保存数据信息—-比如说试题可以用这个XML来保存,google的数据也是用这个方式来保存数据的;
2、在AJAX传输数据、WebService技术 网络传输中的数据 格式多采用XML

在HTML中预定义的标记很多,每个标记有一定的显示效果,XML是自己定义的标签,按需求定义。

3.XML语法:

主要是这几个,其他的可以去查看文档哦!
1、文档声明
2、元素
3、属性
4、注释
5、CDATA块
6、处理指令
在任何的XML中,必须声明<?xml version = “1.0”>

XML是一种标记语言 主要用于存储和传输数据。

假如没有声明编码,那么XML默认的编码是OSI-8859-1编码,不这个编码不支持这个中文数据
PS:当XML指定encoding = “utf-8”,那么浏览器也要设置这种编码来解析,同时,在保存文件的时候也要注意文件和指定的编码是一样的。
特别是记事本,要注意。如果是一些高级的编辑工具会智能地保存的,浏览器也会根据文件来选择解析的编码。
记事本为例:记事本默认用ANSI,也就是GBK编码,我们可以在文件名下面设置为 utf-8来保存,当然,前提是我们的文件里<?xml encoding = “utf – 8”>

4.XML语法规范

1、所有的XML元素必须结束,有头有尾,如果是单个标签,则在本标签结束
2、标签不允许存在交叉嵌套的情况
3、有且仅有一个根元素
4、XML文件中 空格和换行会被解析器进行解析的
5、严格区分大小写,所以标签头和尾要一致,元素和属性名称不能以数字开头。

属性的定义语法:<元素名字 属性名字 = “属性值” 属性名字 = “属性值”…)
6、元素的属性用单引号或者又引号引住。
7、XML注释与HTML注释一样,都是<!–注释内容–>,但注释不支持嵌套
CDATA区域内 保留不被解析器解析的内容–通常存放特殊代码,这些代码会造成XML格式混乱
格式:
<![CDATA[内容]]>

当然除了CDATA外还有转义字符,比如说 小于号<,要是在解析时也要是小于号呢,此时我们可以用&lt表示
大于号用&gt表示,其中lt==less than gt == great than,当然,还有其他的,例如商标符号,版权符号,空格符号

那问题来了,到底用那种方式来存放特殊字符呢?
优先使用CDATA技术于XML技术的存储传输和解析。

8、通过PI指令控制XML的样式,指令之前不能有注释,因为指令不属于正文,而正文指的是XML主体
当XML通过PI指令引用CSS—-也可以达到HTML的效果,其实是对数据展示的修饰。
但通常不这么干,一般修饰XML的用 XSLT。这就类似于CSS修饰HTML
CSS—-HTML
XSLT—XML

5.XML技术的应用

主要是两大类
1、用于传输和存储数据—-在这种情况下,我们要保证XML的正确,所以要对它写约束
但很多程序员懒,所以不写约束。
2、使用XML作为配置文件
比如说Android SSH===程序为了保证XML的准确性,所以通常用约束技术。

6.什么是约束技术呢?

使用约束技术,让元素内容格式更加规范
如果企业中XML没有使用XML约束–通过程序生成XML和解析XML时不使用XML,代码变得 简单。

XML约束结束有DTD 和 Schema

7.A、DTD技术

1、编写一个XML例子,再编写对应的DTD约束,DTD约束文件名的后缀是dtd

<?xml version=”1.0″ encoding=”UTF-8″?>
<School>
<Class>
<Student>
<name>阳光沙滩</name>
<age>19</age>
</Student>
</Class>
</School>

下面是dtd文件

<?xml version=”1.0″ encoding=”UTF-8″?>
<!ELEMENT School (Class)>
<!ELEMENT Class (Student)>
<!ELEMENT Student (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>

格式:<!ELEMENT 标签名 (子标签名,多个用逗号隔开,文本直接用#PCDATA)>

有多少个元素就有多少个ELEMENT

再关联起来:
在xml中加入
<!DOCTYPE School SYSTEM “DTDforXML.dtd”>

假如我们想检验这个DTD文件有没有效果,可以删除一些元素试试看。
如果删除报错,说明达到约束的效果了,如果没错,那可能单词写了,或者没关联到哦。

 

8.DTD与XML关联的三种方式:

1\内部DTD语法 <!DOCTYPE 根元素 [约束内容和上面的一样]>
2\外部DTD语法 跟上面的那个约束一样,上面的约束就是DTD外部约束,也就是通过
引用文件的形式来关联 格式 <! DOCTYPE 根元素名 SYSTEM DTD文件名带后缀>
3\公共DTD,指的是引用网络上的DTD文件,这些一般是一种标准来的。
格式: <!DOCTYPE 根元素 PUBLIC “DTD文件名” “DTD文件的URL”>

其中第2和第3种比较常用。

 

9.元素的定义

星号 * 表示内容符合含义
括号()表示组或者子元素
逗号,表示顺序元素eg:(name,age)
其实跟正则表达式差不多的
+表示1到多个
*表示任意个,也就是0到多个
?表示0个或者1个
|表示选择
特殊元素内容:文本内容#PCDATA 如果子元素内容为空,则用EMPTY

10.属性(ATTLIST)定义

语法:<!ATTLIST 元素名称 属性列表>
属性列表
属性名称 类型 约束
属性名称 类型 约束
属性名称 类型 约束
属性名称 类型 约束

11.属性类型有那些呢?

1、CDATA文本
2、(值1|值2|值3|..)
3、ID表示属性唯一
4、还有其他,除了上面常用的。

12.约束有那些呢?

1、#REQUIERD 属性必须
2、#IMPLIED 属性可选
3、fixed value 属性值固定
4、default 默认值

13.实体(ENTITY)定义

对于XML数据内容重复,可以抽取实体,相当于常量的意思。
语法:<!ENTITY 实体名称 “实体内容”> 后面用到时,直接用实体名称引用。

 

 

14.B、XML Schema 使用一套预先定义好 元素和属性开发的

—-预先定义好的元素和属性规定了Schema结构和内容
—-定义Schema规定XML文档格式和内容

预先已经定义好的元素和属性—-定义Schema—-定义XML实例
Schema本身也是xml,不像DTD使用单独语法

将Schema中定义元素绑定RUI(URI)地址上,用来唯一标识元素来自己那个Schema.
为什么要有名称空间呢?一个XML实例引用多个Schema,当两个Schema定义同名元素时,为了区分同名元素
引用自那个文档

15.Schame

1、编写数据XML文件
2、编写Schema文件,后缀为.xsd
1>引入W3C名称空间 xmls = “http://ww.w3c.ort/2001/XMLSchema”
每一个元素对应一个<element>
区分复杂元素和简单元素
2>为Schema定义指定名称空间RUI(URI可以是任何路径)
3>在xml实例数据文件中,引用自定义Schema

elementFormDefult = “unqualified”
1、如果 schema 把elementFormDefault = “unqualified”—-XML实例文档 引用名称空间必须使用前缀—前缀修饰根元素
2、当前XML实例文档所有子元素必须不能用前缀

名称空间的作用是:唯一表示Schema当中的定义元素

简单元素直接编写type属性,复杂元素<conplexType>

本文链接:http://blog.sunofbeaches.com/archives/110 转载请注明出处.
如果喜欢:点此订阅本站
7K
相关文章
为您推荐
各种观点