引入XSD的两种方式

现在的语言,如果不有那么一点OO的影子,都不好意思称之为语言了。在XML的语义约束方面,DTD虽然简单,但是功能不够强大,完全是直白的描述,于是又有了替代DTD的XSD(XML Schema Definition),XSD引入了数据类型,提供了自定义数据类型的各种机制,甚至还能找到继承、多态等各种OO特征,然而学习起来也就相对复杂了,从这篇笔记开始学习一下XSD。

1、XSD文件是一种XML文件

  XSD文件是一种XML文件,满足所有XML文件格式的一切要求,比如有且仅有一个根元素(这个根元素就是),所有对XML文件有效的技术对XSD文件也同样有效,包括使用XSD文件作为语义约束。

2、XSD文件的根元素

  XSD文件的根元素是,它还可以有自己的属性,我们先看看spring-beans-3.2.xsd这个例子:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--xsd文件本身是xml文件,第一行是xml声明-->
<xsd:schema xmlns="http://www.springframework.org/schema/beans" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.springframework.org/schema/beans">
<!--
   xsd作为xml文件,其根元素是schema
   属性xmlns:xsd="http://www.w3.org/2001/XMLSchema"是引入文档约束的,表示在当前文档导入"http://www.w3.org/2001/XMLSchema"中所描述的规则,并且使用里面的元素要添加xsd的前缀(和xmlns:xsd相对应,也可以指定其它前缀)
   属性targetNamespace="http://www.springframework.org/schema/beans"表示当前文档定义的规则处于命名空间"http://www.springfarmework.org/schema/beans"下面,xml文档如需要导入当前文档的规则,就可以指定这个命名空间
   属性xmlns="http://www.springframework.org/schema/beans"表示在当前文档中导入"http://www.springframework.org/schema/beans"命名空间下所描述的规则(即当前文档本身描述的规则),并且无需使用前缀,也即默认命名空间,这样,在当前文档就可以直接引用所定义的元素了
-->
</xsd:schema>

我不知道第一次看见这个解释的人有没有迷糊,反正我第一次从w3c的教材上看到的时候是迷糊了,不过没关系,我们的目的主要是应用,以后写xsd文件的时候仿照spring就可以了。

3、在xml文档中使用xsd文件

  根据被引用的xsd文件是否定义了targetNamespace属性,可以分两种情况导入相应的xsd文件:

(1)引入无命名空间的XSD


<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="无命名空间XSD文件的URI">
<!--
   1.第一步,添加xmlns:xsi属性,引入xsi命名空间
   2.第二步,通过xsi命名空间下的属性noNamespaceSchemaLocation指定XSD文件的URI
-->
</root>

(2)引入有命名空间的XSD


<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="前缀ns1对应命名空间" xmlns:ns2="前缀ns2对应命名空间" xsi:schemaLocation="ns1前缀对应命名空间 前缀ns1对应命名空间XSD文件的URI ns2前缀对应命名空间 前缀ns2对应命名空间XSD文件的URI">
<!--
   1.第一步,添加xmlns:xsi属性,引入xsi命名空间
   2.第二步,添加命名空间,可添加多个,但没有前缀的命名空间最多只能有1个
   3.第三步,通过xsi命名空间下的属性schemaLocation指定每个命名空间XSD文件的URI,命名空间和相应URI一一对应,多个命名空间用空格分隔
-->
</root>

这里提醒一下:XSD文件引入的是w3的XMLSchema,而一般的XML文档引入的是XMLSchema-instance。

4、XSD文件的注释

  作为XML文件,XSD文件自然也可以使用 的注释格式,除此之外,XSD文件中还可以使用XML元素的方式来注释,这就是元素,元素则是通过使用和两个子元素来起作用的,其中主要放适合人类阅读的注释,而则主要放置针对其它应用程序的注释信息。Spring的XSD文件中有大量的使用

<annotation>
    <document><![CDATA[
        说明文字
    ]]></document>
</annotation>

格式的注释,这里就不举例了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值