呵呵,就要面对着找工作了,我得复习以前学过的东东了,以便将来面试与笔试用到,当然最重要的就是巩固学过的知识。
复习1——认识
XML extensible markup language(可扩展标记语言)。这里什么是标记呢?对于计算机来说,标记指计算机所能理解的信息符号。那XML是用来作用什么的呢的?简单的来说就是用来存储数据及数据的结构,以便计算机能够识别这些数据以及数据之间的关系。它的常用的用途就是在软件中作为一种配置文件。如我的所用的ssh中,xml形式的配置文件是很常见的。
DTD (Document Type Definition)。在XML技术里,可以编写一个文档来约束一个xml文档的书写规范,DTD是XML的一种约束技术。那DTD到底是什么?用XML的一种约束机制来描述是不够的,DTD是XML文件组成的一部分,DTD在XML文件所扮演的角色就是定义xml文件的元素架构、元素标记和属性!
复习2——语法
XML语法 对于XML语法,其实是很简单的,它的语法就只有如下的几个部分。
1)文档声明
2)元素
3)属性
4)注释
5)CDATA区、特殊字符
6)处理指令(Processing instruction)。
2.1.1 XML文档——声明
对于文档声明这是xml中的可选项,但如果要添加的话一定要位于文档的第一行。XML文档声明中包括版本声明(Version)、编码声明(encoding)和独立声明(standalone)。如果XML中有文档声明的话,那个版本声明(Version)是必须要加入那个声明的。下面就是一个完整的XML文档声明示例。
<?xml version=”1.0” encoding=”utf-8” standalone=”no” ?>
(详解: encoding用来指定文档的字符编码 standalone用来指定文档的信息是否依赖于外部源的信息,其取值有yes/no,yes是的是不依赖于外部源的信息,no这个值是默认的指的是依赖于外部源的信息,简单的说就是这份xml文档的内容是否依赖于另外一份文档。)
2.1.2 XML文档——元素
对于xml文档来说,其元素就是xml的标签,一个标签分为开始标签与结束标签,同时对于标签也可分为含内容体的标签与无内容体的标签。对于格式良好的标签必须只有一个根标签。
对于XML标签的书写规范就是:
1、区分大小写。
2、不能以数据和下划线及xml开头。
3、不能包含空格及名称中加冒号。
2.1.3 XML文档——属性
Xml中标签有自己的属性,属性有自己的名称与值,属性值用单引号与双引号来表示,同时和xml文档有相同的命名规范。当然我们可以把标签的属性作为这个标签的子标签。
2.1.4 XML文档——注释
Xml中的注释示例为:<!-- 注释内容 --> 。要补充的一点就是注释不能像XML元素那样有嵌套的形式。
2.1.5 XML文档——CDATA区
Xml文档中如果有些内容我们想原封不动的输出,这里我们可以把这些内容放到XML的CDATA区中示例如:<![CDATA[原封不动的内容]]>。当然对于单个特殊字符,如果我们想要显示其原始的样式,那么我们也可用转义字符来进行表示。如下我就例出几个常用的转义字符。
特殊字符 转义字符
& &
< <
> >
“ "
‘ '
2.1.6 XML文档——处理指令(Processing instruction)
处理指令是用来指挥解析引擎如何解析XML文档中的内容。处理指令必须以“<?”开头,以“?>”来作为结束。
DTD语法 DTD的书写,其即可在一个单独的文件中进行编写也可在XML文件中进行编写。对于DTD的语法有如下几个部分。
1)元素定义
2)属性定义
3)实体定义
3.2.1 DTD约束——元素定义
在DTD文档中使用ELELMENT来声明一个XML元素,语法格式如下所示:
<!ELEMENT 元素名称 元素类型>
详解:元素类型可是元素内容或类型,如是元素类型可直接写,类型有ANY/EMPTY
如 <!ELEMENT content ANY>
<!ELEMENT content EMPTY>。
如果是元素内容则要括号括起来。
如 <!ELEMENT books (book+) >
<!ELEMENT books (book*)>
<!ELEMENT books (book?)>
<!ELEMENT books (#PCDATA)>
<!ELEMENT book (name ,price)>
<!ELEMENT book (name|bookname)>
这里我们要请注意的符号为:
* ?表示该子元素出现0或一次;
+ 表示该子元素出现1次或多次;
element1|element2 表示子元素非element1即element2;
用逗号来分割表示元素的顺序要依括号中的顺序;
3.2.2 DTD约束——属性定义
在DTD中,我们用ATTLIST(attribute list)来设置元素的属性,语法格式如下所示:
<!ATTLIST 元素名
属性1 属性值类型 设置说明 默认值
属性2 属性值类型 设置说明 默认值
........
>
属性类型描述
类型 | 描述 |
---|---|
CDATA | 值为字符数据 (character data) |
(en1|en2|..) | 此值是枚举列表中的一个值 |
ID | 值为唯一的 id |
IDREF | 值为另外一个元素的 id |
IDREFS | 值为其他 id 的列表 |
NMTOKEN | 值为合法的 XML 名称 |
NMTOKENS | 值为合法的 XML 名称的列表 |
ENTITY | 值是一个实体 |
ENTITIES | 值是一个实体列表 |
NOTATION | 此值是符号的名称 |
xml: | 值是一个预定义的 XML 值 |
设置描述
值 |
解释 |
值 |
属性的默认值 |
#REQUIRED |
属性值是必需的 |
#IMPLIED |
属性是非必需的 |
#FIXED VALUE |
属性值是固定的 |
Value |
直接写一个默认值 |
示例
<!ATTLIST liang
id ID #REQUIRED
age CDATA #REQUIRED
tel CDATA #IMPLIED
alias CDATA #FIXED “liang01”
love (lina|yuanhong|kula) “kula”
>
细述:属性id的属性类型为ID,则id的取值在其文档中其值必需是唯一的,要以字母或下划线开始不能有空白。love取值为lian或yuanhong或kula中的一个,默认为kula(呵呵)。
3.2.2 DTD约束——实体定义
实体其实就是用一个变量来引用一个值,实体的定义类型有引用实体与参数实体。其格式如下:
<!ENTITY 实体名称 “实体内容”>
示例
<!ENTITY lover “kula”>
<!ATTLIST liang
lover &lover>
细述:在我们的属性是ENTITY类型时,我们首先要定义一个实体,格式是 <!ENTITY 实体名称 “实体内容”> (这是一个引用实体),引用实体时我们用 &实体名称 这种形式来引用那个我们定义的实体,这样我们元素的liang 的lover属性的默认值就是”kula”。对于实体,还有一个参数实体的定义。格式是<!ENTITY %实体名称 “实体内容”>。如<!ENTITY %info_value “name,age”> 引用方式如 <!ELEMENT people (%info_value)>相当于(!ELEMENT people (name,age)>