欢迎光临
我们一直在努力

XML简明教程(三)-.NET教程,XML应用

建站超值云服务器,限时71元/月

三、 chema简介

   (一) schema的引入

    通过上几章介绍,相信大家对xml的基本语法已经有了一个基本了解。 xml本身的语法很严谨,也就是要求格式必须严整,包

括区分大小写、整个文档有且只有一个根、需要序言等等。在符合格式化良好的要求以后,就可以写出规则整齐、可以通过内置xml解

析器的浏览器解析xml文档了。但xml本身也相当的灵活,在符合基本语法的前提下,可以任意的编写各种符合xml语法要求的文档,这

也正是xml可扩展的灵活性所在,但同时也产生了问题,比如要写一个说明个人信息的xml文档,可以这样写:

  <?xml version = “1.0” encoding=”gb2312” ?>

  <resume>

   <name>张立东</name>

   <sex>男</sex>

   <age>28</age>

   <birthday>1974-8-10</birthday>

   <address>北京市 海淀区</address>

  </resume>

   也可以这么写:

  <?xml version = “1.0” encoding=”gb2312”?>

   <resume>

   <name>张立东</name>

   <sex>男</sex>

   <age>28</age>

   <birthday>

   <year>1974</year>

   <month>8</month>

   <day>10</day>

   </birthday>

   <address>北京市 海淀区</address>

  </resume>

   上面的两个文档对于人来说是很容易看懂的,但对于机器来说,它们就无法判断

  <birthday>1974-8-10</birthday>和

   <birthday>

   <year>1974</year>

   <month>8</month>

   <day>10</day>

   </birthday>

  中的内容是否相同了。这就需要一个相应的“约束”,来规定一个固定的格式,这样机器才可以正确的识别、比较和处理。正如

没有规矩难以成方圆一样, xml这么强大的语言自然也有这方面的考虑,这也就是dtd和schema所要完成的功能。

   (二)dtd和schema

    提到schema就必须提到dtd。最早建立对sgml约束的是dtd,而xml又是sgml的超集,所以dtd由于历史的原因也可以对xml本身

进行约束,比如:每个节点可以含有的元素、元素的个数等等。但它也有很多的局限性,如不能定义元素值的范围、学习起来有一定

的难度(要学习一种新的语法)等等。而最新的xml约束标准就可以轻松的满足要求,这就是schema。schema与dtd不同,dtd本身有自

己的语法和要求,而schema是完全符合xml语法的,只要对xml有初步的了解,就很容易对schema上手。说了这么多,还是首先让我们

通过一个例子来看看schema是如何定义xml结构的吧:

  [1]<?xml version="1.0" encoding="gb2312" ?>

  [2]<schema xmlns="urn:schemas-microsoft-com:xml-data"

  [3] xmlns:dt="urn:schemas-microsoft-com:datatypes">

  [4] <elementtype name= "name"/>

  [5] <elementtype name= "sex"/>

  [6] <elementtype name= "age"/>

  [7]

  [8] <elementtype name= "address" />

  [9] <elementtype name= "month"/>

  [10] <elementtype name= "year"/>

  [11] <elementtype name= "day"/>

  [12] <elementtype name= "birthday" content="eltonly">

  [13] <element type= "year" />

  [14] <element type= "month" />

  [15] <element type= "day" />

  [16] </elementtype>

  [17] <elementtype name= "resume" content="eltonly">

  [18] <element type= "name" />

  [19] <element type="sex"/>

  [20] <element type="age"/>

  [21] <element type="birthday"/>

  [22] <element type="address"/>

  [23] </elementtype>

  [24]</schema>

   下面对上面的例子做一个简单的讲解:

   [1]行是一个xml序言,从这行也可以看出schema是符合xml基本语法要求的。

   [2]-[3]是对schema名域的一个定义。(由于我们这里是一个xml的入门文章,有关xml的名域问题可以参考相应的xml文档。)

   [4]定义一个名字为name的元素。

   [5]-[11]分别是对sex、age、address、month、year、day元素的定义。

   [12]-[16]是对birthday元素的一个定义,但birthday这个元素比较特殊,它其中又包含了year、month和day三个元素。

其中content这个属性是对元素中的数据进行说明的。根据content中的数据eltonly可以知道这个birthday元素的数据只能够由元素构

成。

   [17]-[23]是对resume这个元素的定义,resume这个元素是由name、sex、age、birthday、address这几个元素构成的。

   从上面的例子可以知道如何对一个简单的元素进行定义,也可以知道一个由其他元素组成的元素如何定义。通过由元素组成的元

素的这种定义,就可以定义一个嵌套结构的xml树的基本结构。

    到这里读者对schema已经就有了一个基本的了解,也该是我们给schame下一个简单定义的时候了:

    xml schema是用来描述xml元素和属性的。它包括属性和元素类型说明,是可以为xml元素和属性提供数据的类型校验模块。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » XML简明教程(三)-.NET教程,XML应用
分享到: 更多 (0)

相关推荐

  • 暂无文章