XML STUDY_NOTE

XML 学习记录
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实体
&lt; ---------  小于号 <
&gt; ---------  大于号 >
&amp;---------  符号 与 &
&apos;--------  符号 单引号 '
&quot;--------  符号 双引号 "

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"?>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值