前言:

在众神的努力之下,js已经可以跨出浏览器走向不同的领域了

也因为这个,对前端工程师的要求也不仅仅是会写写h5页面做交互。前端涉及的领域越来越广,对开发人员对素质能力要求越高。

以前因设备不同导致开发语言不同,写一个app需要招一个懂IOS和一个懂Android的,现在一套js就能写移动app了,甚至小程序在某些时候也能满足移动端的需求。

以前写游戏的全套C++,现在js也能写,甚至在美术方面js有独特的优势。

以前独立安装的操作系统,因为云端的崛起,甚至可以在网页浏览器上体验其他操作平台的应用。

以前。。。

前端涉及的领域越来越多,这些领域包括但不限网站、移动端、云端操作系统、5G智慧城市、大数据等

这就是我们的大前端时代。

不扯远了

在这个大前端时代洪流中,越来越多的老人已经开始淡忘XML,而越来越多的新人对XML仅仅是浅尝辄止。XML好像快要消失在人们的眼前,但最终又无法被替代。我就是这么一个生活在这夹缝中的人,懂一点皮毛,一深入就懵逼。特别是几个雷同的东西混在一起,直接狗带。。

于是在网上收集了XML、XSL、XSLT、DTD、XSD一系列碎片化信息,进行了整理罗列。今天就来好好看一看各自的特点和区别:

一、XML=可扩展标记语言(EXtensible Markup Language)

可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,XML不是一个依附于特定浏览器的语言

简单的XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<resume>
<name>香独秀</name>
<sex>男</sex>
<birthday>2020.11.25</birthday>
<skill>数据库设计与维护、WEB开发</skill>
</resume>

二、XSL=可扩展样式表语言 (EXtensible Stylesheet Language)

如果说CSS = HTML 样式表,那么XSL = XML 样式表。
XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。用来网页展现,把一个xml文件转换成一个html文件。
XSL 包括三部分:

  • XSLT:一种用于转换 XML 文档的语言。
  • XPath:一种用于在 XML 文档中导航的语言。
  • XSL-FO:一种用于格式化 XML 文档的语言

三、XSLT=XSLT中的T代表英语中的“转换”(Transformation)

XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTML和XHTML。通常,XSLT是通过把每个XML 元素转换为(X)HTML元素来完成这项工作的。通过XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素,执行测试并决定隐藏或显示哪个元素。描述转化过程的一种通常的说法是,XSLT把XML源树转换为XML结果树。
XSLT使用XPath:XSLT使用XPath在XML 文档中查找 信息。XPath被用来通过 元素和属性在XML文档中进行导航。在转换过程中,XSLT使用XPath来定义源 文档中可匹配一个或多个预定义 模板的部分。一旦匹配被找到,XSLT就会把源文档的匹配部分转换为结果文档。

XSLT是W3C标准:XSLT在1999年11月16日被确立为W3C标准。
XSLT: 指XSLT 指 XSL 转换(XSL Transformations)。
XSLT 是 XSL 中最重要的部分。
XSLT 可将一种 XML 文档转换为另外一种 XML 文档。
XSLT 使用 XPath 在 XML 文档中进行导航。
XPath 是一个 W3C 标准

简单的XSLT示例:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>个人简历</title>
</head>
<body>
<xsl:for-each select="resume">
<p/>
<table border="1" cellspacing="0">
<caption style="font-size: 150%; font-weight: bold">
个人简历
</caption>
<tr>
<th>姓名</th>
<td>
<xsl:value-of select="name"/>
</td>
<th>性别</th>
<td>
<xsl:value-of select="sex"/>
</td>
<th>生日</th>
<td>
<xsl:value-of select="birthday"/>
</td>
</tr>
<tr>
<th>技能</th>
<td colspan="5">
<xsl:value-of select="skill"/>
</td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

四、DTD=类型定义(Documnet Type Definition)

DTD 是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。
DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。

一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
但是DTD 是使用非 XML 语法编写的
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型

简单的DTD示例:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

五、XSD=XML结构定义 ( XML Schemas Definition )

XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。

可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。

一个XML Schema会定义:
文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

XSD是DTD替代者的原因:
一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。

XML Schema的优点:

  1. XML Schema基于XML,没有专门的语法
  2. XML可以象其他XML文件一样解析和处理
  3. XML Schema支持一系列的数据类型(int、float、Boolean、date等)
  4. XML Schema提供可扩充的数据模型。
  5. XML Schema支持综合命名空间
  6. XML Schema支持属性组。

简单的XSD示例:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3cschools.com"
xmlns="http://www.w3cschools.com"
elementFormDefault="qualified"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>

XML、XSL、XSLT、DTD、XSD的区别的更多相关文章

  1. XML中DTD,XSD的区别与应用

    XML我们并不陌生,在企业级应用中有很广的用途.具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用.1.DTD(Documnet Type Definition)D ...

  2. 关于xml的一些知识,DTD,XSD

    DTD 文档类型定义(Document Type Definition)是一套关于标记符的语法规则.它是标准通用标记语言和 可扩展标记语言1.0版规格的一部分,是文档的验证机制.文档类型定义是一种保证 ...

  3. DTD与XSD的区别

    DTD=类型定义(Documnet Type Definition) XSD=XML结构定义 ( XML Schemas Definition ) DTD 就相当于 XML 中的“词汇”和“语法”,不 ...

  4. 关于XML的验证(DTD与XSD)一点实践

    [转自] http://blog.chinaunix.net/uid-276853-id-366491.html 关于XML的验证一点实践 1)此方法是在XML文档中绑定对应的DTD文件来进行的 // ...

  5. XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类

    XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...

  6. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  7. XML学习笔记7——XSD实例

    在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素.属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改),也就是说,是 ...

  8. XML学习笔记3——XSD简述

    现在的语言,如果不有那么一点OO的影子,都不好意思称之为语言了.在XML的语义约束方面,DTD虽然简单,但是功能不够强大,完全是直白的描述,于是又有了替代DTD的XSD(XML Schema Defi ...

  9. 【转】php中XML、XSLT的结合运用

    原文:http://blog.csdn.net/bjbs_270/article/details/140253   下面我要讲的是一个简单的从数据库中抽取数据,生成XML文档,使用XSLT转换成HTM ...

  10. C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例

    XSL即可扩展的样式表文件. 可以格式化xml的显示,也可以将xml转换成需要的另一种格式. 学习XSL必须熟悉XPath.XSL和XPath一样简单强大,容易学习. 1. XSL既然可以格式化xml ...

随机推荐

  1. APP反编译Xposed-Fdex2脱壳

    1.首先手机安装Xposed(app) 2.安装Fdex2(app) 3.打开Fdex2 4.点击要脱壳的app 5.adb pull (点击脱壳app时候弹出的来的路径) 保存本地路径 6.完结-. ...

  2. ng中的ng-content ng-template ng-container

    在angular中,有这样三个自带的标签,但是在angular的文档中没有说明,只有在api中有简单的描述,摸索了半天才搞懂是咋回事. ng-content <div> <ng-co ...

  3. JMeter实战(二) 运行原理

    运行原理 如果不用工具,要做 100 并发的压力测试,得想办法组织 100 个人,每个人操作1台电脑,一声令下,100 个人同时点击,对系统造成 100 并发.现实中,很难找 100 个人和 100 ...

  4. 助力全球抗疫:3D突发公共卫生事件管理平台

    前言 秋冬降临,北半球气温转凉.欧洲多个国家单日新增病例持续创新高,美国更是成为全球疫情最严重的国家.国内山东青岛.新疆喀什等地也相继发现多例病情.全球第二波疫情已经开始,国内疫情牵动人心,全球抗疫仍 ...

  5. Spring学习-spring核心机制-IOC依赖注入

    转载自:http://www.cnblogs.com/chenssy/archive/2012/11/11/2765266.html 今天复习一下spring两大特性之一:IOC依赖注入,看了一下大佬 ...

  6. nginx处理vue打包文件后的跨域问题

    起因 在vue文件打包后,项目脱离了vue配置的反向代理配置,还是会报跨域的错误,或者直接打不开本地文件, 但是此刻我们想打开打包后的文件,测试一下文件有没有错误,因为经常会存在开发阶段没有问题,打包 ...

  7. python开发基础(一)-if条件判断,while循环,break,continue,

    条件语句 (1)if 基本语句 if 条件 : 内部代码块 else: .... print() (2)if 嵌套 (3)if elif 语句 (4)if 1==1: pass # if不执行,pas ...

  8. JQuery cdn地址

    国外的CDN: 1.Google Hosted Libraries src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery ...

  9. Spark架构与原理这一篇就够了

    一.基本介绍 是什么? 快速,通用,可扩展的分布式计算引擎. 弹性分布式数据集RDD RDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据( ...

  10. 1. 线性DP 152. 乘积最大子数组

    152. 乘积最大子数组  https://leetcode-cn.com/problems/maximum-product-subarray/ func maxProduct(nums []int) ...