`

XML基本语法介绍

阅读更多

第一部分:文档声明

 

文档声明必须在XML文档的第一行,按照严格的XML语法,声明语句前面不应该有空行

  • 最简单的声明语句,version属性表示XML版本,是必须的
<?xml version="1.0" ?>
  •  用encoding属性说明文档字符编码,不是必须的。当没有声明时,解析器默认以utf-8,或者utf-16对其解读。
<?xml version="1.0" encoding="GB2312" ?>
  •  用standalone属性说明文档是否独立,属性值可以是yes或者no,不是必须的
<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
  •  关于encoding属性的设置:写包含中文内容的XML时,如若编码声明不当,会导致解析器无法正常解析。注意两点:(保证源文件编码与声明语句声明的编码要一致,encoding属性告诉解析器以特定的编码解析源文件
  1. 编辑的源文件应该保存为utf-8,GBK,GB2312其中一个编码。
  2. 在XML声明中encoding属性值要和第一点中选择的编码相同。如果保存为utf-8,可以不用在XML声明中声明,解析器会自动解析。如果用GB2312,则在encoding属性的值一定要是GB2312。

第二部分:元素定义

  • 示例
<?xml version="1.0" encoding="GB2312" ?>
<咸蛋超人>
	<超人1>
		<name>
			烤地瓜
		</name>
	</超人1>
	<超人2>
		<name>
			笨蛋
		</name>
		<id/>
		<address></address>
	</超人2>
</咸蛋超人>
  1.  一个XML元素有一个开始标记和一个对应的结束标记来定义,标记中间是内容
    <咸蛋超人>内容</咸蛋超人>
  2. 一个元素可以嵌套多个子元素
    <超人1>
    		<name>
    			烤地瓜
    		</name>
    	</超人1>
  3. 可以使用空元素,有两种表示方式,示例第12和第13行分别以两种方式声明了两个空元素。空元素的一个应用就是通过属性值传递信息。(当然,非空元素也同样可以定义属性)
    <!-- 这个空标签有属性src -->
    <image src="abc.jpg" />
     
  4. 严格的XML语法规定必须有且只有一个根元素,即示例中的<咸蛋超人></咸蛋超人>
  5. 元素标记名称规范:可以包含字母,数字以及其它字符
    • 区分大小写,<p/>和<P/>是不同标记
    • 不能以数字或者下划线“_”开头
    • 不能以字符组合xml,或者Xml,xMl,xmL,XMl,xML,XML(即xml的大小写任何组合)等开头。
    • 不能包含空格,<书  名></书   名>是错误的。
    • 不能包含冒号“:”
  6. 推荐的元素标记命名建议:
    • 命名尽量简短,减少XML大小
    • 慎重使用非英文字符,某些应用程序可能不支持非英文字符。
    • 不要使用点号“.”,点号在很多程序语言中表示引用等特殊含义。
    • 不要使用减号“-”,以下划线“_”代替,避免与表达式中的减号运算符冲突。
  7. 属性定义:
  • 一个标签可以有多个属性。
    <售价 单位="元" >58</售价>
     
  • 属性可以被改写成以子元素的形式来描述信息,效果相同。
    <售价>
                 <单位>元</单位>
                 <价格>58</价格>
    </售价>
     
  • 属性值一定要用双引号或者单引号括起来
  • 属性命名规则与标签命名规则一样。

第三部分:注释

  • 示例
    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- 注释 -->
    <书架>
    	<书>
    		<书名>好书</书名>
    		<作者>某人</作者>
    	</书>
    </书架>
     
  • 注释不能出现在XML声明之前。
  • 一对注释符号之间不能包含另外一对注释符号,一下为错误的示例
    <!-- 注释
    .......
    .......
            <!-- 局部注释 -->
    .......
    
    -->
  • 注释中出现中文无法解析问题: 解析器虽然会忽略注释内容,但是解析器对内容执行了读取动作,如若编码不当,就会出现无法解析问题。由于解析器读取注释内容与读取标签等其它内容后的处理方式不一样(解析器读取注释内容后忽略之),导致对这个问题的处理方式与之前讲XML中标签出现中文无法解析问题处理方式稍有区别。
    1.解决方案一:
    如果注释中出现中文字符,而且XML文件声明中没有指定encoding属性,那么需要将encoding属性设置为GB2312即可,无需考虑源文件是否保存为GB2312编码格式。(这个与前面所讲的标签出现中文无法解析的处理方式不同)
    
    2.解决方案二:
    将XML源文件保存为utf-8编码格式即可,无需修改XML声明中的encoding属性值。这是因为解析器默认会以utf-8编码读取内容。
     我们可以向Tomcat容器/conf/server.xml文件中添加一行中文注释<!--中文注释-->来验证,添加注释后无法启动Tomcat,通过第一个方法后就可以正常启动了。

第四部分:空格和换行处理

  • XML文件中的标签以外的所有空格和换行,XML解析程序会如实交给下游程序处理。如以下两个代码含义是不一样的。因此使用换行等方式来让源文件增强可读性的习惯要被迫改变。
    <address>WorshintonDC.USA</address>
    <!--这行标签括起来的值仅仅是WorshintonDC.USA这个字符串-->
     
    <address>
                        WorshintonDC.USA
    </address>
    <!--包含一个回车符,一个制表符,字符串WorshintonDC.USA,一个回车符-->
     

第五部分:CDATA区

  • 示例
    <script>
    	<![CDATA[
    		for(var i = 0; i < 10; i ++) {
    			
    		}
    	]]>
    </script>
     
  • CDATA区(charater data的缩写)内的内容XML解析器不会对其进行解析,它会原封不动地交给下游程序处理。
  • CDATA区内不能出现字符串“]]>”例如以下错误示例
    <javaCode>
    	<![CDATA[
    		if(array[num[i]]>10) {
    		
    		}
    	]]>
    </javaCode>
     解决方法1.
    在“]]”与“>”之间插入一个空格解决方法2:将字符串“]]>”分开放到两个CDATA区中

第六部分:特殊字符的转义

 

特殊字符 转义符号
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

 

注意:如果需要表示像&amp这样一个字符,需要转义成&amp;amp

'' 和 '  符号的转义一般用于属性值中,& 和 < 和 > 一般用于开始标签与结束标签之间的字符数据中。

 

字符数据可以是不包括任何标记的起始界定符和CDTA段定界符的任意字符串(即和号“&”和小于号“<”和               符号“]]>”),如:正确:<data>/</data>;错误:<data>&</data>;错误:<data>]]></data>

正确:<data>&amp;</data>

 

第七部分:处理指令(processing instruction,简称PI)

  • PI以“<?”开头,以“?>”结尾。
  • XML分析器吧处理指令原封不动传给应用程序,由应用程序来解析这个指令,遵照PI提供的信息要求进行处理。例如,在XML文档中,可以包含以下PI告诉浏览器使用book.css控制其显示效果
    <?xml-stylesheet type="text/css" href="book.css"?>
     
  • 示例:本示例通过在demo_PI.xml中设置PI语句引用dog.css控制demo_PI.xml文件在浏览器端的显示效果。
<?xml version="1.0" ?>
<?xml-stylesheet type="text/css" href="dog.css" ?>
<dog>
	<name>BigYellow</name>
	<owner>大傻</owner>
	<breed>sinoGun</breed>
</dog>

 

name {display:block; color:green}
owner {display:block; color:gray}
breed {display:block; color:blue}

 注意:xml-stylesheet处理指令总是放在XML声明之后,第一个元素之前。其它指令可以放在除标记内部和XML声明之前的任何位置。“<?”与“xml-stylesheet”之间不能有空格。

 

声明:至此,XML基本语法阐述完毕,以上内容为听讲张孝祥老师XML课程后自己做的总结,如有错误之处,恳请指出!

分享到:
评论

相关推荐

    XML 基本语法,里面较详细

    XML 基本语法,里面详细介绍了XML 基本语法,欢迎大家收藏。

    第2章 XML基本语法

    第2章 XML基本语法

    第二章 XML基本语法.ppt

    第二章 XML基本语法.ppt 第二章 XML基本语法.ppt

    XML编程语言的基本语法

    基本语法的介绍,是上课的课件,也是学生学习课件

    xml语法总结

    所有xml基本语法 XML 语法 文档声明: &lt;?xml version="1.0" encoding="gb2312/UTF-8" stancalone="yes/no"?&gt; 如果IE能打开就说明文档正确 全是英文半角字符 如果是UTF-8 需要另存为编码UFT-8 stancalone 文档的是否...

    xml高级编程,基本语法

    第1章 XML 简介 第2章 XML 语法 第3章 文档类型定义 第4章 数据建模与XML 第5章 文档对象模型 第6章 SAX 1.0:XML简易API 第7章 命名空间和模式 第8章 链接和查询

    XML 基础与语法

    从最基本讲起,0基础学习,内容详细。系统性学习XML,

    xml基础语法

    详细描写讲述了xml的基础语法知识,是课程资源中的精品,适合在校本科生自学

    xml基础教程(非常经典)

    xml的基础教程,介绍XML的一些基本语法构成

    C#3.0规范 XML文档标准 基本语法

    C#3.0规范 XML文档标准 C#基本语法

    XML 语言语法

    详细介绍了 XML 语言的基础语法: XML是什么? eXtensible Markup Language:可扩展置标语言。 什么是置标语言 是一种用来给文本添加标记的语言。如HTML语言,RichText文本语言。XML同样是一种置标语言。 如HTML...

    ch XML语法规则

    关于xml的基本语法,是老师的上课文档.以ch为开头,构成一系列,要学的人要积极点,多看点

    xml基础教程

    《XML 基础教程》系统地阐述了XML的基本概念和语法规则,介绍了如何用DTD与XML Schema来确保XML文档的有效性,讲述了使用CSS与XSL样式表来显示和转换XML文档的各个步骤,探讨了使用DSO与DOM访问XML文档的各种方法。...

    xml基础简介及语法使用

    对xml基本知识进行详细的分析,然后介绍几种常见的xml文档处理技术,最后用java对xml文档的解析来结束本章内容的讲解,通过本章的学习,读者将对xml基础知识有一个比较清楚的认识,并学会使用常见的xml文档操作技术...

    计算机 XML 语法概述

    必须有XML声明语句 所有的XML文档必须有一个结束标记 XML标记都是大小写敏感的 所有的XML元素必须合理包含 所有的XML文档必须有一个根元素 属性值必须使用引号"" ...在XML中注释的语法基本上和HTML中的一样

    XML基础教程与实验指导

    包括XML语法和概述、数据岛、xpath查询等

    xml基础知识文档

    xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。

    XML编程入门到精通

    关于XML基础语法介绍、高级技巧的使用。适合初级入门,也可作为熟悉人员的提高。

    XML与电子商务-第1、2章XML简介及基础语法.pptx

    XML与电子商务-第1、2章XML简介及基础语法.pptx

    Xml path 语法

    基本讲述了xml的基本的路径寻找规则。可以轻松的学到如何找到某个节点或者某些符合条件的节点。xml的寻址规则

Global site tag (gtag.js) - Google Analytics