曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
類型,表示大的和小的產品定單:
程序清單7 - 3 2
i n t e g e r類型具有有約束的f a c e t s表示范圍,它們名為m i n I n c l u s i v e、m i n E x c l u s i v e、m a x I n c l u s i v e
和m a x E x c l u s i v e。上面的例子利用了這些可以實現:一個小定單可以包括在1和1 0 0 0單位之間的所
有訂單。在我們的類型系統里一個大的定單是超過1 0 0 0單位的所有訂單。
7.7 簡化了的XML Data
在寫本書時XML 模式還不是一個推薦標準( 2 0 0 0年1月),于是我們不能在這里提供一個正
在使用的例子。但是,為了看到將怎樣利用XML 模式的功能,看一下用X M L語法寫成的模式不
同的實現方式,我們把它稱為簡化的XML Data,一個在M i c r o s o f t的M S X M L解析器里實現的
XML Data子集,能夠在I E 5或作為一個獨立的組件使用它。在開始寫的時候,簡化的XML Data
語法不同于可利用的XML 模式工作草案,這樣將告訴我們能夠怎樣使用XML 模式在應用程序
里帶來的好處。
廣泛使用起來的解析器不是只有M S X M L,但M i c r o s o f t由于他們的主動,正在積極地使用簡
化的XML Data,特別是B i z Ta l k。這包括在分享電子商務市場詞匯表所做出的努力。當M i c r o s o f t
許諾在草案變成推薦書時采納XML 模式,結果立刻導致了很多人正在利用簡化的XML Data建
立原型甚至產品,這在W3C 模式推薦書之前作為一個中間的方法。
由于這是一個我們現在能夠工作的工具,并且它正被用在幾個領域的原型,在本章倒數第
二部分我們將要看一下簡化的XML Data語法。由于已經看了語法,下面我們將建立幾個例子,
讓你看到這幾個新的模式功能。
IBM在他們的XML4J解析器的beta版引進了對XML 模式的部分支持。但是,自從MSXML
擁有更豐富的支持并且是發行工具,我們將集中力量在簡化的XML Data上。
什么是簡化的XML Data
正如我們說過的,簡化的XML Data(X M L - D R)是整個XML Data提議的一個子集,根據子
集包括的多少,它就像文檔內容描述說明書包含的那些需要完成D T D任務的結構,大概提供了
相同的功能。對于D T D提供的能力,它也提供了一個新的擴展。它是由一個搭載Internet Explore
222使用XML 高級編程
下載
5 . 0的X M L解析器里的叫做技術預覽的工具實現。它也被一些商業工具支持,特別是D T D /模式
編輯器比如可擴展的XML Authority。這些正在做明確的調查,因為它對于實驗可以利用并且正
被大量的發明者使用。
模式支持
簡化的XML Data在概念上與XML 模式
的核心結構類似,只是語法有些微妙的不同。
更為復雜的結構比如類型,不能被復制,但
你需要的定義X M L里詞匯表的每個內容經
常使用非常簡單的語法。這是在簡化的
XML Data里說明的元素和它們的XML 模式
等價物:
小心注意名字的使用,因為在X M L模式
和X M L - D R模式之間有些微妙的不同(參
見表7 - 5)。
XML-DR 模式的完整參考可以在
http://msdn.microsoft.com/xml/reference/schema.start.asp上在線搜尋。
(1) 模式
X M L - D R里的S c h e m a元素非常近似于XML 模式里的模式元素。這個元素完成下面的功能:
• 包含元素和屬性聲明。
• 命名模式。
• 聲明在模式里使用的命名空間。
不像X M L模式, X M L - D R里的模式不使用包含i m p o r t、e x p o r t和i n c l u d e元素的導言。相
反,它們使用命名空間聲明。每一個XML-DR 模式必須聲明XML Data和M i c r o s o f t的數據類
型命名空間。如果遵守固定的命名習慣(下面我們討論支持X M L - D R的解析器時將要介紹這
些),來自另一個命名空間的外部內容可能被解析器使用和驗證。這里是一個忽略內容的模式
例子:
程序清單7 - 3 3
(2) 元素和屬性
元素和屬性分別被聲明在E l e m e n t Ty p e和A t t r i b u t e Ty p e元素。
< E l e m e n t Ty p e >元素有五個重要屬性(參見表7 - 6)。
第7章命名空間和模式使用223 下載
表7 - 5
XML 模式命令X M L - D R命令
s c h e m a S c h e m a
e l e m e n t E l e m e n t Ty p e
e l e m e n t R e f e l e m e n t
a t t r i b u t e A t t r i b u t e Ty p e
n o n e attribute
d a t a t y p e d a t a t y p e
N o n e d e s c r i p t i o n
M o d e l G r o u p , g r o u p g r o u p
表7 - 6
E l e m e n t Ty p e屬性含義
n a m e 元素名稱
c o n t e n t 描述可能包含在元素里的內容:e m p t y, t e x t O n l y(只對P C D ATA),
e l t O n l y(只對元素內容),m i x e d(P C D ATA和元素)
d t : t y p e 表示元素類型。這個屬性與XML 模式里的< d a t a t y p e >元素一致。
有效值從X M L數據類型預覽工具得到
m o d e l 開放或關閉的內容模型
o r d e r 子元素的基本順序:o n e(從一系列元素選出的一個)、s e q(特
定的元素序列)、m a n y(以任意順序可能出現或不出現的特定元
素)
元素還能包含下面四種內容類型之一,這些內容類型用< E l e m e n t Ty p e >元素的c o n t e n t屬性來
描述:
• 沒有內容: e m p t y。
• 只有文本: t e x t O n l y。
• 只有子元素:e l t O n l y。
• 混合文本和子元素: m i x e d。
我們能用< e l e m e n t >和< a t t r i b u t e >元素去約束已經聲明的元素的內容。這些元素聲明子元素
和可以用于一個元素的屬性。
< e l e m e n t >元素能有三個屬性(參見表7 - 7)。
表7 - 7
屬性描述
t y p e 與在模式里定義的< E l e m e n t Ty p e >的n a m e屬性值相一致
m i n O c c u r s 引用元素類型在元素里能出現的最小次數,當出現次數為0,即元素是可
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(81)