xml中xsd/xsi/xsl/xmlns的区别和联系

(2023.01.13Fri才明白,具体解析xml文件的不是xml文件本身,xsi也不是在解析xml文件,只是检验xml文件是否符合标准,xsd是在限制xml文件的内容。而具体解析某个element究竟是什么样式、起到什么作用,是需要接收端自我定义的。例如服务端发过来一个html文件就是一个xml文件,但是具体的解析是客户端的浏览器做的)

pr:xmlns规定了xml可以有什么属性。

pr:xsd规定了xml的各个元素什么类型什么格式。

pr:xsi是xsd的名义表示,xsd是文件后缀和文件解析格式,xsd替代了原先的dtd。

pr:xsl是xml的样式文件。

一个xml文件称为instance一个实例,一个xsd文件称为一个schema一个提纲。所以一个xml文件是一个xsd文件生成的实例。xml要符合schema,schema会检验xml。类似OOM了。

HTML的元素都是固定好的,例如<p>, <div>,而XML元素是自己定义的属性名<dong>。然后用CSS来为这些自定义的属性名做渲染。其实,HTML就是一个已经自定义好属性名称和作用的XML文档。

写xml文档的原因是,需要自定义属性和含义,可以更简洁。某种类型的xml用的多了,可以变个后缀,成为了特殊后缀的文件。例如.mp3, .word。

不同的xml命名空间,成一个闭环,xsl解析的更明确。启动时xsi会自动扫描xml文件,是否符合模式规则。xsd是xml模式文档的扩展名。xsi是xml scheme instance,是xml模式实例。"xsi="表示模式实例的命名空间。schemaLocation是模式文件位置,由一个命名空间空格文件位置构成(所以xsi也是有命名空间的,也是一个xml)。XSD文档定义XML文件属性名含义,自定义之后再传输出去。XSD有基本的数据类型等元素,控制自定义属性的含义。所谓的自定义属性内容,其实就是被内部封装了一层变量,所谓的自定义其实就是变量名称。

不同的xml命名空间,成一个闭环,xsl解析的更明确。启动时xsi会自动扫描xml文件,是否符合模式规则。

Xml(extensible markup language可扩展性标记语言)是用来传输数据的,HTML是用来显示数据的。

<?xml version encoding>是XML需要的根节点,类似于HTML的<html>标签。可标记性需要自定义出来的标签,本质上就是一个一个的变量,只不过变量代表的内容不一样。

xsi是xml模式,检索xml是否符合规则。xsl是可扩展的样式stylesheet语言,为xml元素制定样式,并转换xml到其他格式,例如HTML。xsl里可以引CSS文件,制定样式。浏览器访问xml时,会自动打开xsl,生成对应文档,渲染好后用css调整样式。xsi模式需要在xml头上引入,并写上命名空间和xsd文件,作用是限制xml属性格式。

xsi:xml schema instance,指规定的xml规范。

xsi:schemaLocation:值xsi具体依靠的本地资源。

xsd:xml schema definition,指的是xml中元素的定义,是一个单独的语言,有关键字和变量类型。并且是用xml格式编写的。是DTD(document type definition)的代替品,更好的扩展性,加上了元素数据类型。

xsd是对xml内容的描述。例如xml文件中一个节点可以有几个属性,一共可以出现几个节点。xsd可以用来验证xml是否符合规范。

以下的dtd文件就是规定了某个元素一共可以有几个属性,例如一个+号就是只能有一个。等等类似的规则。

定义了一个xml自定义属性文件后,还需要xsl解析extensible stylesheet language。xsl解析为其他文档。所以,北软制定的word输出的xml文件,生效的本质是Java提取输入流时做的属性判断。Java判断,如果是query属性出现,那么执行sql的操作。所以,本质不是怎么自定义,而是怎么解析。html也是自定义属性,只不过看浏览器怎么解析,也就是渲染的。XPath是xml解析配置和数据的语言。所以,xml也是在带着镣铐跳舞。

xml开始的<?xsl-stylesheet>表示的是引入的xsl解析文件,类似HTML的<script src>,引入Js文件。xsl文件可以引入CSS文件,来定义解析后的样式。

xml开始的<?xsl-stylesheet>表示的是引入的xsl解析文件,类似HTML的<script src>,引入Js文件。xsl文件可以引入CSS文件,来定义解析后的样式。

下面是一段maven的pom文件,也是由xml格式写成的。本质html也是由xml构成的。

<?xml中的version指的是xml的版本。

第二行的<project中project是根节点,后面是根节点满足的规则。xmlns是project满足的命名空间,里面解释了project可以有什么样的属性,可以写什么。xmlns:xsi表示xsi作为根节点的话,命名空间是哪里。xsi:schemaLocation表示用来校验的xsi文件的具体位置,前一个是命名空间,空格之后是具体的xsd位置。xsi是没有写具体xsd的schema location。

xsi和xsd的区别是xsi是通过xsd文件内容校验xml是否符合规则。

xmlns:xsi=""表示xsi作为根节点的命名空间是哪个。没有后缀可能是因为那是个文件夹,xml自动去找文件夹里的某些文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值