1. XML 定义

可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

2. XML 展示

如下是一个xml的标记展示,XML 是不作为的XML 被设计用来结构化、存储以及传输信息,所以我们可以自由标记,只有我们赋予它什么意义他就有什么意义。

xml 用来简化数据共享、简化数据传输、简化平台的变更等功能。

<xml>
<tag>标签</tag>
<parent>
<son>儿子</son>
<daughter>女儿</daughter>
</parent>
<famliy>xml大家庭</famliy>
</xml>

3. XML 文档实例

XML 文档必须包含根元素。该元素是所有其他元素的父元素。

XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

encoding="utf-8" 用于指定该xml文档编码。

<?xml version="1.0" encoding="utf-8"?>
<xml>
<tag>标签</tag>
<parent>
<son>儿子</son>
<daughter>女儿</daughter>
</parent>
<famliy>xml大家庭</famliy>
</xml>

4. XML 其它特性

  • xml 省略关闭标签是非法的。所有元素都必须有关闭标签

    <son>儿子</son>
  • 元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性,熟悉提供元素的额外信息。
<parent>
父母拥有
<son sex="属性:男">儿子</son>
<daughter sex="属性:女">女儿</daughter>
</parent>

5. XML 验证

拥有正确语法的 XML 被称为“形式良好”的 XML。

通过 DTD 验证的 XML 是“合法”的 XML。

W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema,所以DTD的规范基本被淘汰了,现在我们主流使用的都是XML Schema,也就是说XML Schema是一种可以描述XML文档结构的定义,如果你的xml文件遵循某一个XML Schema就可以通过再xml文件中制定遵循的XML Schema,XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。

<?xml version="1.0"?>
<xml
xmlns="http://www.springsun.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springsun.com xml.xsd">
<tag>标签</tag>
<parent>
<son>儿子</son>
<daughter>女儿</daughter>
</parent>
<famliy>xml大家庭</famliy>
</xml>

其中xmlns是默认命名空间, xmlns:xsi 是一个行业默认标准,使用这个定义XMLSchema实例,xsi:schemaLocation指向XSD可访问的位置。

6. XML 命名空间

在 XML 中,元素名称是我们自由制定的,当两个不同的文档使用相同的元素名时,就会发生命名冲突,所以为了区分规定为标签可以加上前缀。

 <s:xml>
<s:tag>标签</s:tag>
<s:parent>
<s:son>儿子</s:son>
<s:daughter>女儿</s:daughter>
</s:parent>
<s:famliy>xml大家庭</s:famliy>
</s:xml>

而命名空间就是为了添加这个前缀,在根节点使用 xmlns 来规定前缀与某个特定标识对应以让它有意义。

 <s:xml xmlns:s="http://www.springsun.com">
<s:tag>标签</s:tag>
<s:parent>
<s:son>儿子</s:son>
<s:daughter>女儿</s:daughter>
</s:parent>
<s:famliy>xml大家庭</s:famliy>
</s:xml>

http://www.springsun.com 用于标示命名空间的地址。其惟一的作用是赋予命名空间一个惟一的名称,只是行业都是用某一个网页链接去标识。

为什么我们平时看到的例子里面没有加像xmlns:s这样的前缀标识,因为不加 :s 则标识默认命名空间,后面所有元素不加前缀的都在该命名空间下。

7.0 XSLT 显示 XML

使用 XSLT 显示 XML:使用 XSLT 在浏览器显示 XML 文件之前,先把它转换为 HTML,这样就可以按自定义样式显示xml数据到网页上。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xml.xsl"?>
<xml
xmlns="http://www.springsun.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springsun.com xml.xsd">
<tag>标签</tag>
<parent>
<son>儿子</son>
<daughter>女儿</daughter>
</parent>
<famliy>xml大家庭</famliy>
</xml>

<?xml-stylesheet type="text/xsl" href="xml.xsl"?> 这个标记用于将xml按照xml.xsl的样式转换到html,如果浏览器支持xsl的话直接就可以显示出来(基本浏览器都支持), xsl可以去查看专门的介绍。

以上这些就可以对xml做一个快速入门了解,还有些其它知识用的时候再去检索下就行了,比如 CDATA 、XML DOM、XPath等。

快速了解XML的更多相关文章

  1. 用DOM解析XML ,用xpath快速查询XML节点

    XPath是一种快速查询xml节点和属性的一种语言,Xpath和xml的关系就像是sql语句和数据库的关系.用sql语句可以从数据库中快速查询出东西同样的用xPath也可以快速的从xml中查询出东西. ...

  2. Pugixml一种快速解析XML文件的开源解析库

    Pugixml是一个轻量级的C++ XML开源解析库,DOM形式的解析器.接口和丰富的遍历和修改操作,快速的解析,此外支持XPath1.0实现数据查询,支持unicode编码: 使用Pugixml可通 ...

  3. XStream 快速转换xml

    项目地址:http://xstream.codehaus.org/tutorial.html (以下来源于官网) 1.Create classes to be serialized(初始化类) pub ...

  4. python--利用列表推导式快速生成xml格式数据

    在接口自动化测试中,我们经常将要发送的数据放到excel里. json数据放至excel方便,但最近的一个测试,数据是xml格式发送的 如下: 属性 必选/可选 描述 1. Message Eleme ...

  5. WPF快速实现XML可视化编辑工具

    虽然最近业余时间主要都放在研究AngularJS上了,不过由于正好要帮朋友做一个生成XML的小工具,顺便又温顾了一下WPF.虽然这个时代相对于Web应用和移动App,Windows应用程序是越来越少了 ...

  6. 快速写入Xml文件

    我们在做一些操作的时候会需要生成日志,Xml文件就是我们常用的一种日志文件. 普通操作Xml文件的代码遇到大数据量的话就很慢了. 用这个生成Xml文件的话,即使数据量很大,也很快 private vo ...

  7. mybatis config 快速生成xml DAO

    0.加jar包 1.a.BAT java -jar E:\GZH\Mybaits\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3 ...

  8. Mybatis 快速入门(XML方式)第一天

    导读 架构原理图 说明 mybatis配置文件 SqlMapConfig.xml,此文件为mybatis的全局配置文件,配置了mybatis的运行环境等信息 XXXMapper.xml,此文件作为my ...

  9. eclipse快速配置spring相关xml文件头信息

    通过spring tools 插件工具来快速配置xml头信息 ctrl +n 创建-----------> 输入spring 选中spring Beann Configuration File ...

随机推荐

  1. 我用MRS-ClickHouse构建的用户画像系统,让老板拍手称赞

    摘要:在移动互联网时代,用户数量庞大,标签数量众多,用户标签的数据量巨大.用户画像系统中,对于标签的存储和查询,不同的企业有不同的实现方案.当前主流的实现方案采用ElasticSearch方案.但基于 ...

  2. 浅谈VMware的NAT模式

    什么是NAT模式?理论化的措辞我就不说了,我将结合本人平时的经验来简单的说明一下NAT模式,以及配置NAT模式时遇到的问题. 大家都知道,我们的电脑要想联网,需要与交换机连接,假设交换机的网关为192 ...

  3. 【PHP数据结构】顺序表(数组)的相关逻辑操作

    在定义好了物理结构,也就是存储结构之后,我们就需要对这个存储结构进行一系列的逻辑操作.在这里,我们就从顺序表入手,因为这个结构非常简单,就是我们最常用的数组.那么针对数组,我们通常都会有哪些操作呢? ...

  4. Elasticsearch2.4.6版本 在linux 命令行 对数据的增删改操作

    一._cluster系列:查询设置集群状态 1.设置集群状态 curl -XGET 10.68.120.167:9204/_cluster/health?pretty=true pretty=true ...

  5. Jenkins持续集成体系 | 最完整的介绍及资料

    这篇文章是来给大家普及Jenkins知识的, Jenkins能解决什么问题, 有哪些应用场景, 为何要掌握Jenkins, 掌握Jenkins后有哪些好处, 弄懂Jenkins需要掌握哪些知识 不知道 ...

  6. NOI.AC#2144-子串【SAM,倍增】

    正题 题目链接:http://noi.ac/problem/2144 题目大意 给出一个字符串\(s\)和一个序列\(a\).将字符串\(s\)的所有本质不同子串降序排序后,求有多少个区间\([l,r ...

  7. Unittest 框架之断言,你学会了吗??

    unittest断言 Python在 unittest.TestCase 类中提供了很多断言方法.断言方法检查你认为应该满足的条件是否确实满足.如果该条件确实满足,你对程序行为的假设就得到了确认,你就 ...

  8. 深入浅出WPF-06.Binding(绑定)02

    Binding对数据的校验和转换 1)数据校验,通过Binding的ValidationRules属性(Collection类型)进行校验.可以设置多个数据校验条件. <Slider Margi ...

  9. Erase-Remove 惯用法

    看到<Effective STL>条款 9 的时候想到了我以前复习的"如何正确使用迭代器删除元素",我面试时使用的也是里面的方法,看面试官的反应好像也没有什么问题,还问 ...

  10. MR 01 - MapReduce 计算框架入门

    目录 1 - 什么是 MapReduce 2 - MapReduce 的设计思想 2.1 如何海量数据:分而治之 2.2 方便开发使用:隐藏系统层细节 2.3 构建抽象模型:Map 和 Reduce ...