xmlxsdxsl区别与联系

『流浪的Coder』 『流浪的Coder』     2022-09-21     128

关键词:

XML:

XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

XMLAccess,OracleSQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

  XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。

       您可以在文档内部识别每个部分,而不是将文档看作仅由标题和段落组成。为了提高效率,您可能需要定义数量一定的元素,并统一使用它们。(您可以在文档类型定义(Document Type Definition, DTD )或模式 (schema)中定义元素)。一旦习惯使用 XML 之后,就可以在构建文件时尝试处理元素名称。

    Document Type Definition, DTD

       创建数据库时,数据模型和完整性约束可以创建数据结构和内容方面的确定性。但是,当存储数据(是指XML)是可以手工编辑的文件里的文本时,您怎么实施这种控制呢?幸运的是,验证文件和文档可以确保数据满足约束。      为了实现验证,必须在 XML 文档的顶部附近包含文档类型(DOCTYPE)。这行代码将引用用于验证文档的 DTD 或 schema (元素和规则列表)。

        由此可见DTD或者Schema是XML语言的约束文件。

        XML DTD是目前使用比较广泛的一种XML模式,而XML SCHEMA是W3C官方推荐的XML定义格式。

        DTD 指定:可以在文档中存在的元素、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序。

     XML Schema 是基于 XML 的 DTD 替代者。XML Schema 可描述 XML 文档的结构。XML Schema 语言也可作为 XSDXML Schema Definition)来引用。

   DTD=类型定义(Documnet Type Definition)
DTD 是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。
DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能够成为数据交换的标准,因为不同的公司只需定义好标准的DTD,各公司都能够依照DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。但是DTD 是使用非 XML 语法编写的
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型

        XSD=XML结构定义 ( XML Schemas Definition )
它是DTD的替代品。XML Schema语言也就是XSDXML 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支持属性组。

XSL=可扩展样式表语言 (EXtensible Stylesheet Language)
XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。

xsd文件

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
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文件
<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don‘t forget the meeting!</body>
</note>

1. XSD文件在某个namespace中定义element和type。此处定义的type被element(此namespace或者其他namespace中的)使用,而XML文件不使用。

 

2. XML文件有且唯一root element。

 

3. 创建XML时,在root element中可以指定使用哪些namespace,从而使用其中的element。

    讨论:root element也是属于某个namespace,因为其他的element都是此root element的子element,那么是不是只需要

    指定使用root element的namespace?这个要看root element的type的定义情况。

    如果在root element的type的定义中(以及type定义中的element,反复下去)引用其他namespace的element或者type,那么就需要引入其他namespace

 

综上所述,XML文件和XSD文件没有直接的联系,他们之间通过namespace关联,即

 

                  add element                                 use element

XSD文件-------------------------->namepsae--------------------------->XML文件




来自为知笔记(Wiz)


javascript和htmldom的区别与联系

JavaScript和HTMLDOM的区别与联系区别:javascriptJavaScript是因特网上最流行的浏览器脚本语言。很容易使用!你一定会喜欢它的!JavaScript被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。HTMLDOMHT... 查看详情

硬盘与内存的区别和联系

(1)硬盘与内存的区别和联系    硬盘与内存都是存储器,一个是内部,一个是外部。    硬盘与内存的区别是很大的,这里只谈最主要的三点:一、内存是计算机的工作场所,硬盘用来存放暂时不用的信息。二、内存是... 查看详情

filter与servlet的区别与联系

Filter与Servlet的区别与联系转自http://blog.csdn.net/gaibian0823/article/details/51027495 在我们写代码时,在web.xml中总能发现类似下面的代码:<spanstyle="font-family:KaiTi_GB2312;font-size:18px;"><spanstyle="font-family 查看详情

bpm与oa的区别及联系

BPM与OA的区别及联系近年来,在企业管理信息系统一些名词反复被提及,然而外行人对于这些名词则是一头雾水,网上的解释又鱼龙混杂,没有绝对权威的文献可供参考,因此也就让我们对这些名词的认识越来越模糊。OA、SaaS、B... 查看详情

进程跟线程区别与联系

进程跟线程区别与联系  进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程:线程是一个实体,是cpu进行调度和分派的基本单位,是比进程跟... 查看详情

clipstobounds与maskstobounds的区别与联系

clipsToBounds是指视图上的子视图,如果超出父视图的部分就截取掉,masksToBounds却是指视图的图层上的子图层,如果超出父图层的部分就截取掉在调用 clipsToBounds方法时,就会调用其layer的 masksToBounds方法:1-(BOOL)[UIView(Rendering)clip... 查看详情

深入了解dsp与arm的区别与联系

深入了解DSP与ARM的区别与联系  2011-09-3012:49:43|  分类: 嵌入式の半入其室 |  标签:体系结构  |举报|字号 订阅        下载LOFTER我的照片书 &nbs 查看详情

sparksql与hiveonspark的区别与联系

简要介绍了SparkSQL与HiveonSpark的区别与联系一、关于Spark简介在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题。架构Spark的架构如下图所示,主要包含四大组件:Driver、Master... 查看详情

java中nio与io的区别与联系

一区别于联系avaNIO和IO之间的主要差别:IO                     NIO 面向流               面向缓冲 阻塞IO              非阻塞IO 无                   选择器1.面向流与面向缓冲JavaNIO和IO之间第... 查看详情

中台vs平台区别与联系

...业通用能力的抽取与沉淀这是毋庸置疑的,那两者之间的区别又是什么呐?为何在平台之上又提出中台概念呐?笔者最近在拜读欧创新大神大作《中台架构与实现---基于DDD和微服务》偶有感悟暂且大胆一说如有谬误及误人子弟之... 查看详情

cygwinmsysmingwmsys2的区别与联系(转)

...37175/answer/90908473来源:知乎网上有很多文章讲它们之间的区别与联系,初学者看的一头雾水,在知乎上看到这篇文章讲的很清楚,容易理解。在讲区别联系之前,我们先看一下这几个东东的前世今生。Cygwin,原Cygnus出品(已被红... 查看详情

机器学习之svm与逻辑回归的联系和区别

...逻辑回归之间的关系,硬间隔的SVM应该是与感知机模型的区别和联系。而且工程中也不能要求所有的点都正确分类,训练数据中噪声的存在使得完全正确分类很可能造成过拟合。  软间隔SVM与逻辑回归的联系  要说软间隔SVM... 查看详情

rdddfds的区别与联系

RDD.DataFrame.DataSet的区别和联系共性:1)都是spark中得弹性分布式数据集,轻量级2)都是惰性机制,延迟计算3)根据内存情况,自动缓存,加快计算速度4)都有partition分区概念5)众多相同得算子:mapflatmap等等区别:1)RDD不支持SQ... 查看详情

foldersourcefolderpackage区别与联系

...eclipse下,package,sourcefolder,folder都是文件夹.  它们的区别如下:  package:当你在建立一个package时,它自动建立到sourcefolder下,也只能建立在这个目录之下.  sourcefolder:存放java源代码的文件夹,当然也包括一些package文... 查看详情

arcobjects与arcengine的联系与区别

ArcObjects与ArcEngine的联系与区别AO一般指的是桌面产品开发组件,需要在桌面环境中才能够使用,最典型的就是嵌入式VBA开发。但是这样带来的弊端和OFFICE等相关软件一样明显,就是软件成本高,需要用户购买整套桌面版的产品才... 查看详情

spark与hadoop区别与联系

参考技术Ahadoop是分布式系统基础架构,是个大的框架,spark是这个大的架构下的一个内存计算框架,负责计算,同样作为计算框架的还有mapreduce,适用范围不同,比如hbase负责列式存储,hdfs文件系统等等。另外spark是可以脱离hado... 查看详情

图解atime/mtime/ctime之间的区别与联系

查看详情

抽象类和接口的联系与区别

抽象类和接口联系与区别关键字:抽象类与接口的区别abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定... 查看详情