上虞网站建设文广网络域名买卖网站
web/
2025/9/30 18:37:13/
文章来源:
上虞网站建设文广网络,域名买卖网站,怎么搭建一个完整的网站,亚马逊网站推广怎么做基本的XML Schema的使用就是这样#xff0c;下面我们要介绍XML Schema的另外一个核心的部分也是Schema最关键的一个部分#xff0c;就是关于Schema的名字空间(namespace)的问题。在上面关于XML Schema的介绍中#xff0c;为了把读者集中到对XML Schema的语法理解上#xff…基本的XML Schema的使用就是这样下面我们要介绍XML Schema的另外一个核心的部分也是Schema最关键的一个部分就是关于Schema的名字空间(namespace)的问题。在上面关于XML Schema的介绍中为了把读者集中到对XML Schema的语法理解上特意省略了关于名字空间(namespace)的介绍。首先我们还是从简单的例子着手见下面的一段代码xsd:schematargetNamespacehttp://www.SampleStore.com/Accountxmlns:xsdhttp://www.w3.org/2000/08/xmlSchemaxmlns:ACC http://www.SampleStore.com/Accountxsd:elementname订单号码 typexsd:positiveInteger/xsd:elementname商品编号 typeACC:商品编号类型/xsd:simpleTypename商品编号类型 basexsd:stringxsd:pattern[A-Z]{1}d{6}/!-上面的一行代码表示商品编码的第一个字符应该为字母后面跟六个阿拉伯数字--/xsd:simpleType现在大家需要把注意力集中到开头几行的代码上来如下xsd:schematargetNamespacehttp://www.SampleStore.com/Accountxmlns:xsdhttp://www.w3.org/2000/08/xmlSchemaxmlns:ACC http://www.SampleStore.com/Account实际上一个给定的XML Schema定义了一系列的元素名称类型名称属性名称和属性组名称。比如上面的代码中的订单号码、商品编号、商品编号类型等。而这些名称都有它一定的作用范围类似于C中的局部变量的概念。而它们的作用范围是什么呢就是在他们的目标名字空间(target namespace)中是有效的,在上面的代码中我们可以看到它的目标名字空间为http://www.SampleStore.com/Account。需要注意的是目标名字空间的命名必须遵守URL的语义。同时需要注意的是该目标名字空间并不是指一个具体的文件仅仅是给它一个名字而已。实际上在Schema中的定义和声明也可以引用其他的名字空间我们可以把这种名字空间取名为源名字空间(source namespaces)。每一个Schema必须有一个目标名字空间但是可以有多个源名字空间。实际上在一个给定的Schema中每一个名称都是属于一个特定的名字空间的。名字空间的名称可能会很长(比如http://www.SampleStore.com/Account)但是它们可以用在XML Schema中的语义xmlns来进行简化。在上面的例子中我们用xsd(取名为xsd是任意的比如你可以取名为kkk,tt,ppp,gh都可以)来表示名字空间http://www.w3.org/2000/08/xmlSchema用ACC来表示名字空间http://www.SampleStore.com/Account。同时我们把http://www.w3.org/2000/08/xmlSchema这个名字空间称为标准名字空间(standard namespace)因为它是定义Schema语法的标准地在上面的代码中目标名字空间(targetNamespace)包含了名字订单号码、商品编号、商品编号类型。而名字schema,element,simpleType,pattern,string和positiveInteger是属于标准名字空间http://www.w3.org/2000/08/xmlSchema的。也就是说它们的意义是在http://www.w3.org/2000/08/xmlSchema中进行定义的。实际上所有标准的XML Schmea语法、语义和数据结构都在http://www.w3.org/2000/08/xmlSchema中进行定义。这样解析器碰到一个名称(如schema,element等等)的时候就知道应该在哪里去得到关于它的正确的语义的使用方法。对于标准名字空间和目标名字空间我们不需要指定它的SchemaLocation。因为对于目标名字空间来讲SchemaLocation就是文档自己。对于标准名字空间来讲它是众所周知的也不需要指定。而对于源目标空间来讲就需要指定它的SchemaLocation。见下面的例子schema targetNamespacehttp://www.SampleStore.com/Accountxmlnshttp://www.w3.org/1999/xmlSchemaxmlns:ACC http://www.SampleStore.com/Accountxmlns:PART http://www.PartnerStore.com/PartsCatalogimport namespacehttp://www.PartnerStore.com/PartsCatalogschemaLocationhttp://www.ProductStandards.org/repository/alpha.xsd/element name订单号码 typepositiveInteger/element name商品编号 typeACC:商品编号类型/simpleTypename商品编号类型 basestringpattern [A-Z]{1}d{6}//simpleTypeelement name手表 typePART:手表类型/在谈关于源目标空间的schemaLocation之前我们先看一下这行代码xmlnshttp://www.w3.org/1999/xmlSchema它表示什么呢它表示在文档中所有的名字前面如果没有前缀的就是由http://www.w3.org/1999/xmlSchema进行定义和解析的。这样无疑是很合理的。因为事实上我们XML Schema中的很多名称(比如schema,element,simpleType,pattern等等)都是来自这个标准名字空间的反复往前面加前缀你烦不烦呀所以干脆把它定义成默认的所以如果一个名称前面没有前缀就认定它是由http://www.w3.org/1999/xmlSchema进行处理的。好接下来我们来注意import namespacehttp://www.PartnerStore.com/PartsCatalogschemaLocationhttp://www.ProductStandards.org/repository/alpha.xsd/这段代码因为http://www.PartnerStore.com/PartsCatalog是一个源名字空间所以必须指定它的schemaLocation采用关键字import来引入这个schemaLocation。注意到下面这行代码element name手表 typePART:手表类型/它表示元素手表的类型(type)手表类型是在http://www.PartnerStore.com/PartsCatalog中进行定义的。解析器如果要寻找关于手表类型的定义需要在名字空间http://www.PartnerStore.com/PartsCatalog下进行寻找。到此为止你应该对名字空间有了一个比较感性的理解。posted on 2007-01-19 00:11 苦笑枯 阅读(160) 评论(0) 编辑 收藏 所属分类: Xml
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84593.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!