XML知识

XML作用:1,数据存储 2,数据传输 3,数据配置 4

语法:

* 文档声明 --- 一看就会

<?xml version="1.0" encoding=”UTF-8” ?>

*** 注意事项

* 文档声明必须出现在XML文档的第一行第一列的位置.

文档声明的属性:

* version:代表xml使用版本.  1.0  属性是必须的.

* encoding:字符集编码. 编码集:  GBK  GB2312  UTF-8  ISO-8859-1 属性是可选的。

* standalone:代表XML文档是否是独立存在.   yes/no 属性是可选的。

***** 因为WEB开发时候 乱码一致跟随.

* 元素就是标签:

* 标签有开始 必须 有结束.

* 写法:  

  1. <tag>元素</tag>  2<tag></tag> <tag/>  3,标签必须合理嵌套.<a><b></a></b>是错误的 4,只有一个跟节点.

* 命名规范:

* 区分大小写

* 标签名 不能以 数字 或 _ 开头  错误的:<1a> <_b>

* 不能以XML xml Xml开头.

* 标签名中间不能出现空格或冒号   错误的: <a b>  <a:b>

* 属性:重要

* 一个标签上 可以有多个属性.

* 属性不能同名.

* 属性一定要加引号(单引号或双引号.)

* 命名与标签的名称一致.

* 注释:不看都会.

* HTML的注释一致:<!--  注释  -->

* 注意:注释不能嵌套. 注释能否放在XML的文档声明之前? 不行.

* CDATA和转义字符 一看就会

转义字符:

< &lt;

> &gt;

" &quot;

& &amp;

' &apos;

CDATA:字符数据 Character Data:字符数据.

* 写到标签中特殊字符.不会认为是标签了 而认为是一段字符串.

* 语法:

<![CDATA[

写在CDATA区的内容.

]]>

* XML中引入CSS 可以 给XML加样式.

* XML出现替换HTML. 但是没有替换掉. XML语法比HTML复杂. XHTML:过度产品  W3CHTML升级 HTML5

XML约束:

***** (面试)XML的约束有哪些?区别是什么?

* 两种:DTD Schema.

DTD:约束XML文档.

* 浏览器只负责解析XML 不负责XML语法校验.

DTD使用的步骤:

* DTD保存为UTF-8格式.

* 1.XML文档中 想出现标签.

* 2.DTD中定义标签.

<!ELEMENT 元素名称 元素内容>

* 3.查看标签中是简单的还是复杂.

* 如果是简单标签.   (#PCDATA)

* 如果是复杂标签.   (子标签)

* 4.XML中引入DTD.

* <!DOCTYPE 跟元素 SYSTEM "DTD的路径.">

DTD详解:(会写  关键是能够看懂...)约束XML

XMLDTD的关联:引入DTD

* XML文档内部 (在XML文件内部)

<!DOCTYPE 书架 [

<!ELEMENT 书架 ()>

<!ELEMENT (书名,作者,售价,简介)>

<!ELEMENT 书名 (#PCDATA)>

<!ELEMENT 作者 (#PCDATA)>

<!ELEMENT 售价 (#PCDATA)>

<!ELEMENT 简介 (#PCDATA)>

]>

* XML的约束文档DTD 在本地的一个文件从存在 (引入本地的DTD

<!DOCTYPE 书架 SYSTEM "DTD路径">

* XML可以引用网络上的DTD (引入网络DTD

<!DOCTYPE 跟元素 PUBLIC "DTD名称" "DTD路径">

DTD语法:

* 定义元素

* 语法:

<!ELEMENT 元素名称 元素类型>

* 元素类型:

(#PCDATA): 可解析字符数据

EMPTY:        空元素

ANY:        任意元素

(子节点):

* 子节点的关系:

, : 子元素出现是有顺序的.

| : 子元素出现是或的关系.

* 子节点出现的次数:

+ : 子元素出现1次或多次.

* : 子元素出现0次或多次.

? : 子元素出现0次 或 1.

案例:<!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>

* 定义属性:AttributeList

<!ATTLIST 元素名称

属性名称 属性类型 属性约束

属性名称 属性类型 属性约束

>

属性类型:

CDATA :字符数据

枚举 :从某个范围取值.

ID :唯一.

属性约束:

#REQUIRED :属性是必须的

#IMPLIED :属性是可选的

#FIXED :属性是固定值

默认值 :属性是默认值

* 定义实体

XML经常会使用的一段内容 可以使用一个名称来代替.

定义一个实体.

<!ENTITY 实体名称 实体值>

在页面中引用实体:

&实体名称;

XML的解析: (*****) 程序员代码.

***** XML的解析技术有那些?区别是什么?

解析技术有很多.但是常用的 DOM SAX

DOM:将文档一次加载到内存 形成树形结构 . 很方便的做元素的增删改的操作.但是如果文档非常大 容易导致内存的溢出.

SAX: 事件驱动的方式,边读边解析.如果文档很大不会导致内存溢出 但是不能做增删改的操作.


Schema约束.(看懂.)  *** 名称空间.

* DTDSchemaXML进行约束.

(面试题:XML的约束技术有哪些?区别是什么?

* DTDSchema.

* 区别:

* Schema本身语句是XML

* 由于是XML语法可以很容易被解析器所解析.

* 它可以做出更加严格的语义和语法约束.

* Schema支持名称空间.

* 开发Schema文档的步骤:

* 1.XML文档中出现了哪些标签.(6)

* 2.需要引入W3C预定义的标签和属性 开发文档.

* 3.定义元素.使用<element>标签定义元素.

* <element name="书架"></element>

* 4.看元素类型:简单类型 还是 复杂类型.

* 5.如果是简单数据类型  在element标签中使用type属性指定类型.

* <element name="书名" type="string"></element>

* 6.如果是复杂类型:使用<complexType>

* 7.如果在复杂元素中出现的是有顺序的,使用<sequence>

* XML文档的开发步骤:

* 在跟节点上引入W3C.

* 引入自定义的Schema.

* Schema的名称空间:(*****

* 名称空间是用来 区分多个Schema中定义的重名的问题.

* 一个XML引入一个DTD文档 但是 可以引入多个Schema文档.

* 名称空间可以想象为是Java中包,区分类名重名的问题.

* 名称空间只能有一个是默认的.默认的名称空间可以不写前缀(在默认名称空间下的元素也可以不写前缀.).


你可能感兴趣的:(XML知识)