转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
XMLSchema用法(1)         ★★★★

XMLSchema用法(1)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:613 更新时间:2009/4/23 11:18:07
     你现在应该知道XML只说明数据的结构而并不关心数据是如何具体描述的、数据是否正确。XML文档的强制性结构化需求是通过DTD(文档类型说明)来实现的。那就是本系列文章中先前讲述的主题。在本文里,我们概要介绍DTD所存在的缺点,讨论新型的更为强大的标准XML Schema。
  
  
  --------------------------------------------------------------------------------
  
  其他文章
  以下是本系列的另两篇文章:
  XML的基本语法
  DTD文档格式
  
  --------------------------------------------------------------------------------
  
  DTD的麻烦
  
  使用DTD虽然在指定许可的元素、需要的元素以及给定XML文档中如何组织元素等方面给我们以较大的方便,但是,一旦你想针对特定元素施加数据类型就会遇到麻烦了。DTD规范严格地定义了结构,但只支持相对功能较弱的内容类型规范,而对强制性结构化却无计可施,比如名为Date 的数据如何规定它必须包含有效值呢?
  
  这就要指望XML Schema了,XML Schema目前作为建议已经于2001年提交给了W3C ,这意味着它最终将成为一般用途的建议标准。假如你对此感兴趣,你不妨到W3C网站找些官方文档和内容简介之类的材料来看看。注意,其他schema定义也是有的,包括日本的标准RELAX 和微软公司的XDR。可是,XML Schema是唯一受到W3C成为的建议标准,所以我在这篇文章中只对它进行阐述。
  
  XML Schema不仅可以让你定义XML文档的结构而且还允许你约束文档的内容,这就不同于DTD了。另外,一个 XML Schema自身就是一个XML文档,其基于标签的语法比DTD中的特殊字符要清楚多了。
  
  
  Schema概述
  
  XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。相应的一套精巧的规则(这些规则却很有意思的用DTD来表示)指定了每个Schema元素或者属性的合法用途。如果违反这些规则解析器就会拒绝解析你的Schema以及任何同它相联系的文档。
  
  现在让就让我们来看看清单A中显示的XML Schema示例,该例对我们以前在清单B中用到的图书目录进行了说明。清单B有了点小改动:作为根元素的catalog现在有了两个新属性,它们通过清单A中的catalog schema与之关联。
  
  你再看catalog schema,很快你就会注意到它包含了标准的XML头<?xml version = "1.0"?>,这表示schema自己就是一个XML文档。而任何schema的根元素都必须是schema,它有一个或者多个说明自己的属性。在这种情况下,schema的namespace定义属性(xmlns)会定义名称空间为xs,它将用作文档中所有元素的根名称空间。
  
  
  --------------------------------------------------------------------------------
  
  什么是名称空间
  XML把名称空间定义为包装XML元素在一起供以后重用的方式。为了使用XML文档的名称空间中定义的元素,你必须通过xmlns属性声明你希望采用名称空间。你还必须为该名称空间定义快捷方式的前缀(例如xs:)作为你文档中的根元素,从而使得名称空间在文档中都可用。前缀是用于文档的任何导入名称空间的元素的标识符。这一过程就如同在Visual Basic中给库加索引或者导入模块;C++、Java或者.NET下的名称空间也具有同样的含义。
  
  
  --------------------------------------------------------------------------------
  
  我们的schema示例中接下来的元素是annotation,它的作用是代表同其父元素有关的文档。annotation可以包含两个子元素之一,或者是documentation或者是appinfo,或者两者都包含进去。前者用于可读的文档,而后者则用来保存供应用程序处理的指令。
  
  接下来我们定义了两个主要的元素(根元素catalog及其子元素book),它们用在书目文档内,后者采用了两个element元素。这些元素都包含了定义名字的属性和各个元素准许的内容。在这种情况下,catalog元素被定义为catalogtype类型,而book元素则被定义为elementtype类型;这两种类型以后还要在schema文档中被定义。
    


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台