XML的基础(概念和语法)

xml html 概念 异同 

XML全称为extensible markup language,即可扩展标记语言,简单理解为可预定义标签的编程语言。它与HTML(超文本标记语言)类似,但它主要用于数据存储和传输数据,而HMTL用于显示数据.

可概括为以下几点

1.名称是可扩展标记语言,理解为可预定义标签
2.它与HTML(超文本标记语言)类似
3.主要用于存储和传输数据
4.具有自我描述性,自定义标签名即其功能特性,如标签名为student的标签,它的功能就是存储或传输一个学生信息
5.但不作为,即纯粹为数据内容,需要其他程序和软件进行使用。

与HTML的异同

同:与html结构类似,都是标签标记数据的语言.

异:

  1. XML可自定义标签,HTML不能
  2. 处理数据的方式不同,XML用于存储和传输数据,而HTML负责显示数据
  3. XML与HTML没有上下级关系。

XML的语法

结构: 一种反转的树形结构,从根部到叶子

<root>         <!-- 根结点-->
<child> <!-- 子结点-->
<subchild> <!-- 根节点的孙子结点,子节点的子节点-->
.....
</subchild>
</child>
<child> <!-- 上一个child的兄弟结点-->
<subchild>
.....
</subchild>
</child>
</root>

顾名思义,XML的结构必含根结点/根元素,该结点为所有结点的父节点。它可有可没有子结点。子结点可再有子节点,也可有兄弟结点。

语法

  1. XML稳定以<?xml version="1.0" encoding="ISO-8859-1"?> 开头,定义XML的版本号和所采用的字符集;
  2. XML文档必有根节点,参照结构
  3. 标签以成双成对的形式出现,即有开始和结束标签<start></start>,非双标签不是XML元素;
  4. XML大小写敏感,即标签内容如果不相同,即为其他标签,如<start> <Start>,所以必须使用相同的大小写来编写开始标签和结束标签;
  5. 标签需要被正确嵌套,即子标签的开始和关闭必须在父标签内进行打开和关闭
<root>                                    <root>
<child> <!--正确> <child> <!--错误>
</child> </root>
</root> </child>
  1. 特殊语义,由于<>被用作语法标签的符号,所以文本内容的小于号就失效了(大于号还保留语义),故此要引入特殊符号&lt;来表示该符号。
错误范例,会产生错误
<sample> his age < than me </sample>
正确范例
<sample> his age ;&lt than me </sample>

7.其他特殊语义关键词还有;&gt(大于,great than) ;&apos(撇号,apstrophe) ;&quto(双引号,quotation) ;&amp(与号,ampersand);

8.标签内的属性需要加引号(单引双引都可)

<root src="xx/xx">
</root>

注:第7,8条容易引起歧义,即标签内<"">的引号没失效,无需使用特殊语义,文本内容<test> ;quto文本内容<test>的引号需要特殊语义来表示。

9.注释,单行以<!-- 和 -->来对代码进行注释说明

<!-- 注释内容 -->

XML的基础之一(概念和语法)的更多相关文章

  1. 使用XML的五种场合,XML基本规则,XML的术语,结构与语法

    在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何 在他们的应用中使用XML.一些来自诸如Gartner公司的报告建议说,商业公司不能再做 局外人了,不能对XML置之不理 ...

  2. 学习 JavaScript (三)核心概念:语法、变量、数据类型

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...

  3. Java基础-正则表达式(Regular Expression)语法规则简介

    Java基础-正则表达式(Regular Expression)语法规则简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.正则表达式的概念 正则表达式(Regular Exp ...

  4. XML语言基础1

    这学期选修了XML技术这门课,没有发课本,于是参考了W3school教程,整理一下上课的内容. 1.XML简介 XML是一种标记语言,很类似HTML,它不是对HTML的替代,而是对HTML的补充.在大 ...

  5. C#中区别多态、重载、重写的概念和语法结构

    C#中区别多态.重载.重写的概念和语法结构 重写是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override. 格式: 基类中: public virtual ...

  6. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  7. net必问的面试题系列之基本概念和语法

    上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉. 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系 ...

  8. HTML基础-------最初概念以及相关语法

    HTML概念以及相关语法 HTML HTML是一种类似于(c,java,c++)之类的语言,他是用来描述网页的一种语言.通过各种标签所代表的语义来构建出一个网页,再通过浏览器的渲染功能来实现该网页的各 ...

  9. vue的基础概念和语法01

    vue的特点和web开发中的常见高级功能 解耦视图和数据 可复用的组件 前端路由技术 状态管理 虚拟DOM 数据响应式 不是所有元素操作都Vue都会监听并实现数据响应式 //push方法:追加 thi ...

随机推荐

  1. 对C++拷贝构造函数的一点理解

    一. 什么是拷贝构造函数 先看一个简单的例子: #include <iostream> using namespace std; class CExample { private: int ...

  2. Tarjan水题系列(3):HNOI2006 潘多拉的魔盒

    题目: 链接 大意: 盒子与盒子之间的关系构成一个有向图 求图上包含节点数最多的路径的节点数 思路: 有向图上求包含节点数最多的路径的节点数 可直接使用tarjan缩点后拓扑dp求得 在此不赘述 此题 ...

  3. 断开ssh链接在后台继续运行命令

    转载:http://blog.csdn.net/v1v1wang/article/details/6855552 对于linux运维,我们都是使用ssh登录到服务器,如果我们运行的任务需要很长时间或不 ...

  4. php批量POST修改

    这是一个thinkphp中的批量修改的案例: 如需要删除多项,或者同时修改多项记录 要点: 前端表单中name要加[],如:<input type="hidden" name ...

  5. ThinkPHP视图css和js加上版本号防止缓存

    前台模块中,我的所有控制器都继承BaseController,虽然ThinkPHP中我们提供了两个配置项 'TMPL_CACHE_ON' => false,// 禁止模板编译缓存 'HTML_C ...

  6. JS的for循环包裹异步函数的问题

    有个循环,循环一个异步回调,为啥回调引用的循环值都是最后一步循环的循环值?然后,又有些时候无论什么循环值都得不到? var arr = [1,3,5,7,9]; var arrLength = arr ...

  7. 编写第一个Qt程序

    http://c.biancheng.net/view/1817.html 学习一种编程语言或编程环境,通常会先编写一个“Hello World”程序.我们也用 Qt Creator 编写一个“Hel ...

  8. 007-流程控制 if 语句

    流程控制 if 语句 if [ 条件判断式 ] ; then 程序 fi if [ 条件判断式 ] then 程序 fi 脚本示例: [root@zabbix lianxi]# .sh #!/bin/ ...

  9. [AI]cognitive business|cognitive thinking

    just watch the cognitive business presentation of IBM CEO Ginni. here is my thoughts in this field : ...

  10. Oracle 9i,10g,11g各自alert日志的位置

    10g&9i的alert日志: 进入oracle:[zhangshengdong@oralocal1 ~]$ sudo su - oracle[oracle@oralocal1 ~]$ sql ...