XML 高速入门总结
XML已经学习完了一段时间了。一直感觉知识比較琐碎,没有去好好总结。事实上越琐碎的知识也越须要我们去好好
理一下。将知识串起来。争取变得不再琐碎。以下是我学完xml画的一张图。
以下对XML进行一下简单的介绍。
xml介绍
XML 指可扩展标记语言(EXtensible Markup Language)。 是一种标记语言,非常类似 HTML。
XML 的设计宗旨是
数据传输。而非显示数据。XML 标签没有被提前定义。须要自行定义标签。XML 被设计为具有自我描写叙述性。
XML 是 W3C
的推荐标准。
XML 与 HTML 的主要差异
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据。其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
语法
(1)全部 XML 元素都须有关闭标签
(2)XML 标签对大写和小写敏感
(3)XML 必须正确地嵌套
(4)XML 文档必须有一个元素是全部其它元素的父元素。该元素称为根元素。
DTD和Schema
Schema是对XML文档结构的定义和描写叙述,其基本的作用是用来约束XML文件,并验证XML文件有效性。DTD的作用
是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。它们之间的差别有以下几点:
(1)Schema本身也是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有非常多的优点。
(2)DTD文档的结构是“平铺型”的,假设定义复杂的XML文档,非常难把握各元素之间的嵌套关系;Schema文档
结构性强。各元素之间的嵌套关系很直观。
(3)DTD仅仅能指定元素含有文本,不能定义元素文本的详细类型,如字符型、整型、日期型、自己定义类型等。
Schema在这方面比DTD强大。
(4)Schema支持元素节点顺序的描写叙述,DTD没有提供无序情况的描写叙述。要定义无序必需穷举排列的全部情况。
Schema能够利用xs:all来表示无序的情况。
(5)对命名空间的支持。
DTD无法利用XML的命名空间,Schema非常好满足命名空间。而且,Schema还提供了
include和import两种引用命名空间的方法。
Schema是对DTD的替代。
个人点睛
上述图中的三种标记语言的发展顺序为:html(超文本标记语言)——xhtml(可扩展性超文本标记语言)——
xml(可扩展性标记语言)。在学习知识的时候首先要把大背景给搞清楚。弄清了语言之间的关系。理清了思路,学
习起来就有条理了。
XML 高速入门总结的更多相关文章
- XML高速入门
XML是什么 Extensible Markup Language 自己定义标签: 用来数据传输: 可扩展标记语言,是一种类似超文本标记语言的标记语言. 与HTML的比較: 1.不是用来替代HTML的 ...
- Hadoop高速入门
Hadoop高速入门 先决条件 支持平台 GNU/Linux是产品开发和执行的平台. Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证. Win32平台是作为开发平台支 ...
- Bmob移动后端云服务平台--Android从零開始--(二)android高速入门
Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...
- Windows下FFmpeg高速入门
本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...
- XML新手入门 创建构造良好的XML(1)
XML新手入门 创建构造良好的XML(1) 2009-03-19 09:24 Kay Whatley IBM Developerworks 我要评论(0) 字号:T | T 本文描述了构建良好的XML ...
- XML实例入门2
工具:notepad++.VS2008(MSXML6.0) 来自msdn的例子(经过修改,因为升级到MSXML6.0,有些关键字不太一样了), 需要文件books.xml,books.vsd(博客只支 ...
- Tensorflow高速入门2--实现手写数字识别
Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...
- C语言高速入门系列(二)
C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...
- Swift高速入门之函数
函数 看一个函数的样例: func addNumbers( let a:Int,let b:Int)->Int{ return a+b; } 实现两个数相加.函数必须以func开头,后面是函数名 ...
随机推荐
- Google Protocol Buffer的安装与.proto文件的定义(转)
转自(https://www.cnblogs.com/yinheyi/p/6080244.html) 什么是protocol Buffer呢? Google Protocol Buffer( 简称 P ...
- C++ 螺旋矩阵算法
清理磁盘空间的时候翻出了多年前写过的螺旋矩阵,代码效率和水平较低,纪念一下,保存到博客园! // ConsoleApplication3.cpp : 定义控制台应用程序的入口点. // #includ ...
- crontab机会任务监控
<1>如何查看自己的计划任务是否成功的执行? 昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang ...
- ASP.NET MVC环境下实现一个网站多个网站模板的方法
asp.net mvc下实现多个网站模板的方法,让ASP.NET一个网站有多套网站模板,不用的场景下使用不用的mvc 模版. 比如有默认,红,蓝,绿几种网站模板,客户可以根据自己喜好选择自己喜欢的网 ...
- poj1093
题意:给出一个句子和要求整理后每行包含的字符数,要求将其整理为一种总badness最小的形式.设每个空格长度为n,单个空格的badness计算公式为(n-1)^2.总badness等于所有空格的bad ...
- js字符串操作之substr与substring
substr和substring两个都是截取字符串的. 两者有相同点,如果只是写一个参数,两者的作用都是一样的:就是截取字符串当前下标以后直到字符串最后的字符串片段. 例如: `var a=" ...
- C++ code:动态内存
C++给我们提供了动态内存分配的new和delete操作.一般而论,new和delete操作多用在内存需求捉摸不定的场合.然而,需要处理的数据,如果变动范围很小,我们可以用STL中通用型的容器来做,大 ...
- mysql添加远程访问权限
GRANT 权限列表 ON 数据库.表 TO 用户账号 @ 用户ip IDENTIFIED BY 用户密码 授权命令; 权限列表:允许用户执行的操作权限. 包含select,insert,update ...
- 如何在CI中写工具类,在哪个目录写
在Libraries目录写工具类,可以参考项目中七牛的集成写法 而Helps目录写的是辅助函数(公共函数)这一类的
- .NetCore 中如何实现分页以及编写一个URL分页
首先看下效果 这个分页控件不是很完美,体现下思路就行了,有兴趣的可以自己完善,我把代码贴出来,在这边文章中已有一些介绍 代码 public class UosoPagerTagHelper : Tag ...