XML 是代表可扩展的标记语言(XML stands for Extensible Markup Language)
XML 是设计用来储存数据和运载数据的
XML 是设计用来携带数据的,而不是展示数据的
XML 的标记不是预定义的,你必须自己定义自己的标记
XML 是用来携带数据和存储的和简化分享,而HTML 用来展示数据和格式化数据的 ,XML和HTML 在一起就是内容和形式的关系.
一套内容可以有多重表示方式,一个形式,可以展示同一结构的的不同的数据
Java EJB里的实体是一个POJO ,而XML 是一个 Plain text
WSDL for describing available web services
WAP and WML as markup languages for handled devices
RSS languages for news feeds
RDF and OWL for describing resource and ontology.
XML 文档组成树的结构 起于树根 (root)到分支到树叶 一个root element 其它都是child elements
parent children sibling
XML 规则
1.必须有个结束标记(tag)
The declaration is not a part of the XML document itself, and it has no closing tag.
声明不是XML 文档本身,所以没有结束标记
2.XML tags 是区分大小写的
3.XML 元素必须有合理的嵌套
4.XML必须有根元素
5.Entity References 由于字符的两意性,所以必须用到实体的引用
如:< 在通常的文件表示两种意思,一个是<>标号的开始,一个是<小于
在XML 里面如果用单个< 而没有配对的部分,就报错.不会认为是<小于
<message> if salary <1000 then </message> error
<meassge> if salary
< ; 1000 then </message>
< |
< |
less than 小于 |
> |
> |
greater than 大于 |
& |
& |
ampersand |
' |
' |
apostrophe单引号 |
" |
" |
quotation mark 双引号 |
"<" and "$ 在XML 里面是非法的
XML 的注释
<!-- This a comment-->
HTML 的注释,JSP和XML注释一样
Java注释有两种
单行//
多行/* */
XQuery 的注释用
(: :)
在XML 里面空格是保留不会被截去的
XML 的换行用LF
windows 用CR and LF unix 用LF ,Macintosh 用CR
XML element 是包含开始标签和结束标签之间的任何东西
XML 元素的命名规则:
1.命名可以有字母,数字,和其他字符.
2.打头不能用数字和点号(.),或者是XML ,xml 等.
3.命名不能包含空格.
最佳命名实践
1. 推荐<first_name>
2.不推荐用<first.name>【可以误认为是属性】 <first-name>【可以误认为是减】 ,: (冒号是命名空间的保留符号)
XML 的属性在开始标记里,属性是给元素提供额外的信息,必须被引用无论是
单引号还是双引号.可以单双混合 在HTML 中属性是方便的,在XML 中建议避免用元素Element 代替
为什么要避免使用属性:
1.属性不能有多个值(element 能够)
2.属性不能包含树结构(element 能够)
3.属性扩展不易
XML Attributes for Metadata
元数据应该存储为属性,而数据本身应该存储为元素.
正确的XML 文档
格式良好的XML的XML 文档必须遵循文档类型定义(DTD)的规则.
引用DTD
<!DOCTYPE note SYSTEM "Note.dtd">
XML DTD
DTD 的作用是定义XML文档的结构。它定义了合法元素的列表的结构
一个DTD的例子
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
|
DTD 在文档内部定义必须包含
<!DOCTYPE root-element [element-declarations]>
外部定义如上.
为什么使用DTD
1.使用DTD ,每个XML文件携带自身格式的描述文档。
2.验证数据。
DTD-XML Building Blocks
XML 文档由下面的构建块组成:Elements元素,Attributes属性,Entities实体
[当传递到XML解释器中实体被展开]
PCDATA 意味着需要解释的字符数据,entities 和标记会被解释器检查.
CDATA字符数据,不会被解释器所解释
Element元素
空元素
<!ELEMENT element-name EMPTY>
如:
<!ELEMENT br EMPTY>
<br />
元素包含可以剖析的字符数据
<!ELEMENT element-name (#PCDATA)>
元素包含任何内容
<!ELEMENT element-name ANY>
有子的元素
<!ELEMENT element-name (child1,child2,....)>
顺序必须一样
通配符(message) 只出现一次,(message+)至少一次,(message*)0次或更多
(message?)0次或者是1次
或关系(message|body)
声明属性
<!ATTLIST payment type CDATA "check">
枚举属性值
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
|
<!ATTLIST payment type (check|cash) "cash">
属性在和数据关联不太密切的时候才建议使用
元数据存为属性而数据本身存为元素
字符实体是一个变量用来定义标准文本和特殊字符
一个字符实体的声明
<!ENTITY copyright "Copyright W3Schools">
<authou>©right;</author>
一个实体由三个部分:&,实体名,和分号;
应用外部实体声明
<!ENTITY writer SYSTEM "http://www.w3schools.com/entities.dtd">
用XML Parser 验证
load()用在文件中,loadXML()用在字符中
已有的元素必须符合已有的规则
用
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 验证
XML Schema
XML Schema 支持数据类型和命名空间
posted on 2008-05-14 00:18
doodoosun 阅读(187)
评论(0) 编辑 收藏 所属分类:
XML