??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲伦理中文字幕,亚洲不卡AV影片在线播放,亚洲精品国产精品乱码视色 http://www.tkk7.com/kuxiaoku/category/21187.html收藏 zh-cn Mon, 02 Apr 2007 00:43:55 GMT Mon, 02 Apr 2007 00:43:55 GMT 60 关于Schema的名字空?/title> http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94801.html苦笑?/dc:creator>苦笑?/author>Thu, 18 Jan 2007 16:11:00 GMT http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94801.html http://www.tkk7.com/kuxiaoku/comments/94801.html http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94801.html#Feedback 0 http://www.tkk7.com/kuxiaoku/comments/commentRss/94801.html http://www.tkk7.com/kuxiaoku/services/trackbacks/94801.html
基本?/span>
XML Schema
的用就是这P下面我们要介l?/span>
XML Schema
的另外一个核?j)的部分也?/span>
Schema
最关键的一个部分,是关于
Schema
的名字空_(d)
namespace
Q的问题。在上面关于
XML Schema
的介l中Qؓ(f)?jin)把读者集中到?/span>
XML Schema
的语法理解上Q特意省略了(jin)关于名字I间
(namespace)
的介l?/span>
首先我们q是从简单的例子着手,见下面的一D代码:(x)
Q?/span>
xsd:schema
targetNamespace ='http://www.SampleStore.com/Account'
xmlns:xsd
='http://www.w3.org/2000/08/xmlSchema'
xmlns:ACC
= 'http://www.SampleStore.com/Account'
Q?/span>
Q?/span>
xsd:element
name='
订单L(fng)
' type='xsd:positiveInteger '/
Q?/span>
Q?/span>
xsd:element
name='
商品~号
' type='ACC:
商品~号cd
'/
Q?/span>
Q?/span>
xsd:simpleType
name='
商品~号cd
' base='xsd:string '
Q?/span>
Q?/span>
xsd:pattern
='[A-Z]{1}d{6}'/
Q?/span>
Q?/span>
!-
上面的一行代码表C商品编码的W一个字W应该ؓ(f)字母Q后面跟六个阿拉伯数?/span>
--
Q?/span>
Q?/span>
/xsd:simpleType
Q?/span>
现在大家需要把注意力集中到开头几行的代码上来Q如下:(x)
Q?/span>
xsd:schema
targetNamespace ='http://www.SampleStore.com/Account'
xmlns:xsd
='http://www.w3.org/2000/08/xmlSchema'
xmlns:ACC
= 'http://www.SampleStore.com/Account'
Q?/span>
实际上,一个给定的
XML Schema
定义?jin)一pd的元素名Uͼcd名称Q属性名U和属性组名称。比如上面的代码中的订单L(fng)、商品编受商品编L(fng)型等。而这些名U都有它一定的作用范围Q类g
C++
中的局部变量的概念。而它们的作用范围是什么呢Q就是在他们的目标名字空_(d)
target namespace
Q中是有效的
,
在上面的代码中,我们可以看到它的目标名字I间?/span>
http://www.SampleStore.com/Account
?/span>
需要注意的是,目标名字I间的命名必遵?/span>
URL
的语义。同旉要注意的是,该目标名字空间ƈ不是指一个具体的文gQ仅仅是l它一个名字而已。实际上Q在
Schema
中的定义和声明也可以引用其他的名字空_(d)我们可以把这U名字空间取名ؓ(f)源名字空_(d)
source namespaces
Q。每一?/span>
Schema
必须有一个目标名字空_(d)但是可以有多个源名字I间?/span>
实际上,在一个给定的
Schema
中,每一个名U都是属于一个特定的名字I间的。名字空间的名称可能?x)很长(比?/span>
http://www.SampleStore.com/Account
Q,但是它们可以用在
XML Schema
中的语义
xmlns
来进行简化。在上面的例子中Q我们用
xsd
Q取名ؓ(f)
xsd
是Q意的Q比如你可以取名?/span>
kkk,tt,ppp,gh
都可以)(j)来表C名字空?/span>
'http://www.w3.org/2000/08/xmlSchema'
Q用
ACC
来表C名字空?/span>
http://www.SampleStore.com/Account
。同时我们把
http://www.w3.org/2000/08/xmlSchema
q个名字I间UCؓ(f)标准名字I间Q?/span>
standard namespace
Q,因ؓ(f)它是定义
Schema
语法的标准地
在上面的代码中,目标名字I间Q?/span>
targetNamespace
Q包含了(jin)名字订单L(fng)、商品编受商品编L(fng)型。而名?/span>
schema,element,simpleType,pattern,string
?/span>
positiveInteger
是属于标准名字空?/span>
http://www.w3.org/2000/08/xmlSchema
的。也是_(d)它们的意义是?/span>
http://www.w3.org/2000/08/xmlSchema
中进行定义的。实际上Q所有标准的
XML Schmea
语法、语义和数据l构都在
http://www.w3.org/2000/08/xmlSchema
中进行定义。这栯析器到一个名U?/span>
(
?/span>
schema,element
{等
)
的时候,q道应该在哪里d到关于它的正的语义的用方法?/span>
对于标准名字I间和目标名字空_(d)我们不需要指定它?/span>
SchemaLocation
。因为对于目标名字空间来Ԍ
SchemaLocation
是文档自己。对于标准名字空间来Ԍ它是众所周知的,也不需要指定。而对于源目标I间来讲Q就需要指定它?/span>
SchemaLocation
。见下面的例子:(x)
Q?/span>
schema targetNamespace ='http://www.SampleStore.com/Account'
xmlns
='http://www.w3.org/1999/xmlSchema'
xmlns:ACC
= 'http://www.SampleStore.com/Account'
xmlns:PART
= 'http://www.PartnerStore.com/PartsCatalog '
Q?/span>
Q?/span>
import namespace='http://www.PartnerStore.com/PartsCatalog '
schemaLocation='http://www.ProductStandards.org/repository/alpha.xsd'/
Q?/span>
Q?/span>
element name='
订单L(fng)
' type='positiveInteger '/
Q?/span>
Q?/span>
element name='
商品~号
' type='ACC:
商品~号cd
'/
Q?/span>
Q?/span>
simpleType
name='
商品~号cd
' base='string'
Q?/span>
Q?/span>
pattern ='[A-Z]{1}d{6}'/
Q?/span>
Q?/span>
/simpleType
Q?/span>
Q?/span>
element name='
手表
' type='PART:
手表cd
'/
Q?/span>
在谈关于源目标空间的
schemaLocation
之前Q我们先看一下这行代码:(x)
xmlns ='http://www.w3.org/1999/xmlSchema'
它表CZ么呢Q它表示在文中所有的名字前面如果没有前缀的,是?/span>
http://www.w3.org/1999/xmlSchema
q行定义和解析的。这h疑是很合理的。因Z实上Q我?/span>
XML Schema
中的很多名称
(
比如
schema,element,simpleType,pattern
{等
)
都是来自q个标准名字I间的,反复往前面加前~Q你?ch)不烦(ch)呀Q所以干脆把它定义成默认的,所以如果一个名U前面没有前~Q就认定它是?/span>
http://www.w3.org/1999/xmlSchema
q行处理的?/span>
好,接下来我们来注意
Q?/span>
import namespace='http://www.PartnerStore.com/PartsCatalog '
schemaLocation='http://www.ProductStandards.org/repository/alpha.xsd'/
Q?/span>
q段代码Q因?/span>
http://www.PartnerStore.com/PartsCatalog
是一个源名字I间Q所以必L定它?/span>
schemaLocation
Q采用关键字
import
来引入这?/span>
schemaLocation
?/span>
注意C面这行代?/span>
Q?/span>
element name='
手表
' type='PART:
手表cd
'/
Q?/span>
它表C元素手表的cdQ?/span>
type
Q手表类型是?/span>
http://www.PartnerStore.com/PartsCatalog
中进行定义的。解析器如果要寻扑օ于手表类型的定义Q需要在名字I间
http://www.PartnerStore.com/PartsCatalog
下进行寻找?/span>
到此为止Q你应该对名字空间有?jin)一个比较感性的理解?/span> ]]>XML 名字I间 http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94802.html苦笑?/dc:creator>苦笑?/author>Thu, 18 Jan 2007 16:11:00 GMT http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94802.html http://www.tkk7.com/kuxiaoku/comments/94802.html http://www.tkk7.com/kuxiaoku/archive/2007/01/19/94802.html#Feedback 0 http://www.tkk7.com/kuxiaoku/comments/commentRss/94802.html http://www.tkk7.com/kuxiaoku/services/trackbacks/94802.html XML
名字I间提供?jin)一U避免元?span class="GramE">名冲H?/span>的方法?/span>
b>
名字冲突
׃
XML
中的元素名不?/span>固定的,因此当两个不同的文使用同样的名字描qC个不同类型的元素时就?x)发?span class="GramE">名冲H?/span>?/span>
下面q个
XML
文在一个表g携带?jin)信?/span>
:
< table>
< tr >
< td>Apples< /td>
< td>Bananas< /td>
< /tr >
< /table>
下面q个
XML
文携带?jin)关于一个表格的信息
(
关于一件家L(fng)信息
):
< table>
< name>African Coffee Table< /name>
< width>80< /width>
< length>120< /length>
< /table>
如果q两?/span>
XML
文被加在一P׃(x)发生一个元?span class="GramE">名冲H?/span>Q因两个文都包含了(jin)一?/span>
< table>
元素Q而这两个元素的内容和定义都不同?/span>
b>
用一个前~解决名冲H?/span>
下面q个
XML
文在一个表g携带?jin)信息?x)
< h:table >
< h:tr >
< h:td >Apples< /h:td >
< h:td >Bananas< /h:td >
< /h:tr >
< /h:table >
而这?/span>
XML
文则携带了(jin)一件家L(fng)信息Q?/span>
< f:table >
< f:name >African Coffee Table< /f:name >
< f:width >80< /f:width >
< f:length >120< /f:length >
< /f:table >
现在没有元?span class="GramE">名冲H?/span>的问题(sh)(jin)Q因Z个文档分别给他们?/span>
< table>
元素使用?jin)不同的名字Q?/span>
(< h:table >
?/span>
< f:table >)
?/span>
通过使用一个前~Q我们创Z(jin)两个不同cd?/span>
< table>
元素?/span>
b>
使用名字I间
下面q个
XML
文档在一个表g携带?jin)信?/span>
Q?/span>
< h:table xmlns:h ="http://www.w3.org/TR/html4/">
< h:tr >
< h:td >Apples< /h:td >
< h:td >Bananas< /h:td >
< /h:tr >
< /h:table >
q个
XML
文携带?jin)一件家L(fng)信息
:
< f:table xmlns:f ="http://www.w3schools.com/furniture">
< f:name >African Coffee Table< /f:name >
< f:width >80< /f:width >
< f:length >120< /f:length >
< /f:table >
在这里不是只使用前缀Q在
< table>
标记上还增加?jin)一?/span>
xmlns
属性,q样q元素前缀一个与名字I间相联pȝ有资格的名字?/span>
b>
名字I间属?/span>
名字I间属性放在一个元素的起始标记中,它的语法如下
:
xmlns:namespace -prefix="namespace"
在上面的例子中,名字I间本n是用一?/span>
Internet
地址定义的:(x)
xmlns:f ="http://www.w3schools.com/furniture">
W3C
名字I间规范规定名字I间本n应该是一个统一资源识别?/span>
(URI)
。当一个名字空间在一个元素的起始标记中被定义Ӟ所?span class="GramE">?/span>相同前缀的子元素都与同样的名字空间相兟?/span>
注意Q分解器q不使用用来识别名字I间的地址L找信息。这个地址唯一的目的就是给名字I间一个唯一的名字。但是,公司l常名I间作ؓ(f)包含名空间信息的实际
Web
面的一个指针。访?/span>
http://www.w3.org/TR/html4/
试一试?/span>
b>
l一资源识别?/span>
一个统一资源识别?/span>
(URI)
是识别一?/span>
Internet
资源的字W串。通常
URI
是识别一?/span>
Internet
域地址?/span>
URL
。另外,有少C些类型的
URI
是通用资源?/span>
(URN)
。在我们的例子中只?/span>
URL
。由于我们这个家L(fng)例子中用一?/span>
Internet
地址去识别其名字I间Q我们可以肯定我们的名字I间是唯一的?/span> ]]>
վ֩ģ壺
va߹ۿ |
Ӱɫ |
ۺС˵þ |
ٸ͵˾ƷƵ |
ƷƷһ
|
Ʒҹ |
ҹɫһѲƵ
|
þþþùɫavѿ |
þƷww47 |
aٰƵ |
ҹAVƬ |
Ʒվ |
ɫóվ߹ۿ |
ߵƵ߹ۿ |
Ʒ |
þ99ȾƷѹۿ |
77777_ҹþö |
Ƶ69 |
ŷƷ˯ɳ |
?V˾Ʒպ |
91Ƶ |
Ƶ߹ۿһ |
һ2342021ѹۿ |
˳7777 |
avר |
ƷƵ |
þþþþAVר |
aëƬȫƵ |
óۺ |
|
ѹۿ㶮 |
Ʒ߳ˮAƬ |
AӰԺ߹ۿ |
ŮƵվ |
ɫƵ߹ۿ |
ҹڵ |
aëƬվ |
Ʒ˾ƷС˵ |
ҰƵۿ |
߹ۿɫƬվ |
ŷպһ |