XML Schema帮你建模(1)

2016-02-19 14:50 8 1 收藏

下面图老师小编要跟大家分享XML Schema帮你建模(1),简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - Web开发 】

 XML Schema是2001年5月正式发布的W3C(万维网联盟)的推荐标准,经过数年的大规模讨论和开发如今终于奠定下来,成为全球公认的XML环境下首选的数据建模工具。

  由于XML是SGML(标准通用标示语言)的一个子集,它也继承了SGML用于建模的DTD。使用DTD的好处是可以利用大量现有的DTD工具,使得开发应用代价维持在一个相对较低的水平。然而,DTD有不少缺陷:

  1. DTD是基于正则表达式的,描述能力有限;

  2. DTD没有数据类型的支持,在大多数应用环境下能力不足;

  3. DTD的约束定义能力不足,无法对XML实例文档做出更细致的语义限制;

  4. DTD不够结构化,重用的代价相对较高;

  5. DTD并非使用XML作为描述手段,而DTD的构建和访问并没有标准的编程接口,无法使用标准的编程方式进行DTD维护。

  XML Schema正是针对这些DTD的缺点而设计的,它完全使用XML作为描述手段,具有很强的描述能力、扩展能力和处理维护能力。


  XML Schema简介


  XML Schema的主要目的是用来定义一类XML文档(一个XML Application)。因此,模式的“实例文档”形式常常被用于描述一个与特定XML Schema相一致的XML文档。事实上,文档实例和Schema文档都不是必须要以文档的形式存在,它们可以以在应用之间传递的字节流的形式存在,或者作为一个数据库记录及XML的“信息项”的集合存在。然而为了简化入门,我们总是把实例和模式看作文档或者文件,认为它们总以文档实例或是模式文档的形式存在。

  这里我们将结合一个实例来对XML Schema进行简单的概述,希望大家通过阅读本节的内容初步掌握的使用方法和XML Schema文档实例的具体语义。XML Schema是Web Services技术中需要使用的一个基本工具,然而并不是XML Schema的所有特性都会被广泛地使用,因此,本文将不对XML Schema规范做系统的介绍。

  在介绍XML Schema语法之前,先来考虑一个XML实例文档po.xml。它描述了一个由家庭产品采购/支付应用生成的家庭产品购买订单(参阅代码1)。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  !--代码 1 po.xml,购买订单的XML实例文档--
  ?xml version="1.0"?
  purchaseOrder orderDate="1999-10-20"
  shipTo country="US"
  nameAlice Smith/name
  street123 Maple Street/street
  cityMill Valley/city
  stateCA/state
  zip90952/zip
  /shipTo
  billTo country="US"
  nameRobert Smith/name
  street8 Oak Avenue/street
  cityOld Town/city
  statePA/state
  zip95819/zip
  /billTo
  commentHurry, my lawn is going wild!/comment
  items
  item partNum="872-AA"
  productNameLawnmower/productName
  quantity1/quantity
  USPrice148.95/USPrice
  commentConfirm this is electric/comment
  /item
  item partNum="926-AA"
  productNameBaby Monitor/productName
  quantity1/quantity
  USPrice39.98/USPrice
  shipDate1999-05-21/shipDate
  /item
  /items
  /purchaseOrder

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 

  这个购买订单由一个跟元素purchaseOrder及其子元素shipTo、billTo、comment和items组成。这些子元素(除了comment)也依次包含了其它的一些子元素。

  叶子元素包含的是一个数字而不是任何子元素,如USPrice这样的子元素。元素如果包含子元素或者是带有属性的,被称为复合类型;反之元素如果仅仅包含数字、字符串或者其它数据等,但不包含任何子元素的,则被称为简单类型。在这个实例文档中,复合类型和一些简单类型是在购买定单的模式文档中定义的,而其它一些标准的简单类型则是作为XML Schema内置的简单类型的形式出现的。

  在研究这个实例文档的购买订单模式文档之前,先介绍一下购买订单实例文档和模式文档之间的联系。一个实例文档实际上并不一定需要引用模式文档,当然,在事实上的使用中,很多实例文档确实引用了模式文档,

estriction
  /xsd:simpleType
  /xsd:schema

 

  购买订单模式文档由一个schema元素和一系列子元素组成,大多数子元素为element、complexType和simpleType,这些决定了实例文档中元素的表现方式和内容,大家最好能熟记element、complexType、simpleType这几个元素,这些将是我们一直需要使用的几个元素。

  同时,可以通过使用出现在schema元素中的命名空间声明xmlns:xsd="http://www.w3.org/2001/XMLSchema",使得模式文档中的每一个元素都有一个与XML Schema命名空间相联系的命名空间前缀“xsd:”。尽管在语法上,可以使用任意的前缀形式,但是,命名空间前缀“xsd:”被约定用于表示XML Schema命名空间。由于使用同样的前缀,所以同样的关联就会出现在内置的简单类型的名字中,例如xsd:string。这种形式关联的目的是用来表示当前的元素或简单类型是属于XML Schema语言的内置定义的,而不是属于模式文档作者自己的词汇表的。为了在这里清楚并且简单地表示,我们仅提及元素的名字和简单类型名,而忽略它们的前缀“xsd:”。

来源:http://www.tulaoshi.com/n/20160219/1608104.html

延伸阅读
标签: Web开发
  摘要:XML Schema 是用来描述和约束XML文档的一种XML语言,从功能上看,它和早期的DTD是非常类似的,但是它比DTD的更加强大。目前Schema标准在W3C开发进程中是一个候选建议。 我们的第一个 Schema 让我们从这个关于书的简单XML文档开始,如果您对XML的语法不是很清楚的话,我建议您先学习XML文档的写法,因为这样会使您比较容易理...
标签: Web开发
我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系。也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的。   另外一个代替DTD的就是W3...
对于名称空间,理解了OO思想的人应该是比较简单的了,特别是对学过C++的人来说更是 如此;但很多看了我前面文章的朋友,在和我的交流中,好像对名称空间都不怎么清楚, 下面我们就来说说怎么样在 XML Schema和WSDL中使用名称空间. 先看看一段JAVA代码: package com.hongsoft.test.pkg1; import com.hongsoft.test.pkg2.Test1; import com.hongsof...
标签: Web开发
XML可以用来描述数据,重点是‘数据是什么’。 HTML则是用来显示数据,重点是‘如何显示数据’。 在学习XML之前你应该已经知道的知识 在你继续之前你应该具有下面一些基础的知识: WWW, HTML 和设计网页的基础知识 网页脚本语言,比如JavaScript 或者VBScript 你最好在学习XML之前就了...
标签: Web开发
正如你所了解的,XML是个功能强大的新型数据结构,它可以让你把网页的内容和表现形式分开。尽管如此,目前,我们的文章大多仅介绍了直接生成XML标记得的法。我们在大多数时候,都是手工编写必需的标记和数据的。      幸运的是,微软提供了XML DOM(XML文档对象模型),这是另外一种编写XML代码的方法。该对象库可以让你构...

经验教程

993

收藏

22
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部