本篇文章是从曹胜欢的博客http://blog.csdn.net/csh624366188转载的
Xml基础详解
Xml:可扩展标记语言(ExtensibleMarkupLanguage,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
Xml的基本语法:
2可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag/>。XML解析器会将其翻译成<tag></tag>。
3标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如thisisasamplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
4所有的特性都必须有值。
5所有的特性都必须在值的周围加上双引号。
6.对于XML文档来说,<?处理指令必须要顶格写,前面不能有任何的空白。
属性值需要使用单引号或双引号括起来。多个属性之间使用空格分开。
8.通过样式,我们可以实现XML内容与展现形式的分离
9.XML的注释:<!--comments-->,注释不允许嵌套
10.在一个元素上,相同的属性只能出现一次。
注意以下几点:
1.XML中的每个元素都是成对出现的(有开始,有结束),<student></student>,XML中的元素嵌套关系要保持正确性,即先开始的标记要先结束,后开始的标记要后结束。
2.每一个XML文档都有且只有一个根元素(RootElement)。所谓根元素,就是唯一一个包含了其他所有元素的元素。
3.XML描述的是文档的内容与语义,而不是文档应当如何显示。
4.格式正规(wellformed)的XML文档。符合XML语法要求的XML文档就是格式正规的XML文档。
5.有效的(valid)XML文档。首先XML文档是个格式正规的XML文档,然后又需要满足DTD的要求,这样的XML文档称为有效的XML文档
6.#PCDATA(ParsedCharacterData),可解析的字符数据。
XML文件的验证机制——DTD
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD可被成行地声明于XML文档中,也可作为一个外部引用。
假如DTD被包含在您的XML源文件中,它应当通过下面的语法包装在个DOCTYPE声明中:
<!DOCTYPE根元素[元素声明]>
带有DTD的XML文档实例
<?xmlversion="1.0"?>
<!DOCTYPEnote[
<!ELEMENTnote(to,from,heading,body)>
<!ELEMENTto(#PCDATA)>
<!ELEMENTfrom(#PCDATA)>
<!ELEMENTheading(#PCDATA)>
<!ELEMENTbody(#PCDATA)>]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don'tforgetmethisweekend</body>
</note>
以上DTD解释如下:!DOCTYPEnote(第二行)定义此文档是note类型的文档。
!ELEMENTnote(第三行)定义note元素有四个元素:"to、from、heading,、body"
!ELEMENTto(第四行)定义to元素为"#PCDATA"类型
!ELEMENTfrom(第五行)定义from元素为"#PCDATA"类型
!ELEMENTheading(第六行)定义heading元素为"#PCDATA"类型
!ELEMENTbody(第七行)定义body元素为"#PCDATA"类型
假如DTD位于XML源文件的外部,那么它应通过下面的语法被封装在一个DOCTYPE定义中: <!DOCTYPE根元素SYSTEM"文件名"> 这个XML文档和上面的XML文档相同,但是拥有一个外部的DTD:
- <?xmlversion="1.0"?>
- <!DOCTYPEnoteSYSTEM"note.dtd">
- <noteto>Tove</from>Janiheading>Reminderbody>Don'tforgetmethisweekend!>