版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四部分:DLTS-4基于規(guī)則的XML綁定技術(shù)的指導(dǎo)規(guī)范XML是現(xiàn)在較為流行的一種編碼方法,一種很有前景的交換格式。對(duì)于不同的數(shù)據(jù)模型,在很多情況下都可以用XML進(jìn)行編碼綁定。為了滿足這一需要,本指導(dǎo)規(guī)范描述了數(shù)據(jù)模型基于規(guī)則的XML編碼綁定的通用技術(shù)。不同的編碼綁定規(guī)范可以參考本指導(dǎo)規(guī)范確定自己的編碼綁定方法。由于本指導(dǎo)規(guī)范使用基于規(guī)則的方法,所以它適用的范圍會(huì)比較廣。目錄1 概要501.1 范圍501.2 目的502 正式引用503 定義503.1 通過(guò)正式引用集成的定義503.2 集合(數(shù)據(jù)類(lèi)型,值)513.3 綁定513.4 編碼513.5 條件數(shù)據(jù)元素513.6 消費(fèi)(數(shù)據(jù))523.
2、7 數(shù)據(jù)實(shí)例533.8 數(shù)據(jù)對(duì)象533.9 數(shù)據(jù)集543.10 數(shù)據(jù)結(jié)構(gòu)543.11 擴(kuò)展數(shù)據(jù)元素543.12 生成(數(shù)據(jù))543.13 實(shí)現(xiàn)行為543.14 實(shí)現(xiàn)定義的行為/值553.15 實(shí)現(xiàn)值553.16 解釋?zhuān)〝?shù)據(jù))553.17 本地特定行為563.18 生存期(數(shù)據(jù)元素)563.19 必需數(shù)據(jù)元素563.20 漫游(訪問(wèn),系統(tǒng))563.21 義務(wù)(數(shù)據(jù)元素)563.22 過(guò)時(shí)數(shù)據(jù)元素573.23 可選數(shù)據(jù)元素573.24 產(chǎn)生(數(shù)據(jù))573.25 信息庫(kù)573.26 保留數(shù)據(jù)元素573.27 未定義的行為/值583.28 未指定的行為/值583.29 縮寫(xiě)584 XML編碼綁定模版5
3、84.1 生成和產(chǎn)生XML594.2 消費(fèi)和解釋數(shù)據(jù)624.3 基本數(shù)據(jù)類(lèi)型的表示634.3.1 字符和字符串634.3.2 整數(shù)634.3.3 實(shí)型數(shù)634.3.4 日期和時(shí)間值644.3.5 空類(lèi)型654.4 字符表示的編碼664.5 對(duì)例外和擴(kuò)展的處理664.5.1 實(shí)現(xiàn)定義的行為664.5.2 未指定的行為664.5.3 未定義的行為661 概要1.1 范圍本指導(dǎo)規(guī)范描述了數(shù)據(jù)模型基于規(guī)則的XML編碼綁定的技術(shù)。本指導(dǎo)規(guī)范的用詞可以集成到相應(yīng)的標(biāo)準(zhǔn)中,用于支持此種類(lèi)型的綁定。這些用詞描述了一種基于規(guī)則的方法,用于描述這些標(biāo)準(zhǔn)的用詞。1.2 目的本指導(dǎo)規(guī)范的目的是:在基于規(guī)則的綁定方法可
4、行的情況下,為常用的綁定提供通用的標(biāo)準(zhǔn)用詞。由于本指導(dǎo)規(guī)范使用基于規(guī)則的方法,所以它適用于很多標(biāo)準(zhǔn)。2 正式引用l IEEE 1484.14.2/D1:“學(xué)習(xí)技術(shù)的指導(dǎo)草案基于規(guī)則的XML綁定技術(shù)”l DLTC-2:“詞匯表”l RFC 822l IETF RFC 2068:“超文本傳輸協(xié)議”l W3C XML:“擴(kuò)展標(biāo)記語(yǔ)言”l ISO/IEC 11404(1996):“語(yǔ)言無(wú)關(guān)的數(shù)據(jù)類(lèi)型”l ANSI X3.30 (1998):“信息交換中日期和時(shí)間的表示”l ANSI X3.42(1990):“信息交換中字符串的表示”l ANSI X.3.285(1998):“數(shù)據(jù)表示的元數(shù)據(jù)模型”l
5、ISO/IEC 11179l ISO/IEC 86013 定義注:下面的定義是和DLTC-2“詞匯表”和參考文獻(xiàn)相一致的。3.1 通過(guò)正式引用集成的定義注:下面的術(shù)語(yǔ)和它們的定義是通過(guò)正式引用集成進(jìn)來(lái)的:l IEEE 1484.14.2/D1:“學(xué)習(xí)技術(shù)的指導(dǎo)草案基于規(guī)則的XML綁定技術(shù)”。l DLTC-2:“詞匯表”。3.2 集合(數(shù)據(jù)類(lèi)型,值)從根本上來(lái)講,集合的數(shù)據(jù)類(lèi)型和值是由組成元素的數(shù)據(jù)類(lèi)型和值組成的。該數(shù)據(jù)類(lèi)型或值是通過(guò)把組成元素的數(shù)據(jù)類(lèi)型或值通過(guò)一定的算法流程加以組合得到的。組成元素的值可以通過(guò)特定的操作加以訪問(wèn)。集合的屬性和它的組成元素的屬性無(wú)關(guān)。例1:一個(gè)數(shù)組集合包含相同類(lèi)型
6、的組成元素。對(duì)集合的操作通過(guò)索引值(一個(gè)數(shù)字)來(lái)獲取單個(gè)的組成元素。my_array: array (0.9) of (integer), / 整數(shù)數(shù)組my_array(4) / 訪問(wèn)第四個(gè)元素例2:一個(gè)記錄的集合包含獨(dú)立的組成元素,每個(gè)組成元素有自己的類(lèi)型和標(biāo)識(shí)。對(duì)集合的操作通過(guò)元素名(一個(gè)標(biāo)識(shí)符)來(lái)訪問(wèn)單個(gè)組成元素。A: record( B: integer, C: void, D: characterstring(iso-10646-1),),A.B / 訪問(wèn)標(biāo)號(hào)為B的元素注:該定義來(lái)自ISO/IEC 11404.3.3 綁定從一個(gè)框架或規(guī)范到另一個(gè)框架或規(guī)范的應(yīng)用或映射。3.4 編碼(
7、1) 在信息交換中,信息的規(guī)范化或結(jié)構(gòu)化的表示。(2) 在某一結(jié)構(gòu)中表示信息的過(guò)程。(3) 把信息用比特和字節(jié)的格式加以表示。3.5 條件數(shù)據(jù)元素在某些上下文中,如果某些條件被滿足,那么在數(shù)據(jù)結(jié)構(gòu)的實(shí)例中,某個(gè)元素被定義和要求。一個(gè)數(shù)據(jù)元素的“條件”屬性是一個(gè)義務(wù)屬性。另見(jiàn):擴(kuò)展數(shù)據(jù)元素,必需數(shù)據(jù)元素,義務(wù)(數(shù)據(jù)元素),選擇數(shù)據(jù)元素。3.6 消費(fèi)(數(shù)據(jù))讀數(shù)據(jù)并進(jìn)行如下處理:找到詞法或編碼的邊界。其它形式有:消費(fèi)數(shù)據(jù),數(shù)據(jù)消費(fèi)者,數(shù)據(jù)消費(fèi)。另見(jiàn):解釋?zhuān)〝?shù)據(jù)),產(chǎn)生(數(shù)據(jù))。注:數(shù)據(jù)在解釋前被消費(fèi)。例1:在下列字符流中:<R> <A>123.45</A> &l
8、t;B>PQR</B> <C X="Y">Z</C></R>/R><R> <D>JKL</D> <E> <F>XXX</F> <G>YYY</G> </E></R>一個(gè)數(shù)據(jù)消費(fèi)者能夠識(shí)別:l 有兩個(gè)記錄,都用標(biāo)號(hào)“R”標(biāo)識(shí)。l 第一個(gè)“R”記錄包含三個(gè)記錄,分別用標(biāo)號(hào)“A”,“B”,“C”標(biāo)識(shí)。l 第二個(gè)“R”記錄包含兩個(gè)記錄,分別用標(biāo)號(hào)“D”,“E”標(biāo)識(shí)。但是,數(shù)據(jù)消費(fèi)者:l 不知道標(biāo)號(hào)的意思:
9、<B>. . .</B>是什么意思?l 不能確定標(biāo)號(hào)的合法性:“<C>”可以有屬性“X”嗎?l 不能確定記錄內(nèi)容的合法性:在記錄“A”中,“123.45”是合法值嗎?l 可能限制消費(fèi)的深度:“R”只用往下分析一層就發(fā)現(xiàn)標(biāo)號(hào)“D”和“E”,但對(duì)“E”的內(nèi)容只是進(jìn)行有限的分析(即發(fā)現(xiàn)對(duì)等的標(biāo)號(hào)),因此標(biāo)號(hào)“F”和“G”不會(huì)被分析和發(fā)現(xiàn)。因此,一個(gè)數(shù)據(jù)消費(fèi)者對(duì)一個(gè)信息結(jié)構(gòu)可以只是進(jìn)行部分的理解。例2:下面是一個(gè)API的例子,它表明了擴(kuò)展數(shù)據(jù)在實(shí)現(xiàn)時(shí)被間接使用的情況下(這種實(shí)現(xiàn)仍是嚴(yán)格一致的),數(shù)據(jù)消費(fèi)和數(shù)據(jù)解釋之間的區(qū)別。/ 這個(gè)例子包含兩個(gè)文件: 頭文件&quo
10、t;std_data.h"和一個(gè)包含該頭文件的嚴(yán)格一/ 致的應(yīng)用程序/ 下面是所包含的頭文件 "std_data.h"struct std_data int std_element_1; / 必需元素 void *std_element_2; / 可選元素 int ext_element_3; / 擴(kuò)展元素.;/ 嚴(yán)格一致的應(yīng)用程序/ 引用標(biāo)準(zhǔn)頭文件 (內(nèi)容在上面列出)#include "std_data.h"struct std_data x; / 聲明x是 std_data.my_code() struct std_data y,z; /
11、聲明 "y" 和 "z". / 嚴(yán)格一致的代碼, 但是擴(kuò)展元素"ext_element_3"被復(fù)制。 memcpy(&y,&x,sizeof x); / 把字符串賦給"std_element_2". / 把長(zhǎng)度賦給 "std_element_1". y.std_element_2 = "hello there" y.std_element_1 = strlen(y.std_element_2); /嚴(yán)格一致的代碼, 但是擴(kuò)展元素"ext_elemen
12、t_3"被復(fù)制。 memcpy(&z,&y,sizeof y);/該例子是嚴(yán)格一致的,因?yàn)閷?shí)現(xiàn)時(shí)只解釋和生成標(biāo)準(zhǔn)集合中的元素(即std_element_1和std_element_2)。Memcpy(在內(nèi)存中復(fù)制對(duì)象)操作在這個(gè)假設(shè)的API綁定中相當(dāng)于消費(fèi)和產(chǎn)生操作。而直接的元素訪問(wèn)(如y.std_element_1)在該假設(shè)的API綁定中是解釋和生成操作。3.7 數(shù)據(jù)實(shí)例把數(shù)據(jù)集用某種綁定加以表示。3.8 數(shù)據(jù)對(duì)象在訪問(wèn)數(shù)據(jù)的概念模型中數(shù)據(jù)處理的單元。注1:一個(gè)數(shù)據(jù)對(duì)象可以是一個(gè)數(shù)據(jù)元素或?qū)崿F(xiàn)時(shí)定義的對(duì)象。嚴(yán)格一致的實(shí)現(xiàn)只能使用和訪問(wèn)是數(shù)據(jù)元素的數(shù)據(jù)對(duì)象。注2:一個(gè)
13、數(shù)據(jù)對(duì)象進(jìn)一步地進(jìn)行語(yǔ)義上的定義和限制,就是一個(gè)數(shù)據(jù)結(jié)構(gòu)。一個(gè)數(shù)據(jù)結(jié)構(gòu)的實(shí)例是一個(gè)數(shù)據(jù)集。一個(gè)數(shù)據(jù)集,在某種綁定中進(jìn)一步定義,限制和表示就是一個(gè)數(shù)據(jù)實(shí)例。另見(jiàn):數(shù)據(jù)元素,數(shù)據(jù)實(shí)例,數(shù)據(jù)集,數(shù)據(jù)結(jié)構(gòu)3.9 數(shù)據(jù)集數(shù)據(jù)結(jié)構(gòu)的第二條定義。注:數(shù)據(jù)集是獨(dú)立于綁定的(和綁定無(wú)關(guān))。3.10 數(shù)據(jù)結(jié)構(gòu)(1) 零個(gè)或多個(gè)數(shù)據(jù)元素集合而成的數(shù)據(jù)類(lèi)型。(2) 零個(gè)或多個(gè)數(shù)據(jù)元素集合而成的實(shí)例。注1:在不同的上下文中,一個(gè)數(shù)據(jù)結(jié)構(gòu)可能被認(rèn)為是一個(gè)完整的不可分割的單元。在這種情況下,一個(gè)數(shù)據(jù)結(jié)構(gòu)是一個(gè)具有更高層數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素。3.11 擴(kuò)展數(shù)據(jù)元素在某些上下文中,數(shù)據(jù)結(jié)構(gòu)的某個(gè)數(shù)據(jù)元素在標(biāo)準(zhǔn)之外被定義,但可能在
14、數(shù)據(jù)結(jié)構(gòu)的某個(gè)實(shí)例中使用。數(shù)據(jù)元素的“擴(kuò)展”屬性是一種義務(wù)屬性。數(shù)據(jù)元素的“擴(kuò)展”屬性是一個(gè)一致性程度的特征。(例如:嚴(yán)格一致性實(shí)現(xiàn)與一致性實(shí)現(xiàn))例如:必需擴(kuò)展數(shù)據(jù)元素,可選擴(kuò)展數(shù)據(jù)元素,條件擴(kuò)展數(shù)據(jù)元素。另見(jiàn):條件數(shù)據(jù)元素,必需數(shù)據(jù)元素,義務(wù)(數(shù)據(jù)元素),可選數(shù)據(jù)元素。3.12 生成(數(shù)據(jù))把數(shù)據(jù)的含義用某種適合數(shù)據(jù)交換的形式加以表示。例如:根據(jù)某種概念模型把數(shù)據(jù)結(jié)構(gòu)序列化,在此過(guò)程中不必把數(shù)據(jù)用某種具體的編碼方式加以表示。另見(jiàn):解釋?zhuān)〝?shù)據(jù)),產(chǎn)生(數(shù)據(jù))。3.13 實(shí)現(xiàn)行為外部的觀察,外貌或行動(dòng)。另見(jiàn):實(shí)現(xiàn)定義的行為,實(shí)現(xiàn)值,未定義的行為,未指定的行為。3.14 實(shí)現(xiàn)定義的行為/值未指定的
15、行為或未指定的值,這些行為或值需要在實(shí)現(xiàn)時(shí)做出選擇。另見(jiàn):實(shí)現(xiàn)行為,未定義的行為/值,未指定的行為/值。例如:某種編碼所允許的的最大值,用字節(jié)表示。3.15 實(shí)現(xiàn)值和實(shí)現(xiàn)相關(guān)的值。另見(jiàn):實(shí)現(xiàn)行為,實(shí)現(xiàn)定義的行為/值,未定義的行為/值,未指定的行為/值。3.16 解釋?zhuān)〝?shù)據(jù))處理數(shù)據(jù),直到發(fā)現(xiàn)它在所需程度上的含義。其它形式:解釋數(shù)據(jù),數(shù)據(jù)解釋器,數(shù)據(jù)解釋。另見(jiàn):生成(數(shù)據(jù)),消費(fèi)(數(shù)據(jù))。注:數(shù)據(jù)在解釋前被消費(fèi)。例1:在下列字符流中:<R> <A>123.45</A> <B>PQR</B> <C X="Y"&g
16、t;Z</C></R><R> <D>JKL</D> <E> <F>XXX</F> <G>YYY</G> </E></R>一個(gè)數(shù)據(jù)消費(fèi)者能夠識(shí)別:l 有兩個(gè)記錄,都用標(biāo)號(hào)“R”標(biāo)識(shí)。l 第一個(gè)“R”記錄包含三個(gè)記錄,分別用標(biāo)號(hào)“A”,“B”,“C”標(biāo)識(shí)。l 第二個(gè)“R”記錄包含兩個(gè)記錄,分別用標(biāo)號(hào)“D”,“E”標(biāo)識(shí)。因?yàn)橹蛔R(shí)別了這些標(biāo)號(hào),所以只有它們可以進(jìn)行數(shù)據(jù)解釋。假設(shè)標(biāo)號(hào)“E”代表一個(gè)擴(kuò)展數(shù)據(jù)元素,那么一個(gè)數(shù)據(jù)解釋器可能只能識(shí)別標(biāo)準(zhǔn)標(biāo)號(hào)“A”,“B”
17、“C”“D”。由于1)“消費(fèi)”和“解釋”的分離,2)某種特定的標(biāo)準(zhǔn)綁定(如XML),一個(gè)應(yīng)用程序可能只解釋標(biāo)準(zhǔn)化的特征A,B,C和D。正如上面所說(shuō)的,一個(gè)把數(shù)據(jù)消費(fèi)和數(shù)據(jù)解釋組合起來(lái),但僅僅解釋標(biāo)準(zhǔn)化數(shù)據(jù)元素的應(yīng)用程序可以被稱(chēng)為嚴(yán)格一致的數(shù)據(jù)閱讀器。3.17 本地特定行為依賴于民族,文化,語(yǔ)言,制度等地方習(xí)俗的行為,在具體實(shí)現(xiàn)時(shí)加以說(shuō)明。3.18 生存期(數(shù)據(jù)元素)數(shù)據(jù)元素的一個(gè)屬性,用于表示數(shù)據(jù)元素同標(biāo)準(zhǔn)的過(guò)去,現(xiàn)在或未來(lái)版本的關(guān)系。另見(jiàn):義務(wù)(數(shù)據(jù)元素),過(guò)時(shí)數(shù)據(jù)元素,保留數(shù)據(jù)元素。注:生存期屬性和義務(wù)屬性無(wú)關(guān)。例1:一個(gè)過(guò)時(shí)數(shù)據(jù)元素也許包含在某規(guī)范的過(guò)去版本中,但不會(huì)包含在該規(guī)范的將來(lái)版
18、本中。例2:一個(gè)保留數(shù)據(jù)元素可能并沒(méi)有包含在某規(guī)范的過(guò)去版本中,但可能會(huì)包含在該規(guī)范的將來(lái)版本中。3.19 必需數(shù)據(jù)元素在某些上下文中,在數(shù)據(jù)結(jié)構(gòu)實(shí)例中被定義和要求的數(shù)據(jù)元素?!氨匦琛睂傩允且粋€(gè)數(shù)據(jù)元素的一個(gè)義務(wù)屬性。另見(jiàn):條件數(shù)據(jù)元素,擴(kuò)展數(shù)據(jù)元素,義務(wù)(數(shù)據(jù)元素),可選數(shù)據(jù)元素。3.20 漫游(訪問(wèn),系統(tǒng))(1) 在不同的通訊時(shí)期和地理位置呈現(xiàn)出持續(xù)性的服務(wù)。(2) 不間斷地?cái)嚅_(kāi)網(wǎng)絡(luò),該網(wǎng)絡(luò)用于子系統(tǒng)或相關(guān)系統(tǒng)的通訊。注:也稱(chēng)為“時(shí)斷時(shí)續(xù)的連接”或“時(shí)斷時(shí)續(xù)的漫游”。3.21 義務(wù)(數(shù)據(jù)元素)對(duì)數(shù)據(jù)元素的要求,用于確定一個(gè)數(shù)據(jù)結(jié)構(gòu)的合法性。另見(jiàn):生存期(數(shù)據(jù)元素),條件數(shù)據(jù)元素,擴(kuò)展數(shù)據(jù)元
19、素,必需數(shù)據(jù)元素,可選數(shù)據(jù)元素。例:一個(gè)數(shù)據(jù)元素X,有四個(gè)元素:A和B是必需性的,C是可選的,D是條件的(如果B的值為真,則D存在)。下面是合法和不合法的數(shù)據(jù)結(jié)構(gòu)的例子:( A=123 ) / 不合法,缺少必需數(shù)據(jù)元素B( A=123, B=false ) / 合法( A=123, B=true ) / 不合法,缺少可選數(shù)據(jù)元素D( A=123, B=true, D=17 ) / 合法( A=123, B=false, D=17 ) / 合法( A=123, B=nil, C=345 ) / 合法3.22 過(guò)時(shí)數(shù)據(jù)元素在某些上下文中,某一元素在一個(gè)數(shù)據(jù)結(jié)構(gòu)中被定義,但它不能在數(shù)據(jù)結(jié)構(gòu)的實(shí)例中使
20、用?!斑^(guò)時(shí)”屬性是一個(gè)數(shù)據(jù)元素的生存期屬性。另見(jiàn):生存期(數(shù)據(jù)元素),保留數(shù)據(jù)元素。注:不提倡使用過(guò)時(shí)數(shù)據(jù)元素,關(guān)于它們的規(guī)定也許會(huì)在標(biāo)準(zhǔn)的將來(lái)版本中被刪掉。3.23 可選數(shù)據(jù)元素在某些上下文中,一個(gè)數(shù)據(jù)結(jié)構(gòu)的某個(gè)元素被定義,是允許存在的,但并不一定要求在數(shù)據(jù)結(jié)構(gòu)的實(shí)例中出現(xiàn)?!翱蛇x”屬性是一個(gè)數(shù)據(jù)元素的義務(wù)屬性。另見(jiàn):條件數(shù)據(jù)元素,擴(kuò)展數(shù)據(jù)元素,必需數(shù)據(jù)元素,義務(wù)(數(shù)據(jù)元素)。3.24 產(chǎn)生(數(shù)據(jù))處理數(shù)據(jù)直到詞法或編碼邊界被定義,然后寫(xiě)下結(jié)果數(shù)據(jù)。其它形式:產(chǎn)生數(shù)據(jù),數(shù)據(jù)產(chǎn)生器,數(shù)據(jù)產(chǎn)生。另見(jiàn):生成(數(shù)據(jù)),消費(fèi)(數(shù)據(jù))。注:數(shù)據(jù)在產(chǎn)生前被生成。3.25 信息庫(kù)數(shù)據(jù)集的集合以及對(duì)信息進(jìn)行存
21、儲(chǔ),索引,查找和提取的數(shù)據(jù)訪問(wèn)方法。3.26 保留數(shù)據(jù)元素在某些上下文中,在數(shù)據(jù)結(jié)構(gòu)中沒(méi)有被定義,也不能在數(shù)據(jù)結(jié)構(gòu)的實(shí)例中被使用的數(shù)據(jù)元素?!氨A簟睂傩允菙?shù)據(jù)元素的生存期屬性。另見(jiàn):生存期(數(shù)據(jù)元素),過(guò)時(shí)數(shù)據(jù)元素。3.27 未定義的行為/值某個(gè)標(biāo)準(zhǔn)沒(méi)有做任何要求的實(shí)現(xiàn)行為和實(shí)現(xiàn)值另見(jiàn):實(shí)現(xiàn)行為,實(shí)現(xiàn)值,實(shí)現(xiàn)定義的行為/值,未指定的行為/值。例1:可能的未定義的行為包括,但不局限于:l 完全忽略某種情形。l 不可預(yù)知的結(jié)果。例2:可能的未定義的值包括無(wú)窮,空等。3.28 未指定的行為/值某個(gè)標(biāo)準(zhǔn)提供兩個(gè)或更多的可能性,但不做進(jìn)一步的要求的實(shí)現(xiàn)行為或?qū)崿F(xiàn)值。另見(jiàn):實(shí)現(xiàn)行為,實(shí)現(xiàn)值,實(shí)現(xiàn)定義的行為
22、/值,未定義的行為/值。例1:一個(gè)應(yīng)用程序?qū)λ惴ǖ倪x擇,該算法用于創(chuàng)建對(duì)象的標(biāo)識(shí)符。例2:過(guò)程調(diào)用參數(shù)入棧的次序。3.29 縮寫(xiě)l API : 應(yīng)用程序接口。l HTTP: 超文本傳輸協(xié)議l ICS: 實(shí)現(xiàn)一致性聲明l IETF: Internet Engineering Task Forcel L10N:本地化 l LID: 語(yǔ)言無(wú)關(guān)數(shù)據(jù)類(lèi)型,即ISO/IEC 11404l MDAS API: 元數(shù)據(jù)訪問(wèn)服務(wù)APIl RFC: Request for Commentsl SPM: 最低峰值l W3C: World Wide Web Consortiuml XML: 擴(kuò)展標(biāo)記語(yǔ)言4 XML編碼
23、綁定模版注1:下面的用詞也許會(huì)被集成在某標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化(或條件標(biāo)準(zhǔn)化)部分。“XXX標(biāo)準(zhǔn)”應(yīng)該用集成下面的用詞的標(biāo)準(zhǔn)的名稱(chēng)來(lái)代替。注2:實(shí)現(xiàn)的變體在“擴(kuò)展技術(shù)指導(dǎo)規(guī)范”中定義。如果XXX標(biāo)準(zhǔn)的應(yīng)用程序在其實(shí)現(xiàn)的一致性陳述中包含“XXX標(biāo)準(zhǔn)實(shí)現(xiàn)變體的XML編碼綁定”,那么該應(yīng)用程序應(yīng)該遵循本部分的要求。例:“XXX標(biāo)準(zhǔn)嚴(yán)格遵循數(shù)據(jù)實(shí)例的XML編碼綁定”,“XXX標(biāo)準(zhǔn)遵循數(shù)據(jù)閱讀器的XML編碼綁定”。4.1 生成和產(chǎn)生XML下面的規(guī)則描述了XXX標(biāo)準(zhǔn)的數(shù)據(jù)元素到XML記錄的轉(zhuǎn)化。l 規(guī)則1:對(duì)于ISO/IEC 11404符號(hào)中的任何數(shù)據(jù)元素,除規(guī)則2中說(shuō)明的以外,把標(biāo)識(shí)符映射到XML標(biāo)號(hào)。匹配的XM
24、L標(biāo)號(hào)界定了數(shù)據(jù)元素的值的邊界。XML標(biāo)號(hào)的嵌套代表了數(shù)據(jù)元素的結(jié)構(gòu)。對(duì)于數(shù)組和順序集合,(1)取集合標(biāo)識(shí)符的名稱(chēng)為XML標(biāo)號(hào)的名稱(chēng),來(lái)表示該集合,(2)用重復(fù)的XML標(biāo)號(hào)來(lái)表示其中的單個(gè)數(shù)據(jù)元素,這些XML標(biāo)號(hào)通過(guò)集合的標(biāo)識(shí)符減去后綴“_list”或“_bucket”產(chǎn)生,它不是元素的索引值。l 規(guī)則2:把所有的多語(yǔ)言字符串這種數(shù)據(jù)類(lèi)型映射到:l 規(guī)則2A:多語(yǔ)言字符串?dāng)?shù)據(jù)類(lèi)型的語(yǔ)言元素在父XML元素中設(shè)置LANG屬性。l 規(guī)則2B:字符串元素設(shè)置父標(biāo)識(shí)的內(nèi)容。l 規(guī)則3:把下面的XML標(biāo)號(hào)(通配符號(hào))XXX標(biāo)準(zhǔn)_*轉(zhuǎn)化為下列XML標(biāo)號(hào)(通配符號(hào)):DLTS_XXX標(biāo)準(zhǔn)_*產(chǎn)生的所有數(shù)據(jù)都應(yīng)
25、該是結(jié)構(gòu)良好的XML。依據(jù)下面是對(duì)XXX標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型進(jìn)行以上三個(gè)規(guī)則的特定轉(zhuǎn)化的依據(jù)。注:這個(gè)XML綁定(XXX標(biāo)準(zhǔn)àXML)需要3個(gè)轉(zhuǎn)換規(guī)則。其他標(biāo)準(zhǔn)和不同的XML綁定可能需要更多的或更少的規(guī)則或不同的規(guī)則。規(guī)則1的依據(jù)規(guī)則1是從ISO/IEC 11404的數(shù)據(jù)類(lèi)型到XML標(biāo)號(hào)進(jìn)行轉(zhuǎn)換的主要規(guī)則。下面的例子說(shuō)明這種轉(zhuǎn)換:A: record( B: integer, C: record ( D: integer, E: characterstring(iso-10646-1), ), F_list: array (0.limit) of (integer), G: sample_m
26、lstring_list_type,)第一句,“對(duì)于ISO/IEC 11404符號(hào)中的任何數(shù)據(jù)元素,把標(biāo)識(shí)符映射到XML標(biāo)號(hào)”,轉(zhuǎn)換標(biāo)識(shí)符,例,“x:”Þ“<x>”。第二句,“匹配的XML標(biāo)號(hào)界定了數(shù)據(jù)元素的值的邊界”,要求(1)標(biāo)號(hào)是匹配的,并且(2)數(shù)據(jù)元素的值在標(biāo)號(hào)之間,例,“x : 17”Þ“<x>17</x>”。第三句,“XML標(biāo)號(hào)的嵌套代表了數(shù)據(jù)元素的結(jié)構(gòu)”,要求集合(記錄,數(shù)組,序列/列表)所隱含的嵌套和XML標(biāo)號(hào)的嵌套有相似的結(jié)構(gòu)。利用上面對(duì)記錄A的定義,元素B,C,D和E采取下面的嵌套:<A> <B&g
27、t;.</B> <C> <D>.</D> <E>.</E> </C> .</A>第四句,“對(duì)于數(shù)組和序列,數(shù)據(jù)元素用重復(fù)的XML標(biāo)號(hào)來(lái)表示,這些標(biāo)號(hào)基于集合的標(biāo)識(shí)符,不是元素的索引值”,要求數(shù)組和序列(列表)用具有相同名稱(chēng)的多個(gè)標(biāo)號(hào)來(lái)表示這是典型的XML風(fēng)格。例如,數(shù)據(jù)元素F可以如下表示:<!對(duì)F_list的正確的XML綁定 -><A> . <F_list> <F>.</F> <F>.</F> <F>.&
28、lt;/F> </F_list> .</A>但不能如下表示:<!-對(duì)F_list的不正確的XML綁定-><A> . <F_list> <0>.</0> <1>.</1> <2>.</2> </F_list> .</A>規(guī)則2的依據(jù)XXX標(biāo)準(zhǔn)的記錄可能使用幾種特殊的數(shù)據(jù)類(lèi)型,例如多語(yǔ)言數(shù)據(jù)類(lèi)型用于描述數(shù)據(jù)類(lèi)型為字符串的特定的數(shù)據(jù)元素,這些數(shù)據(jù)元素要在多語(yǔ)言和多文化的環(huán)境中加以表示通常稱(chēng)為國(guó)際化(I18N)和本地化(L10N)特征。下面是
29、一個(gè)多語(yǔ)言數(shù)據(jù)類(lèi)型的一個(gè)例子。在這個(gè)例子中,數(shù)據(jù)元素sample_mlstring_type代表一個(gè)對(duì):一個(gè)本地化的字符串和一個(gè)本地的規(guī)范(L10N映射)。數(shù)據(jù)類(lèi)型sample_mlstring_array_type表示這些字符串對(duì)的一個(gè)數(shù)組。數(shù)組example_remarks包含三個(gè)元素,每個(gè)元素是一個(gè)字符串對(duì)??梢匀缦录僭O(shè),一個(gè)應(yīng)用程序根據(jù)運(yùn)行該程序的不同國(guó)家(地方)從example_remarks中選擇恰當(dāng)?shù)淖址?。下面是該例子的?lèi)型定義和值定義:type sample_mlstring_type =record( L10N_string: characterstring(iso-106
30、46-1), /字符串元素 L10N_locale: string_type, /語(yǔ)言元素),type sample_mlstring_array_type = array (0.limit) of (sample_mlstring_type),value example_remarks: sample_mlstring_array_type =( ( L10N_string: "abc abc abc", L10N_locale: "en-US", ), ( L10N_string: "def def def", L10N_map:
31、 "fr-CA", ), ( L10N_string: "ghi ghi ghi", L10N_map: "de-DE", ),),根據(jù)規(guī)則1和規(guī)則2,把這些數(shù)據(jù)元素轉(zhuǎn)化為XML: <example_remarks LANG="en-US">abc abc abc</example_remarks> <example_remarks LANG="fr-CA">def def def</example_remarks> <example_rem
32、arks LANG="de-DE">ghi ghi ghi</example_remarks>規(guī)則2包括“vcard”映射,它把XXX標(biāo)準(zhǔn)的個(gè)人信息轉(zhuǎn)換到“vcard”結(jié)構(gòu)。注:vcard標(biāo)準(zhǔn)用于規(guī)定如何表示個(gè)人或團(tuán)體的聯(lián)系方法和相關(guān)信息。參見(jiàn):/pdi/。規(guī)則3的依據(jù)該規(guī)則用于重寫(xiě)標(biāo)號(hào),以此使用某些名稱(chēng)空間說(shuō)明符(namespace conventions)。該規(guī)則可以通過(guò)選擇一個(gè)不同的名稱(chēng)空間說(shuō)明符(前綴)來(lái)指定XML的名稱(chēng)空間。實(shí)現(xiàn)時(shí)要求保證轉(zhuǎn)化的結(jié)果是結(jié)構(gòu)良好的XML。4.2 消費(fèi)和解釋數(shù)據(jù)下面的規(guī)則描述了XML記
33、錄到XXX標(biāo)準(zhǔn)數(shù)據(jù)元素的轉(zhuǎn)換。所有進(jìn)行消費(fèi)的數(shù)據(jù)都應(yīng)該是結(jié)構(gòu)良好的XML。l 規(guī)則1:把下面的XML標(biāo)號(hào)(通配符號(hào)):DLTC_XXX標(biāo)準(zhǔn)_*轉(zhuǎn)化為下列XML標(biāo)號(hào)(通配符號(hào)): XXX標(biāo)準(zhǔn)_*l 規(guī)則2:作如下的轉(zhuǎn)化:l 規(guī)則2A:用XML元素的LANG屬性設(shè)置相應(yīng)多語(yǔ)言字符串?dāng)?shù)據(jù)類(lèi)型的數(shù)據(jù)元素的語(yǔ)言元素。l 規(guī)則2B:用標(biāo)號(hào)元素的內(nèi)容設(shè)置相應(yīng)多語(yǔ)言字符串?dāng)?shù)據(jù)類(lèi)型的數(shù)據(jù)元素的字符串元素。l 規(guī)則3:對(duì)于每一個(gè)XML標(biāo)號(hào),如果它和XXX標(biāo)準(zhǔn)的數(shù)據(jù)元素的標(biāo)識(shí)符有關(guān)系,那么對(duì)它的相應(yīng)的開(kāi)閉標(biāo)號(hào)進(jìn)行匹配。對(duì)于每一個(gè)XML標(biāo)號(hào),除了規(guī)則2中所說(shuō)明的,把該標(biāo)號(hào)映射到相應(yīng)的標(biāo)識(shí)符。XML標(biāo)號(hào)的嵌套結(jié)構(gòu)表示了
34、數(shù)據(jù)元素的嵌套關(guān)系,即4. 1中規(guī)則1的逆操作。每個(gè)標(biāo)號(hào)元素的內(nèi)容被轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)元素的值。依據(jù)規(guī)則1的依據(jù)在處理前,要保證實(shí)現(xiàn)進(jìn)行消費(fèi)和解釋的內(nèi)容是結(jié)構(gòu)良好的XML。該規(guī)則在需要的時(shí)候去掉了XML名稱(chēng)空間的前綴和后綴。在這兒并沒(méi)有使用XML的名稱(chēng)空間,而是使用了一個(gè)名稱(chēng)空間的前綴(“DLTC_”)來(lái)減少名稱(chēng)空間沖突的可能性。規(guī)則2的依據(jù)該規(guī)則做了一個(gè)從LANG屬性到多語(yǔ)言字符串?dāng)?shù)據(jù)類(lèi)型的逆映射。該規(guī)則只是轉(zhuǎn)化已知的多語(yǔ)言字符串類(lèi)型的數(shù)據(jù)元素,因?yàn)樗衅渌腦ML LANG屬性跟相關(guān)標(biāo)準(zhǔn)中的多語(yǔ)言字符串類(lèi)型的數(shù)據(jù)元素沒(méi)有對(duì)應(yīng)關(guān)系。在下一個(gè)草案中,規(guī)則2將包含“vCard”的映射。它描述XXX
35、標(biāo)準(zhǔn)的個(gè)人信息同“vCard”結(jié)構(gòu)之間的轉(zhuǎn)化。規(guī)則3的依據(jù)該規(guī)則處理XML標(biāo)記及其內(nèi)容到數(shù)據(jù)元素的主要轉(zhuǎn)變方法。第一句,“對(duì)于每一個(gè)XML標(biāo)號(hào),如果它和XXX標(biāo)準(zhǔn)的數(shù)據(jù)元素的標(biāo)識(shí)符有關(guān)系,那么它的相應(yīng)的開(kāi)閉標(biāo)號(hào)要進(jìn)行匹配”,(1)忽略掉所有該標(biāo)準(zhǔn)不認(rèn)識(shí)的標(biāo)識(shí)符,并且(2)正確地匹配它們。第二句,“對(duì)于每一個(gè)XML標(biāo)號(hào),除了規(guī)則2中所說(shuō)明的,把該標(biāo)號(hào)映射到相應(yīng)的標(biāo)識(shí)符”,創(chuàng)建和數(shù)據(jù)元素的聯(lián)系,但并沒(méi)有給數(shù)據(jù)元素賦值。第三句,“XML標(biāo)號(hào)的嵌套結(jié)構(gòu)表示了數(shù)據(jù)元素的嵌套關(guān)系,即4. 1中規(guī)則1的逆操作”,保證了XML標(biāo)號(hào)的內(nèi)部結(jié)構(gòu)在相關(guān)標(biāo)準(zhǔn)所要求的范圍內(nèi)同數(shù)據(jù)元素的內(nèi)部結(jié)構(gòu)一致。第四句,“每個(gè)標(biāo)號(hào)元
36、素的內(nèi)容被轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)元素的值”,把XML標(biāo)號(hào)內(nèi)的內(nèi)容轉(zhuǎn)化為數(shù)據(jù)元素的值,即填充數(shù)據(jù)元素。4.3 基本數(shù)據(jù)類(lèi)型的表示下面各部分描述了數(shù)據(jù)元素的值同字符表示之間的轉(zhuǎn)化關(guān)系,用于XML綁定中的信息交換。4.3.1 字符和字符串Character類(lèi)型的數(shù)據(jù)元素應(yīng)該根據(jù)XML規(guī)范加以表示。注1:特殊字符,如“&”“<”“>”“;”,需要一定的轉(zhuǎn)化方法,而且可能需要無(wú)損的轉(zhuǎn)化。注2:一些編碼,如ISO-8859-1和UTF-8,允許諸如"©" (版權(quán)符號(hào))等字符的直接編碼。其它的編碼,如ASCII,需要擴(kuò)展編碼,如“©;”,來(lái)表示這些
37、符號(hào)。4.3.2 整數(shù)整型的數(shù)據(jù)元素根據(jù)“ISO/IEC 9899:1999,C編程語(yǔ)言,,整型常量”來(lái)表示。包括”U”,”L”,”LL”后綴及它們的小寫(xiě)形式,也可能包含可選的前導(dǎo)符號(hào),加號(hào)或減號(hào),但不能同時(shí)有。例:0 / 零23 / 二十三0x17 / 16進(jìn)制的23027 / 8進(jìn)制的23-34 / 負(fù)的三十四+34 / 正的三十四4.3.3 實(shí)型數(shù)實(shí)型的數(shù)據(jù)元素:l 如果是整數(shù),參照4.3.2。l 如果不是整數(shù)或不用整數(shù)表示,應(yīng)該根據(jù)“ISO/IEC 9899:1999,C編程語(yǔ)言,,實(shí)型常量”加以表示,包括“F”和“L”后綴以及它們的小寫(xiě)形式,也可能包括一個(gè)
38、可選的前導(dǎo)符號(hào),加號(hào)或減號(hào),但不能同時(shí)有。例:0 / 零0.0 / 零130.0 / 一百三十1.3E2 /一百三十+1.3E2 /一百三十4.3.4 日期和時(shí)間值time類(lèi)型的數(shù)據(jù)元素應(yīng)該根據(jù)“ISO 8601,數(shù)據(jù)元素和交換格式信息交換日期和時(shí)間的表示”來(lái)加以表示。注1:ISO 8601表示的時(shí)間和日期范圍為陽(yáng)歷的0001年的1月1號(hào)到9999年的12月31號(hào)。很明顯它有一些局限性。ISO 8601如下運(yùn)用:l 只使用基本格式。例如:“19990102”和“030405”是合法的,但“1999-01-02”和“03:04:05”是不合法的。依據(jù):對(duì)擴(kuò)展形式的處理會(huì)增加錯(cuò)誤的可能性和降低互操
39、作性。擴(kuò)展格式附加的詞匯元素可能會(huì)和其它詞匯,內(nèi)嵌的或環(huán)繞的信息處理環(huán)境相干擾或沖突。l 十進(jìn)制的小數(shù)使用完全停止符(“.”),即句號(hào)。例如:“199901020304.1”表示03:04:06 AM,1999年1月2號(hào)。注:ISO 8601允許使用逗號(hào)(“,”)和完全停止符,并規(guī)定盡量使用逗號(hào)。依據(jù):逗號(hào)會(huì)和其它詞匯,內(nèi)嵌的或環(huán)繞的信息處理環(huán)境相干擾或沖突。對(duì)于時(shí)間點(diǎn),ISO 8601如下運(yùn)用:l 日期只使用日歷日期格式。注:日歷日期用年,月,日加以表示。ISO 8601所允許的其它格式在本標(biāo)準(zhǔn)中禁止使用。包括序數(shù)日期和日歷周日號(hào)等。依據(jù):對(duì)其它日期格式的處理會(huì)增加錯(cuò)誤的可能性和降低互操作性
40、。l 日期和時(shí)間應(yīng)該使用ISO 8601的完全表示法,不能使用“T”這個(gè)時(shí)間指示符。例如:“19990102030405”表示03:04:05 AM,1999年1月2號(hào)。依據(jù):“T”指示符被省略,因?yàn)樗⒉皇潜匾?。ISO 8601允許在沒(méi)有歧義的情況下省略該指示符。本標(biāo)準(zhǔn)中,歧義通過(guò)如下方法避免(1)只允許ISO 8601的基本格式。(2)要求對(duì)缺少的日期和時(shí)間成分進(jìn)行標(biāo)識(shí)。l 使用下劃符號(hào)(“_”)來(lái)表示缺少的成分。一個(gè)下劃符號(hào)表示一個(gè)缺少的數(shù)字。如:“_0102”表示當(dāng)年的1月2號(hào)。注:缺少組成成分的日期會(huì)引起很大的互操作問(wèn)題,如“2000年問(wèn)題”。建議在實(shí)現(xiàn)時(shí)避免產(chǎn)生缺少組成成分的數(shù)據(jù)
41、,但不可能解決所有的情況。依據(jù):ISO 8601使用連字符代替缺少的成分,但連字符會(huì)和其它詞匯,內(nèi)嵌的或環(huán)繞的信息處理環(huán)境相干擾或沖突。ISO 8601使用連字符來(lái)表示缺少的成分(如“0102”),本標(biāo)準(zhǔn)用一個(gè)下劃符號(hào)代替一個(gè)數(shù)字(如“_0102”),這種方法能減少信息處理的錯(cuò)誤量。l 時(shí)間應(yīng)該用本地時(shí)間或格林尼治時(shí)間(UTC)加以表示。用本地時(shí)間表示的時(shí)間應(yīng)該沒(méi)有后綴并且不指示本地時(shí)間和UTC之間的時(shí)間差別。用UTC表示的時(shí)間應(yīng)該使用“Z”后綴,正如ISO 8601規(guī)定的。例如:“19990102030405”表示紐約的本地時(shí)間,“19990102030905Z”表示相應(yīng)的UTC時(shí)間。依據(jù):除UTC外,使用時(shí)區(qū)的信息會(huì)增加數(shù)據(jù)解釋的負(fù)擔(dān),從而更容易出錯(cuò)。禁止使用時(shí)間差(例如,“19990102030405+0700”)排除了加號(hào)(+)和減號(hào)(“-“)的使用,這兩個(gè)符號(hào)會(huì)和其它詞匯,內(nèi)嵌的或環(huán)繞的信息處理環(huán)境相干擾
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)通關(guān)題庫(kù)(附帶答案)
- 2024年度山西省高校教師資格證之高等教育法規(guī)題庫(kù)練習(xí)試卷A卷附答案
- 2024年度年福建省高校教師資格證之高等教育學(xué)能力測(cè)試試卷B卷附答案
- 2024年企業(yè)金融項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年防霧涂料項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 山東省臨沂一中2024-2025學(xué)年高三11月測(cè)試語(yǔ)文試題含答案
- 第六章 社區(qū)營(yíng)養(yǎng)管理和營(yíng)養(yǎng)干預(yù)課件
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 2024年期房屋建筑施工協(xié)議范例大全
- 2024電力供應(yīng)與消費(fèi)合規(guī)協(xié)議樣式
- 糖皮質(zhì)激素的合理應(yīng)用課件
- 五年級(jí)四則混合運(yùn)算
- 蘇教版五年級(jí)上冊(cè)第七單元解決問(wèn)題的策略作業(yè)設(shè)計(jì)
- 《變壓器有載分接開(kāi)關(guān)振動(dòng)聲學(xué)現(xiàn)場(chǎng)測(cè)試方法》
- 管桁架施工方案
- 全國(guó)高考物理高考題說(shuō)題比賽一等獎(jiǎng)?wù)n件物理說(shuō)題李煥景
- 華為MA5800配置及調(diào)試手冊(cè)
- 汽車(chē)坡道玻璃雨棚施工方案
- 二輪復(fù)習(xí)微專(zhuān)題湖泊專(zhuān)題
- 2024年德陽(yáng)發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 餐前檢查表(標(biāo)準(zhǔn)模版)
評(píng)論
0/150
提交評(píng)論