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. ...
随机推荐
- 【人在江湖飘,哪有不带刀】神器Jumony
大神博客:http://www.cnblogs.com/Ivony/p/3447536.html 项目地址:https://github.com/Ivony/Jumony 1.安装Jumony包 在N ...
- 电脑Windows使用中遇到的那些问题
Win64位注册表导入方法 64位Windows操作系统注册表不同于32位Windows操作系统,Win64 位版本分为 32 位注册表项和 64 位注册表项.默认 64 位版本注册表编辑器 (Reg ...
- Android发送短信
// 发送短信 public void sendMsg(){ String content = edtSend.getText().toString(); SmsManager smsManager ...
- 修复 XE8 FMX Windows 列印旋转文字问题
问题:XE8 Firemonkey Windows 无法列印旋转文字(与显示在视窗里的代码相同时) 适用:XE8 Windows 平台(其它平台测试没问题) 修复前效果: 修复后效果: 修复方法: 请 ...
- Oracle数据库,用户的创建及表的创建
安装完成之后,打开浏览器,输入https://127.0.0.1:1158/em 链接至登录数据库界面 用户名:sys 口令为安装时设置的密码(一定牢记) 链接身份为:SYSDBA(以系统管理 ...
- 2016 年青岛网络赛---Sort(k叉哈夫曼)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5884 Problem Description Recently, Bob has just learn ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Maven+SSM框架实现简单的增删改查
Spring介绍: spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情.然而, Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Ja ...
- MySQL高效分页解决方案集(转)
很久以前的一次面试中,被面试官问到这个问题,由于平时用到的分页方法不多,只从索引.分表.使用子查询精准定位偏移以外,没有使用到其它方法. 后来在看其它博客看到了一些不同的方案,也一直没有整理.今天有时 ...
- Redis-分片
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集.本文第一部分将向你介绍分片的概念,第二部分将向你展示 Redis 分片的可选方案. ...