闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇熺節濮橆剛顔嗛梺璺ㄥ櫐閹凤拷 (0) +1 闂傚倸鍊搁崐宄懊归崶褏鏆﹂柛顭戝亝閸欏繒鈧箍鍎遍幏瀣触鐎n喗鐓曢柍鈺佸枤濞堛垹霉绾攱瀚� (0) +1 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂撮檷閸嬫垿鎮楀☉娆嬬細妞も晜鐓¢弻锝夊箣閿濆棭妫勭紓浣哄閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� (0) +1
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇㈠蓟閵夈儱鐎梺绉嗗嫷娈旈柦鍐枛閺岋綁寮崶銉㈠亾閳ь剟鏌涚€n偅灏柍钘夘槸閳诲秹顢樿缁ㄥジ鏌熸笟鍨鐎规洘鍎奸ˇ顕€鏌¢埀顒勬嚍閵夛絼绨婚梺鍝勬川閸嬬偤藟閻愮儤鍊垫慨妯煎亾鐎氾拷闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸℃ぞ绮℃俊鐐€栭崝褏绮婚幋鐘差棜闁秆勵殕閻撴洟鏌熼柇锕€鐏遍柛銈咁儔閺屻倝寮堕幐搴′淮闂佸搫鏈粙鎴﹀煡婢跺ň鏋庨柟閭﹀枤閳诲繒绱撻崒姘偓椋庢媼閺屻儱鐤鹃柣妯款嚙閽冪喖鏌i弮鍌楁嫛闁轰礁绉电换婵囩節閸屾碍鐏撻梺鍝勬-閸樺ジ鈥旈崘顔嘉ч柛鎰╁妼婵兘姊洪悷鏉挎闁瑰嚖鎷�>>

正在阅读:XML Schema帮你建模(1)XML Schema帮你建模(1)

2009-03-12 23:34 出处:PConline 作者:柴晓路/ASPCool 责任编辑:ycx
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)。 Alice Smith 123 Maple Street Mill Valley CA 90952 Robert Smith 8 Oak Avenue Old Town PA 95819 Hurry, my lawn is going wild! Lawnmower 1 148.95 Confirm this is electric Baby Monitor 1 39.98 1999-05-21   这个购买订单由一个跟元素purchaseOrder及其子元素shipTo、billTo、comment和items组成。这些子元素(除了comment)也依次包含了其它的一些子元素。   叶子元素包含的是一个数字而不是任何子元素,如USPrice这样的子元素。元素如果包含子元素或者是带有属性的,被称为复合类型;反之元素如果仅仅包含数字、字符串或者其它数据等,但不包含任何子元素的,则被称为简单类型。在这个实例文档中,复合类型和一些简单类型是在购买定单的模式文档中定义的,而其它一些标准的简单类型则是作为XML Schema内置的简单类型的形式出现的。   在研究这个实例文档的购买订单模式文档之前,先介绍一下购买订单实例文档和模式文档之间的联系。一个实例文档实际上并不一定需要引用模式文档,当然,在事实上的使用中,很多实例文档确实引用了模式文档,为了使入门变得更加简单,一开始我们选择不引用。同时假设任何实例文档的处理器即使从购买订单实例文档中得不到任何信息,也能够正确地进行购买订单模式文档的处理。   购买订单模式文档   在代码2,给出了购买订单的模式文档。文件po.xsd在给出解释之前,大家可以使用XML的知识去尝试理解这个模式文档。 Purchase order schema for Example.com. Copyright 2000 Example.com. All rights reserved.   购买订单模式文档由一个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:”。

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犻柟缁㈠枟閻撴瑦銇勯弮鈧娆忈缚閹扮増鐓欑€瑰嫮澧楅崵鍥┾偓瑙勬磸閸斿秶鎹㈠┑瀣<婵炲棙鍔栭埢鏇熺節閻㈤潧啸妞わ綀妫勫嵄闁告稒娼欑壕濠氭煙閹规劦鍤欑紒鐙€鍨堕弻銊╂偆閸屾稑顏�闂傚倸鍊搁崐鎼佸磹閻戣姤鍊块柨鏇炲€哥粻鏍煕椤愶絾绀€缁炬儳娼¢弻鐔煎箚閻楀牜妫勭紒鎯у⒔缁垳鎹㈠☉銏犵婵炲棗绻掓禒濂告⒑閸濆嫬顏ラ柛搴f暬楠炲啫顫滈埀顒勫箖濞嗘挸绾ч柛顭戝枤瑜版垵鈹戦悙鑼憼缂侇喖绉堕崚鎺楀箻鐠囪尪鎽曞┑鐐村灟閸╁嫰寮崘顔界叆婵犻潧妫欓ˉ鐘炽亜閿斿搫鍔︽慨濠冩そ瀹曘劍绻濋崘鐐棝闂備胶鎳撻崵鏍箯閿燂拷