XML总结
当XML文件使用非Unicode编码时,必须在XML文档声明中指定其字符集编码,而采用Unicode编码时则可以在XML声明文档中省略字符集编码。只有在实在不能使用UTF-8或UTF-16编码文本文件时,才应考虑使用本地字符集。
如果在一个元素中没有嵌套子元素和数据,也就是标记对之间没有内容,这样的元素称为空元素。空元素可以不使用结束标记,但必须在起始标记的结束定界符(>)前面增加一个正斜杠(/)字符来说明该标记是一个空元素,空元素标记一般都与属性配合使用,例如<img src="img.jgp" />
XML元素不允许使用标签交叉,所有元素必须合理嵌套。例如:<b>welcome to <i>www.baidu.com</b></i>
这样在HTML中是可以的,但在XML中绝对不允许。
XML标记元素的规则:区分大小写??? 不能以数字或“_”开头??? 不能以字符组合XML(或XMl,xml)开头??? 不能包含空格??? 名称中间不能包含冒号(:)???
建议习惯:不使用点(.)??? 不要用减号(-)??? 名称尽量简短??? 名称大小写尽量采用统一标准
如果想将类似<text>的文本表示成原义文本,可以将其放在CDATA区,CDATA区以“<![CDATA[”开始,以“]]”结束。解析器不会对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序去处理。注意CDATA区中不能出现]],且CDATA一定要大写。
XML中的特殊字符,& &? <? < >? >? "? "? '? '
XML的处理指令:使用CSS控制XML的显示效果:<?XML-stylesheet type="text/css" href="book.css"?>
DTD文档元素定义:
<!ELEMENT 元素名称 使用规则>
使用规则:
(#PCDATA):被解析的字符数据,即普通文本字符
(子元素,子元素)/(子元素,#PCDATA)
?EMPTY:空元素
?ANY:表示内容可以是任何形式的
注意:? DTD使用与XML文档同样的注释方式
??? 没条元素定义语句的顺序是无关紧要的
??? 具有不同用途的元素不能使用相同的元素名
??? 一个元素的各个组成成分之间可以有各种关系:
<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)> :可以按任意顺序出现
<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>:按先后顺序出现
<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>:包含三个中的任何一个
定义子元素的出现次序:(class+)一次或多次、(class?)一次或没有、(class*)不出现或一次或多次、(class)一次
一个()可用于将括号在其中的内容组合成一个可统一操作的分组,分组中可用嵌套更小的分组。
例:<!ELEMENT MYFILE ((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>
定义DTD元素的属性:
<!ATTLIST 元素名
??? 属性名1 属性类型 设置说明
??? 属性名2 属性类型 设置说明
??? .......
??? >
设置说明:#REQUIRED:必须有
??? ? #IMPLIED:可以有也可以没有
??? ? #FIXED:固定为某一个值
??? ? 直接使用默认值
属性类型:CDATA:普通文本字符串,特殊字符需要使用转义字符
??? ? ENUMERATED:一组值中的某一个,枚举类型
??? ? ID:唯一标示一个元素???