`

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简介与基本语法概览 XML(Extensible Markup Language,可扩展标记语言)是一种被广泛应用于数据交换、存储和传输的标准格式。它允许用户自定义标记来描述数据,这使得XML成为一...

    检查XML语法的工具

    总的来说,理解XML语法是处理XML文档的基础,而使用检查XML语法的工具则能有效地辅助我们避免和解决语法错误,提高工作效率。对于XML初学者来说,熟练掌握这类工具将极大地促进对XML的理解和应用。

    第2章 XML基本语法

    第2章 XML基本语法

    XML编程语言的基本语法

    首先,XML的基础语法是严格的,这意味着XML文档必须遵循一套规则以确保数据的一致性和可读性。XML文件由自定义的标记和字符数据组成,这与HTML(HyperText Markup Language)中的预定义标记不同。XML允许用户根据...

    第二章 XML基本语法.ppt

    总结来说,XML基本语法包括元素、字符数据、文件结构、语法规则和属性等关键概念。理解并掌握这些基础,将有助于构建和解析结构化的数据文档,特别是在数据交换、存储和配置文件等领域中。通过编写正确的XML文档,...

    XML 语法规则

    本文将详细介绍 XML 的基本语法规则。 #### 二、所有 XML 元素必须有关闭标签 在 HTML 中,经常可以看到一些元素没有明确的关闭标签,例如 `&lt;p&gt;` 标签。但在 XML 中,这样的做法是不允许的。所有 XML 元素都必须...

    XML语法.pdf

    在《XML语法.pdf》中,通过解析一个名为`build_for_ejb_templet.xml`的Ant构建文件,我们可以深入理解XML的基本结构和在实际应用中的用法。 首先,XML文件的开头总是以`&lt;?xml version="1.0" encoding="UTF-8"?&gt;`来...

    xml文件语法

    XML文件的语法是其规范的基础,确保了数据的准确性和一致性。 ### XML的基本语法 1. **文档声明**: XML文件通常以一个文档声明开始,告诉解析器这是一个XML文件。例如: ```xml &lt;?xml version="1.0" encoding=...

    xml语法总结

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

    xml语法检验DTD文件

    **DTD的基本概念** DTD是用来定义XML文档元素架构、元素标记、属性以及它们之间关系的规范。它分为内部DTD、外部DTD和混合内部和外部DTD三种形式。 1. **内部DTD**:在XML文档的开头,通过`&lt;!DOCTYPE&gt;`声明直接包含...

    XML介绍语法实例指南。。

    在"XML初步到精通"这个压缩包中,可能包含了XML的基础概念、语法详解、实例演示以及进阶主题,如XPath和XSLT的使用,帮助初学者逐步掌握XML的相关知识。通过深入学习和实践,你可以更好地理解和利用XML的强大功能,...

    xml高级编程,基本语法

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

    XML高级编程_第2章XML 语法

    在本章中,我们将深入探讨XML的基本语法,理解其结构和规则,并通过实例学习如何构建有效的XML文档。 #### 2. XML标记语法:解析与实践 ##### 2.1 标记语法概览 XML中的标记负责定义和描述文档或数据包(即XML...

    xml教程,xml语法,xml知识

    XML,全称可扩展标记语言(eXtensible...通过学习本教程,你将掌握XML的基本概念、语法特性以及如何在实际项目中有效利用XML。阅读提供的“XML.pdf”文件,你将获得更深入的理论知识和实践技巧,助你在IT领域游刃有余。

    xml基础简介及语法使用

    ### XML基础简介及语法使用 #### 一、XML技术基础概览 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记数据的标准文件格式,主要用于传输和存储数据。XML的强大之处在于它的灵活性和可扩展性,...

    C#操作xml之xpath语法

    本文将深入探讨XPath的基础语法及其在C#中的应用。 #### XPath简介 XPath是一种用于在XML文档中查询和定位元素与属性的强大语言。其语法类似于文件系统的路径表达式,但更灵活,允许使用模式匹配和条件筛选。通过...

    XML实现个人介绍网页

    1. XML的基本结构和语法规则。 2. DTD和XSD在定义XML文档结构中的作用。 3. 如何使用CSS为XML数据添加样式,使其以表格形式呈现。 4. XSLT在将XML转换为HTML中的应用。 对于初学者来说,这个项目提供了一个很好的...

    ch XML语法规则

    XML(eXtensible Markup Language)是一种用于...理解并掌握这些XML语法基础对于编写、解析和维护XML文档至关重要。通过深入学习,你可以创建出结构清晰、易于理解和处理的XML文档,从而更好地实现数据的交流和存储。

Global site tag (gtag.js) - Google Analytics