---------------------------------------xml文档声明及基本语法-------------------------------------------

XML文档声明

1 什么是xml文档声明

可以把xml文档声明看成是xml文档说明。

最简单的xml文档声明:<?xml version="1.0"?>

  注意,XML是区别大小写,这一点不同与HTML!

2 xml文档声明结构

l  version属性:用于说明当前xml文档的版本,因为都是在用1.0,所以这个属性值大家都写1.0,version属性是必须的;

l  encoding属性:用于说明当前xml文档使用的字符编码集,xml解析器会使用这个编码来解析xml文档。encoding属性是可选的,默认为UTF-8。注意,如果当前xml文档使用的字符编码集是gb2312,而encoding属性的值为UTF-8,那么一定会出错的;

l  standalone属性:用于说明当前xml文档是否为独立文档,如果该属性值为yes,表示当前xml文档是独立的,如果为no表示当前xml文档不是独立的,即依赖外部的约束文件。默认是yes

l  没有xml文档声明的xml文档,不是格式良好的xml文档;

l  xml文档声明必须从xml文档的1行1列开始。

------------------------------------------------------------------------------------------

XML元素

1 XML元素的格式1

l  xml元素包含:开始标签、元素体(内容)、结束标签。例如:<hello>大家好</hello>

l  空元素:空元素只有开始标签,没有元素体和结束标签,但空元素一定要闭合。例如:<hello/>

2 XML元素的格式2

l  xml元素可以包含子元素或文本数据。例如:<a><b>hello</b></a>,a元素的元素体内容是b元素,而b元素的元素体内容是文本数据hello。

l  xml元素可以嵌套,但必须是合法嵌套。例如:<a><b>hello<a></b>就是错误的嵌套。

3 XML文档的根元素

格式良好的xml文档必须且仅有一个根元素!

student1.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<students>

<student number="1001">

<name>zhangSan</name>

<age>23</age>

<sex>male</sex>

</student>

<student number="1002">

<name>liSi</name>

<age>32</age>

<sex>female</sex>

</student>

</students>

student2.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<student number="1001">

<name>zhangSan</name>

<age>23</age>

<sex>male</sex>

</student>

<student number="1002">

<name>liSi</name>

<age>32</age>

<sex>female</sex>

</student>

student1.xml是格式良好的xml文档,只有一个根元素,即students元素。

student2.xml不是格式良好的xml文档,有两个根元素,即两个student根元素。

4 元素中的空白

xml元素的元素体可以包含文本数据和子元素。

a.xml

<a><b>hello</b></a>

b.xml

<a>

<b>

hello

</b>

</a>

  a.xml中,<a>元素只有一个子元素,即<b>元素。<b>元素只有一个文本数据,即hello。

b.xml中,<a>元素中第一部分为换行缩进,第二部分为<b>元素,第三部分为换行。b元素的文本数据为换行、缩进、hello、换行、缩进。

其中换行和缩进都是空白,这些空白是为了增强xml文档的可读性。但xml解析器可能会因为空白出现错误的解读,这说明在将来编写解析xml程序时,一定要小心空白。

5 元素命名规范

  xml元素名可以包含字母、数字以及一些其它可见字符,但必须遵循下面的一些规范:

l  区分大小写:<a>和<A>是两个元素;

l  不能以数字开头:<1a>都是错误的;

l  最好不要以xml开头:<xml>、<Xml>、<XML>;

l  不能包含空格;

6. 元素属性

l  属性由属性名与属性值构成,中间用等号连接;

l  属性值必须使用引号括起来,单引或双引;

l  定义属性必须遵循与标签名相同的命名规范;

l  属性必须定义在元素的开始标签中;

l  一个元素中不能包含相同的属性名;

7. 注释

l  注释以<!--开头,以-->结束;

l  注释中不能包含--;

8.转义字符和CDATA区

因为在xml文档中有些字符是特殊的,不能使用它们作为文本数据。例如:不能使用“<”或“>”等字符作为文本数据,所以需要使用转义字符来表示。

例如<a><a></a>,你可能会说,其中第二个<a>是a元素的文本内容,而不是一个元素的开始标签,但xml解析器是不会明白你的意思的。

把<a><a></a>修饰为<a>&lt;a&gt;</a>,这就OK了。

  转义字符都是以“&”开头,以“;”结束。这与后面我们学习的实体是相同的。

9. CDATA区(CDATA段)

当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低。这时如果使用CDATA段就会好一些。

在CDATA段中出现的“<”、“>”、“””、“’”、“&”,都无需使用转义字符。这可以提高xml文档的可读性。

<a><![CDATA[<a>]]></a>

  在CDATA段中不能包含“]]>”,即CDATA段的结束定界符。

代码示例:

<?xml version="1.0" encoding="UTF-8"?>

<students>

<student stuno="01">

<name>张三</name>

<age>23</age>

<gender>男</gender>

</student>

<!--注释中不能有两横线 -->

<student stuno="02">

<name>张三</name>

<age>age&lt;23</age><!--年龄小于23 -->

<gender>男</gender>

</student>

<!--定义cdata区 -->

<![CDATA[

<student stuno="01'">

<name>张三</name>

<age>age<23</age>

<gender>男</gender>

</student>

]]>

</students>

xml文档声明及基本语法相关推荐

  1. xml文档声明、处理指令、注释

    菜鸟一只,若有不正之处,还请批评指正. 1.文档声明 作用:告诉xml处理程序,这个文档是一个标准的xml文档,并声明文档语法所遵循的xml版本.文档内容的编码格式以及是否与外部其他文件有依赖关系. ...

  2. 关于XML文档的讲解

    1        XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...

  3. VC++ MSXML创建XML文件以及对XML文档解析

    VC++ MSXML创建XML文件以及对XML文档解析 转自http://www.newxing.com/Tech/Program/Cpp/703.html // XmlCreationDemo.cp ...

  4. UTF-8不是兼容Unicode吗? 那UTF-8也应该支持中文啊, 为什么上面的XML文档会 出现字符集错误的情况呢?

    UTF-8 确实是兼容Unicode,也确实对中文有很好的支持,但需要指出的是:当我们使用文本编辑工具保存XMl文档(其实质还是文本文件)时也涉及字符集的问题,众所周知,磁盘上的所有文件都以二进制开工 ...

  5. XML 解析XML文档 XML约束

    XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...

  6. Schama —— Xml文档约束技术 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  7. XML文档类型定义DTD

    DTD概述 DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性 DTD定义了XML文档可用的词汇(元素和属性的名称)和结构: 元素名称,包括根元素 元素的属性及属性 ...

  8. (五)DTD验证XML文档

    一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文 ...

  9. C#来创建和读取XML文档 [转]

    C#来创建和读取XML文档  [关键词]:XML 录入:小鱼之家 来源:http://fisher.xundain.com 时间:2005-3-3 23:41:54 点击:85次 扩展标记语言XML( ...

最新文章

  1. 参加海峡两岸城市地理信息系统论坛2010 年会(一张图、规划信息化和空间句法的碎碎念)...
  2. python比较两个xml_python比较2个xml内容的方法
  3. PDF编辑软件Nitro PDF Professional 6
  4. 江苏省教育厅与阿里云合作变革“智慧教育”
  5. Python 安装 uWSGI并运行一个入门示例
  6. Codeforces Global Round 3 A. Another One Bites The Dust
  7. 算法4------字符串的字典序最长子序列
  8. 【遥感物候】Matlab求解一元六次多项式,计算植被生长季始期
  9. mongodb中Gson和java##Bean对象转化类
  10. Oracle根底数据标准存储名目浅析(三)——日期标准(三)
  11. 计算机网络——网络层
  12. 单应性矩阵的理解及求解
  13. 独家放送!搞定大屏可视化,深得老板心的大屏在这里
  14. js获取url链接中的域名部分
  15. CentOS搭建tg的MTProxy代理
  16. 使用Clonezilla复制硬盘
  17. html5页面的dtd定义是,DTD的作用
  18. 增加客流量的方法_如何增加博客流量-简单的方法(27条可靠的技巧)
  19. ‘click‘ handler took 3858s如何解决
  20. Android 自定义锁屏_开发自定义ROM提速:红米Note 6 Pro等Android Pie内核源代码上线...

热门文章

  1. 众多文章引用的,氧自由基抗氧化能力(ORAC)活性检测试剂盒
  2. java用drawline画血条,Java小项目之坦克大战单机1.0版
  3. web服务器稳定测试,web服务器测试脚本 - 漂浮 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. 拆机指点杆小红点的线序及PTPM754DR引脚定义
  5. SaaS应用的十二要素
  6. 选择结构习题:输入0~6的数字,输出对应星期的英文。
  7. C++:情人节(团体程序设计天梯赛)
  8. linux同一行分割两个指令的符号,awk -F选项同时指定多个符号做为分割符时遇到空格坑,题目:请执行命令取出 linux 中 eth0 的 IP 地址...
  9. 中国的“猪脸识别”技术火了!人工智能养猪且不是肯方便?
  10. 英语作业 计算机科学与应用,计算机专业英语作业及答案(42页)-原创力文档...