XML语言基础1
这学期选修了XML技术这门课,没有发课本,于是参考了W3school教程,整理一下上课的内容。
1.XML简介
XML是一种标记语言,很类似HTML,它不是对HTML的替代,而是对HTML的补充。在大多数web应用程序中,XML用于传输数据,而HTNL用于格式化并显示数据。
XML语言和HTML语言的比较
|
名称 |
作用 |
标签 |
省略关闭标签 |
元素错误嵌套 |
空格的处理 |
|
|
HTML |
超文本标记语言(Hyper Text Markup Language) |
显示数据 注重数据外观 |
预定义 |
合法 |
允许 |
连续空格合并为一个 |
|
XML |
可扩展标记语言(Extensible Markup Language) |
传输和存储数据 注重数据内容 |
自定义 |
非法 |
不允许 |
空格不会被删节 |
2.XML元素
什么是XML元素?
XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category=""WEB>
<title>Learing XML</title>
<author>Erik T .Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
3.XML命名规则和最佳命名习惯
必须遵循的命名规则:
名称可以含字母数字和其他字符。
名称不能以数字和标点符号开始。
名称不能以xml(或者XML、Xml)开始。
名称不能包含空格。
最佳命名习惯
使名称具有描述性,名称应当比较简短。
避免“-”、“.”、“:”字符。
XML文档通常有一个对应的数据库,其中的字段会对应XML文档中的元素。
有一个使用的经验,使用XML数据库中的命名规则来命名XML文档中的元素。
4.XML元素是可扩展的
XML的优势之一就是可以在不中断应用程序的情况下进行扩展。
5.XML属性
XML元素可以在开始标签中包含属性,类似HTML。
属性(Attribute)提供关于元素的附加信息。
属性通常提供不属于数据组成部分的信息,在下面例子中,文件类型和数据内容无关,但是对于需要处理这个元素的软件来说却很重要。
<file type="gif">computer.gif</file>
XML属性值必须被引号包围,单引号、双引号均可。
XML的元素和属性的使用
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person> <person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
这个例子告诉我们,无论用属性还是元素均可提供相同的信息。
那么什么时候该使用属性,什么时候使用子元素呢?
因使用属性而引起的一些问题:
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护
所以,请尽量用元素来描述数据,而仅仅用属性提供与数据无关的信息。
6.XML验证
拥有正确语法的XML被称为“形式良好的”XML。
通过DTD验证的被称为“合法的”XML。
“形式良好”或“结构良好”的 XML 文档拥有正确的语法。
“形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则:
- XML 文档必须有根元素
- XML 文档必须有关闭标签
- XML 标签对大小写敏感
- XML 元素必须被正确的嵌套
- XML 属性必须加引号
<?xml version="1.0" encoding="ISO-8859-1">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
XML DTD
DTD的作用是定义XML文档结构,它使用一系列合法元素来定义文档结构。
XML语言基础1的更多相关文章
- XML语言基础3--Schema
1.什么是Schema XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式. XML Schema规定XML文档实例的结构和每个元素/属性的数 ...
- XML语言基础2 DTD
XML DTD 文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档结构. DTD可被声明于XML文档中,也可以作为一个外部的引用. 内部的DOCTYPE声明 假如D ...
- C#语言基础
第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...
- php面试题之三——PHP语言基础(基础部分)
三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...
- xml之基础了解
1.简介 1>什么XML语言(eXtensible Markup Language) 可扩展标记语言XML是SGML的子集,其目标是允许普通的SGML在Web上以目前HTML的方式被服务.接受和 ...
- 2008技术内幕:T-SQL语言基础
2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...
- js-day01-js语言基础
JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- D15——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D15 20180926内容纲要: 1.CSS介绍 2.CSS的四种引入方式 3.CSS选择器 4.CSS常用属性 5.小结 6.练习 1 CSS介绍 层叠样式表 ...
- D10——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D10 20180906内容纲要: 1.协程 (1)yield (2)greenlet (3)gevent (4)gevent实现单线程下socket多并发 2. ...
随机推荐
- OpenSNS开发笔记(1)
数据分页: $Data = M('Channel'); // 实例化Data数据模型 $content = $Data->page($page, 4)->select(); $totalC ...
- CSS使图片变灰
为了悼念,各大网站都纷纷将自己的站点颜色调灰,就连图片也一样,到底如何实现的呢,请看下面的代码. 〈img src="http://hovertree.com/hvtimg/201512/f ...
- C#中WinForm窗体事件的执行次序
C#中WinForm窗体事件的执行次序如下: 当 Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件: System.Windows.Forms.Control ...
- Scalaz(55)- scalaz-stream: fs2-基础介绍,fs2 stream transformation
fs2是scalaz-stream的最新版本,沿用了scalaz-stream被动式(pull model)数据流原理但采用了全新的实现方法.fs2比较scalaz-stream而言具备了:更精简的基 ...
- hdu-4496-D-City
D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
- [javaSE] 反射-Class类的使用
JAVA-Reflect 专题 ①Class类的使用 ②方法的反射 ③成员变量的反射 ④构造函数的反射 ⑤java类的加载机制 Ⅰ在面向对象的世界里,万事万物皆为对象 类是对象,类是java.lang ...
- [moka同学笔记]Yii2 数据操作Query Builder 2
Query Builder $rows = (new \yii\db\Query()) ->select(['dyn_id', 'dyn_name']) ->from('zs_dynast ...
- HDU 3328 Flipper 栈 模拟
首先想说,英语太烂这题读了很长时间才读懂......题意是说输入有几张牌,然后输入这些牌的初始状态(是面朝上还是面朝下),然后输入操作方式,R表示翻一下右边的牌堆,L表示翻一下左边的牌堆,直到最后摞成 ...
- python读取文件的前几行
文件内容rolling.txt: There's a fire starting in my heart 我怒火中烧 Reaching a fever pitch and it's bringing ...
- android 6.0添加权限
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissio ...