XML 学习记录
1、xml 首行
参数
version="1.0" XML 规范 版本号
encoding="UTF-8" 编码 (XML默认编码 UTF-8)
standalone="yes" 是否不依赖于其他XML文件(默认是 YES ,不依赖 于 其他XML)
2、xml 引入 样式.css 文件
3、定义 命名空间
4、预定义XML实体
< --------- 小于号 <
> --------- 大于号 >
&--------- 符号 与 &
'-------- 符号 单引号 '
"-------- 符号 双引号 "
5、包含特殊的处理指令
<?cmd.exe?>
<?iexplore.exe?>
6、包含非标准文本 的 CDATA 段
<![CDATA[text文本]]>
7、声明内部DTD
DTD(英文:Document Type Definition,中文:文档类型定义)
是一套关于标记符的语法规则,是标准通用标记语言和扩展标记语言1.0版规格的一部分,是文档的验证机制,也是一个美国信息交换标准代码文本文件。
(1)XML 元素描述列表
元素 描述
(#PCDATA) 字符数据
(#PCDATA)* 0个或更多字符数据
(anElement) 一个anElement的实例
(anElement+) 一个或更多anElement的实例
(anElement?) 0 个或更多anElement的实例
(anElement,anotherElement) 各 anElement 和 anotherElement 的一个实例
(anElement|anotherElement) 各 anElement 或 anotherElement 的一个实例
(#PCDATA|anElement)* 一个anElement 的实例 或多个 字符数据 #PCDATA为优先项
(EMPTY) 没有内容
(ANY) 任意内容 (因为 ANY禁用 类型检查 , 所以如果使用 ANY ,只能在文档 转换时 使用 ,而不用于生产时)
(2)DEMO :
8、声明 并保存 外部 DTD 文件
如果 希望 DTD 被其他XML 引用 ,可以吧 DTD 文件 保存为 一个独立的外部文件
创建 外部 DTD 文件的语法是
rootElement为根元素
所有DTD文件后缀都为.dtd
<!DOCTYPE rootElement SYSTEM "DTDFILE" >
XML 属性类型 可声明 ↓↓↓↓↓
属性类型 声明类型描述
CDATA 字符数据(字符串)
ID 唯一标示符
IDREF/IDREFS 其值必须匹配一个预定义 ID 或者 多个 用 空格 分开的 ID
ENTITY/ENTITIES 一个预定义实体 或多个用空格 分开的实体 见 <!ENTITY>
NMTOKEN/NMTOKENS 一个(中间无空格) 或多个用空格 分开的 CDATA 限制格式
a|b|c 一个用竖线分割的预定义属性列表
9、声明容器元素
创建容器元素的语法:
<!--
containerELEMENT 是准备定义 容器 元素 的XML元素名
containerELEMENT_1 ,containerELEMENT_2。。。,containerELEMENT_N 是准备定义 在 containerELEMENT 容器 元素 的XML元素名
-->
<!ELEMENT containerELEMENT
(containerELEMENT_1,
containerELEMENT_2。。。,
11、声明可选元素
element* 要求 该元素 有 0 个 且或更多个值
----- DEMO:
不包含任何数据的 元素 ,一些元素在概念上是 聚合数据 ,而并不是本身定义具体的值 在这种情况下 可以将元素 声明为 空元素。
----- DEMO:
属性定义
语法
<!ATTLIST 是定义属性列表的 其实标记
ELEMENT_NAME 是 元素名称
attributeName 是 属性名称
#REQUIRED 代表 这个是 必填项
#IMPLIED 代表 这个是 非必填项
15、声明单字 属性
NMTOKEN 是 单字 标记 的 XML关键字 (所谓 单字 的意思 就是 中间没有空格 例如 : asfbasdjlb 错误示范: asfb asdjlb )
示例
ID 关键 字是定义 这个属性 是 唯一标示 的关键字
语法
18、引用现有 标识符
ID 关键 字是定义 这个属性 是 标示 的关键字
语法
19、在DTD内 定义 和 重用 文本
<!-- 百分号 % 代表 这个实体 是一个 参数实体 -->
内部 参数实体 语法:
外部 参数实体 语法:
注: %name;
内部 一般实体 语法:
注: &name;
注:
不同情况下,使用不同类型 的 XML 实体
> 内部一般实体
> 外部一般实体
> 内部参数实体
> 外部参数实体
使用 <!ENTITY>标记 定义 这四种类型实体, 这 4种 实体的不同之处在于 ;
一般实体 在 XML文件内部引用 , 它使用 一个&符号 和;符号 (&entityName;)。
参数实体 在 DTD文件中引用 , 它使用 一个%符号 和;符号 (&entityName;)。
内部实体 在引用这些实体 的 相同物理文档 内部定义 代替文本(内部文本替换)。
外部实体 使用 SYSTEM 关键字 引用存在 于 外部文档中的 替代文本。
20、在 XML 应用程序 中使用 非 XML 数据
21、在 XML 应用 程序 中嵌入 其他数据
声明 一个 外部一般实体 来包括 外部数据源 ,如 PDF\JPG 文件 。外部数据 类型可以是 是任何 非 XML数据类型 例如 图片 或者 字处理格式
为 声明 一个 包含 外部数据源 的 外部一般实体
22、描述名称空间 的 验证规则
例
#FIXED value
元素实例中该属性的值必须为指定的固定值。
#FIXED 例:
<!ATTLIST 元素名 属性名 属性类型 #FIXED "value">
--------------------->>>>>>>>> 使用 层叠式 样式 表单 在 浏览器 中 显示数据 <<<<<<<--------------
23、创建 一个 简单的 层叠 样式表单
<!-- elementName 元素名称 -->
elementName{
...
}
引用 层叠 样式表单
<?xml-stylesheet type="text/css" href="STYLE_DEMO_01.css"?>
1、xml 首行
<?xml version="1.0" ?>
参数
version="1.0" XML 规范 版本号
encoding="UTF-8" 编码 (XML默认编码 UTF-8)
standalone="yes" 是否不依赖于其他XML文件(默认是 YES ,不依赖 于 其他XML)
2、xml 引入 样式.css 文件
<?xml-stylesheet type="text/css" href="demo_01_style01.css" ?>
3、定义 命名空间
<?xml version="1.0"?>
<!-- <?xml-stylesheet type="text/css" href="demo_01_style01.css" ?> -->
<!-- namespace 定义 Boom -->
<xgzh>
<!-- xmlns:命名空间
意思是 相关联的 虚URI
PS: 命名空间 必须要有 虚URI
-->
<Boom:infos xmlns:Boom="http://Xgzh.Boom">
<Boom:name Boom:location="CN.">邢功卓</Boom:name>
</Boom:infos>
</xgzh>
4、预定义XML实体
< --------- 小于号 <
> --------- 大于号 >
&--------- 符号 与 &
'-------- 符号 单引号 '
"-------- 符号 双引号 "
5、包含特殊的处理指令
<?cmd.exe?>
<?iexplore.exe?>
6、包含非标准文本 的 CDATA 段
<![CDATA[text文本]]>
<?xml version="1.0" ?>
<xgzh>
<!-- CDATA[文本] 中的 文本 不会被 XML分析器所检查,会被忽略掉
应用处理器会用 一种 有意义 的方式使用该文本
-->
<![CDATA[
<SCRIPT LANGUAGE="JavaScript">
Function isUpToDate(){
var connectionUp=pingDatabase();
lastUpdate=queryDatabase();
If( downloadDate< lastUpdated && connectionUp){
display("Hello world !");
}
}
function hello(){
alert("hello");
}
]]>
<hello οnclick="hello()">
</hello>
</xgzh>
7、声明内部DTD
DTD(英文:Document Type Definition,中文:文档类型定义)
是一套关于标记符的语法规则,是标准通用标记语言和扩展标记语言1.0版规格的一部分,是文档的验证机制,也是一个美国信息交换标准代码文本文件。
(1)XML 元素描述列表
元素 描述
(#PCDATA) 字符数据
(#PCDATA)* 0个或更多字符数据
(anElement) 一个anElement的实例
(anElement+) 一个或更多anElement的实例
(anElement?) 0 个或更多anElement的实例
(anElement,anotherElement) 各 anElement 和 anotherElement 的一个实例
(anElement|anotherElement) 各 anElement 或 anotherElement 的一个实例
(#PCDATA|anElement)* 一个anElement 的实例 或多个 字符数据 #PCDATA为优先项
(EMPTY) 没有内容
(ANY) 任意内容 (因为 ANY禁用 类型检查 , 所以如果使用 ANY ,只能在文档 转换时 使用 ,而不用于生产时)
(2)DEMO :
<?xml version="1.0" ?>
<!--
创建DTD 的语法 是
rootElement 是该 DTD 所在的XML 文件中的 根元素。
dtdResult 是在 rootElement 中为个别 元素定义DTD 规则的一条或多条 XML语句
<!DOCTYPE rootElement[
dtdResult
]>
-->
<!DOCTYPE GREETING[
<!ELEMENT GREETING (#PCDATA)>
<!ELEMENT ZZ (anElement)>
]>
<GREETING>
HELLO WORLD
</GREETING>
8、声明 并保存 外部 DTD 文件
如果 希望 DTD 被其他XML 引用 ,可以吧 DTD 文件 保存为 一个独立的外部文件
创建 外部 DTD 文件的语法是
rootElement为根元素
所有DTD文件后缀都为.dtd
<!DOCTYPE rootElement SYSTEM "DTDFILE" >
XML 属性类型 可声明 ↓↓↓↓↓
属性类型 声明类型描述
CDATA 字符数据(字符串)
ID 唯一标示符
IDREF/IDREFS 其值必须匹配一个预定义 ID 或者 多个 用 空格 分开的 ID
ENTITY/ENTITIES 一个预定义实体 或多个用空格 分开的实体 见 <!ENTITY>
NMTOKEN/NMTOKENS 一个(中间无空格) 或多个用空格 分开的 CDATA 限制格式
a|b|c 一个用竖线分割的预定义属性列表
9、声明容器元素
创建容器元素的语法:
<!--
containerELEMENT 是准备定义 容器 元素 的XML元素名
containerELEMENT_1 ,containerELEMENT_2。。。,containerELEMENT_N 是准备定义 在 containerELEMENT 容器 元素 的XML元素名
-->
<!ELEMENT containerELEMENT
(containerELEMENT_1,
containerELEMENT_2。。。,
containerELEMENT_N)
10、声明要求元素
创建容器元素的语法:
<!--
containerELEMENT 是准备定义 容器 元素 的XML元素名
containerELEMENT_1 ,containerELEMENT_2。。。,containerELEMENT_N 是准备定义 在 containerELEMENT 容器 元素 的XML元素名
-->
<!ELEMENT containerELEMENT
(containerELEMENT_1,
containerELEMENT_2。。。,
containerELEMENT_N)
>
补充:
被包含的 元素 可取如下三种格式 之一
element 要求 该元素 有一个 且仅有一个值
----- DEMO:
<!ELEMENT containerELEMENT (containerELEMENT_1)>
element+ 要求 该元素 有一个 且或更多个值
----- DEMO:
<!ELEMENT containerELEMENT (containerELEMENT_1+)>
element* 要求 该元素 有 0 个 且或更多个值
----- DEMO:
<!ELEMENT containerELEMENT (containerELEMENT_1*)>
11、声明可选元素
element* 要求 该元素 有 0 个 且或更多个值
----- DEMO:
<!ELEMENT containerELEMENT (containerELEMENT_1?)>
12、声明空元素
不包含任何数据的 元素 ,一些元素在概念上是 聚合数据 ,而并不是本身定义具体的值 在这种情况下 可以将元素 声明为 空元素。
----- DEMO:
<!ELEMENT containerELEMENT EMPTY>
<!ATTLIST containerELEMENT
test_01 CDATA #REQUIRED
test_02 CDATA #IMPLIED>
创建 文档类型声明之二 声明DTD 属性
属性定义
<!ATTLIST 元素名称 属性名称 类型 属性特点>
13、声明包含字符的属性
语法
<!ATTLIST ELEMENT_NAME
attributeName CDATA #REQUIRED>
<!ATTLIST 是定义属性列表的 其实标记
ELEMENT_NAME 是 元素名称
attributeName 是 属性名称
#REQUIRED 代表 这个是 必填项
#IMPLIED 代表 这个是 非必填项
14、定义 引用 实体 的 属性
<!ENTITY p1 SYSTEM "temp.gif" NDATA GIF>
语法
<!ATTLIST ELEMENT_NAME
attributeName ENTITY #REQUIRED>
标签 元素 引用方式
<ELEMENT_NAME attributeName="p1">
ENTITY 关键字 是 表示 开发者定义 外部数据源 的XML 关键字
15、声明单字 属性
NMTOKEN 是 单字 标记 的 XML关键字 (所谓 单字 的意思 就是 中间没有空格 例如 : asfbasdjlb 错误示范: asfb asdjlb )
<!ATTLIST ELEMENT_NAME
attributeName NMTOKEN #REQUIRED>
16、限定属性 值 于 选项列表
示例
<!ATTLIST ELEMENT_NAME
attributeName (USD,CD) #REQUIRED>
<!--
(USD,CD) 为 attributeName 属性 的 值 选项列表
-->
17、声明 唯一标示符 属性
ID 关键 字是定义 这个属性 是 唯一标示 的关键字
语法
<!ATTLIST ELEMENT_NAME
attributeName ID #REQUIRED>
18、引用现有 标识符
ID 关键 字是定义 这个属性 是 标示 的关键字
语法
<!ATTLIST ELEMENT_NAME
attributeName IDREF #REQUIRED>
19、在DTD内 定义 和 重用 文本
<!-- 百分号 % 代表 这个实体 是一个 参数实体 -->
内部 参数实体 语法:
<!ENTITY % name "content">
外部 参数实体 语法:
<!ENTITY % name "URL">
注: %name;
内部 一般实体 语法:
<!ENTITY name "content">
注: &name;
注:
不同情况下,使用不同类型 的 XML 实体
> 内部一般实体
> 外部一般实体
> 内部参数实体
> 外部参数实体
使用 <!ENTITY>标记 定义 这四种类型实体, 这 4种 实体的不同之处在于 ;
一般实体 在 XML文件内部引用 , 它使用 一个&符号 和;符号 (&entityName;)。
参数实体 在 DTD文件中引用 , 它使用 一个%符号 和;符号 (&entityName;)。
内部实体 在引用这些实体 的 相同物理文档 内部定义 代替文本(内部文本替换)。
外部实体 使用 SYSTEM 关键字 引用存在 于 外部文档中的 替代文本。
20、在 XML 应用程序 中使用 非 XML 数据
<!NOTATION name SYSTEM "dataType">
例:
<!NOTATION GIF SYSTEM "image/gif">
21、在 XML 应用 程序 中嵌入 其他数据
声明 一个 外部一般实体 来包括 外部数据源 ,如 PDF\JPG 文件 。外部数据 类型可以是 是任何 非 XML数据类型 例如 图片 或者 字处理格式
为 声明 一个 包含 外部数据源 的 外部一般实体
语法:
<!ENTITY entityNAME SYSTEM "fileName" NDATA notationName>
例:
<!ENTITY p1 SYSTEM "gaoxiao.gif" NDATA GIF>
22、描述名称空间 的 验证规则
例
<!ATTLIST Boom:xgzh
xmlns:Boom CDATA #FIXED "http://baidu.com0">
#FIXED value
元素实例中该属性的值必须为指定的固定值。
#FIXED 例:
<!ATTLIST 元素名 属性名 属性类型 #FIXED "value">
--------------------->>>>>>>>> 使用 层叠式 样式 表单 在 浏览器 中 显示数据 <<<<<<<--------------
23、创建 一个 简单的 层叠 样式表单
<!-- elementName 元素名称 -->
elementName{
...
}
引用 层叠 样式表单
<?xml-stylesheet type="text/css" href="STYLE_DEMO_01.css"?>