`

xml笔记

阅读更多
XML的声明
	<?xml version="1.0" encoding="utf-8" standalone="yes"?>
	version是版本号
	encoding是编码
		声明必须在文档第一行,前面不能有其它字符

文档类型声明
	DTD文档类型定义(Document Type Definition)
	外部DTD
		<!DOCTYPE greeting SYSTEM "langhua.dtd">
	内部DTD
		<!DOCTYPE greeting [
			<!ELEMENT greeting(#PCDATA)>
		]>
元素
	元素的四种形式
		1.空元素	<student/>基本上不使用
		2.有属性的空元素	<students name="langhua" age="100"/>
		3.带有内容的空元素	<students>这是一个学生的信息<name>langhua</name><age>100</age></studenst>
		4.带有内容和属性的元素
			元素与标签的区别
				元素是指开始标签和结束标签之间的内容(含标签)  	<font a="1" b="2">langhua</font> 是元素
				标签是指<>之间的内容					</font>是一个标签
				
	元素内容的构成
		1.子元素
			子元素本身也是元素
		2.字符数据
			字符数据不能有&和<,还有]]>
				以下是错误的
					<date>&</date>
					<date><</date>
					<date>]]></date>
				正确的
					<date>&</date>
					<date>/</date>
					<date>/></date>
		3.字符引用
			有五个特殊的字符<,>,',",&
				&#60
		4.实体引用
			&lt;
			&gt;
			&quot;
			&apos;
			&amp;
		5.CDATA段
			不包括CDATA结束段的任意字符
			<![CDATA[
				if(array[a[1]]>0){	这种应该放到两个CDATA段中...
					
				}
			]]>
	XML的注释
		<!-- -->
			1.注释不能放到XML声明之前(<?xml version="1.0" encoding="utf-8" standalone="yes"?>)
			2.注释不能出现在标记中
			3.注释可注释元素,但保证XML文档结构的完整性
			4.字符串不能出现--双连字符
			5.不能用--->结尾
	处理指令
	行尾处理
	语言标识
	<!-******************************************************-->
	DTD
		如何在XML引入DTD
			1.要在声明之后,根元素之前
			2.在XML文件内容定义DTD
				<!DOCTYPE greeting [
					<!ELEMENT greeting (#PCDATA)>
				]>
			3.内部定义DTD的缺点
				1.长度增加
			4.外部定义DTD
				<!DOCTYPE greeting SYSTEM "xxx.dtd">
				greeting 是指根元素的名称
				xxx.dtd可以是绝对或相于URI
				公共的外部DTD
					<!DOCTYPE (这里写根元素的名称) PUBLIC "DTD的名称" "URI.dtd">
					如果DTD的名称找不到,就在后面的URI地址去找					
						DTD名称的组成
							1.如果一个DTD是ISO标准要以ISO开始,
							  如果一个非ISO的标准组织批准的DTD要以+开始,
							  如果不是标准组织批准的DTD要以-开始
							  然后后面跟//
							  后面加DTD所有者的名字
							  后面再跟//
							  DTD文档的类形
							  后面再跟//
							  最后再加上语言标识符
							  EN,ZH
						下面是HTML的例子
						<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
					文档类型声明<!DOCTYPE greeting SYSTEM "xxx.dtd">
					和文档类型定义<!ELEMENT greeting (#PCDATA)>的区别
					
			   元素类型声明
			   		<!ELEMENT 元素名称 元素内容说明>
			   			#PCDATA   字符数据
			   			子元素
			   			混合内容
			   			ANY(可能包函任何的字符数据和字元素,避免使用)
			   			EMPTY(是一个空元素)
			   		*表示0或多个
			   		+表示1或多个
			   		?表示0或1个
			   		|两个中只能选一个
			   		使用混合类型的时候#PCDATA必须是第一个选项
			   实体引用
			   	1.一般实体引用
			   		<!ENTITY 实体名字 "实体内容">
					实体引用----	&实体名字;
				2.参数实体引用(只能在外部DTD中使用,在XML中不能在标签中使用参数实体引用,但内部DTD能在标签外部使用参数实体引用)
					<!ENTITY % 实体名字 "实体内容">
						%实体名字;
						在DTD中的引用<!ENTITY % yyy "langhua"> <!ENTITY xxx "xiao%yyy;">
				 DTD的读取方式
				 	先读内部的DTD
				 	再读外部的DTD
				 	外部的DTD不能引入内部DTD实体引用
				 	而内部DTD能引入外部的DTD实体引用
			属性的声明
				<!ATTLIST 元素名 属性名 属性类型 缺省声明>
					元素名是属性所属元素的名字
					属性名是指属性的名字
					属性类型分十种
						1.CDATA
						2.Enumerated <!ATTLIST person sex(male|female) #REQUIRED>
						
					缺少声明指该属性是否必须出现,如果不出现怎么办?
						1.#REQUIRED说明必须为元素提供该属性
						2.#IMPIED说明可有可无的,无所谓	
						3.#FIXED+缺省值 <!ATTLIST article copyright CDATA #FIXED "copyright is ...">
							如果没有这个属性就用缺省值,文档编写者不参改变这个参数值
						4.只有缺省值,但是这个值是可以改变的,FIXED是不能改变的
		   XML的处理器/解析器
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics