xml文档声明及基本语法
---------------------------------------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"?> |
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><a></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<23</age><!--年龄小于23 --> <gender>男</gender> </student> <!--定义cdata区 --> <![CDATA[ <student stuno="01'"> <name>张三</name> <age>age<23</age> <gender>男</gender> </student> ]]> </students> |
xml文档声明及基本语法相关推荐
- xml文档声明、处理指令、注释
菜鸟一只,若有不正之处,还请批评指正. 1.文档声明 作用:告诉xml处理程序,这个文档是一个标准的xml文档,并声明文档语法所遵循的xml版本.文档内容的编码格式以及是否与外部其他文件有依赖关系. ...
- 关于XML文档的讲解
1 XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...
- VC++ MSXML创建XML文件以及对XML文档解析
VC++ MSXML创建XML文件以及对XML文档解析 转自http://www.newxing.com/Tech/Program/Cpp/703.html // XmlCreationDemo.cp ...
- UTF-8不是兼容Unicode吗? 那UTF-8也应该支持中文啊, 为什么上面的XML文档会 出现字符集错误的情况呢?
UTF-8 确实是兼容Unicode,也确实对中文有很好的支持,但需要指出的是:当我们使用文本编辑工具保存XMl文档(其实质还是文本文件)时也涉及字符集的问题,众所周知,磁盘上的所有文件都以二进制开工 ...
- XML 解析XML文档 XML约束
XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...
- Schama —— Xml文档约束技术 学习笔记
本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...
- XML文档类型定义DTD
DTD概述 DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性 DTD定义了XML文档可用的词汇(元素和属性的名称)和结构: 元素名称,包括根元素 元素的属性及属性 ...
- (五)DTD验证XML文档
一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文 ...
- C#来创建和读取XML文档 [转]
C#来创建和读取XML文档 [关键词]:XML 录入:小鱼之家 来源:http://fisher.xundain.com 时间:2005-3-3 23:41:54 点击:85次 扩展标记语言XML( ...
最新文章
- 参加海峡两岸城市地理信息系统论坛2010 年会(一张图、规划信息化和空间句法的碎碎念)...
- python比较两个xml_python比较2个xml内容的方法
- PDF编辑软件Nitro PDF Professional 6
- 江苏省教育厅与阿里云合作变革“智慧教育”
- Python 安装 uWSGI并运行一个入门示例
- Codeforces Global Round 3 A. Another One Bites The Dust
- 算法4------字符串的字典序最长子序列
- 【遥感物候】Matlab求解一元六次多项式,计算植被生长季始期
- mongodb中Gson和java##Bean对象转化类
- Oracle根底数据标准存储名目浅析(三)——日期标准(三)
- 计算机网络——网络层
- 单应性矩阵的理解及求解
- 独家放送!搞定大屏可视化,深得老板心的大屏在这里
- js获取url链接中的域名部分
- CentOS搭建tg的MTProxy代理
- 使用Clonezilla复制硬盘
- html5页面的dtd定义是,DTD的作用
- 增加客流量的方法_如何增加博客流量-简单的方法(27条可靠的技巧)
- ‘click‘ handler took 3858s如何解决
- Android 自定义锁屏_开发自定义ROM提速:红米Note 6 Pro等Android Pie内核源代码上线...
热门文章
- 众多文章引用的,氧自由基抗氧化能力(ORAC)活性检测试剂盒
- java用drawline画血条,Java小项目之坦克大战单机1.0版
- web服务器稳定测试,web服务器测试脚本 - 漂浮 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 拆机指点杆小红点的线序及PTPM754DR引脚定义
- SaaS应用的十二要素
- 选择结构习题:输入0~6的数字,输出对应星期的英文。
- C++:情人节(团体程序设计天梯赛)
- linux同一行分割两个指令的符号,awk -F选项同时指定多个符号做为分割符时遇到空格坑,题目:请执行命令取出 linux 中 eth0 的 IP 地址...
- 中国的“猪脸识别”技术火了!人工智能养猪且不是肯方便?
- 英语作业 计算机科学与应用,计算机专业英语作业及答案(42页)-原创力文档...