xmpp 3920 最靠譜的中文翻譯文件(六)
2009-10-17 19:58
10. 處理xml節的伺服器規則
相容伺服器實現必須確保有序處理任兩實體間的xml節。
10.1 無『to』位址
如果節擁有無『to』屬性,伺服器應當代表傳送它的實體處理它。因為所有從其它伺服器收到的節必須擁有乙個『to』屬性,此規則僅應用於從乙個連到伺服器的已註冊實體(如客戶端)收到的節。如果伺服器收到乙個無『to』屬性的出席節,伺服器應當廣播它到被訂閱到傳送實體的出席實體,如果可利用的話(用於定義在[xmpp-ip]即時訊息與表示應用的出席廣播的語義。)如果伺服器接收乙個型別為「get」或「set」的沒有『to』屬性的iq節,並且它理解認證節內容的命名空間,它必須也能代表傳送實體處理節或返回給傳送實體(在「process」意思處被認證命名空間的語義決定)乙個錯誤。
10.2 外部域
如果jid的域識別符號部分的主機包含在『to』屬性中並不匹配伺服器本身的已配置主機名或子域中的已配置主機之一,伺服器應當路由節到外部域(服從本地服務提供與相關內部域通訊的安全策略)。有兩種可能情況:
乙個伺服器到伺服器流已在兩域間存在:傳送者的伺服器為現存流的外部域路由節到已授權伺服器。
兩域間存在無主機到主機流:傳送者的伺服器(1)解析外部域(定義在以下伺服器到伺服器通訊(節14。4))的主機名,(2)在兩域間(定義在如下使用tls(節5)並且使用sasl(節6))協商伺服器到伺服器的流,並(3)為通過新近-建立的流的外部域路由節到授權伺服器。
如果路由到接收者的伺服器不成功,傳送者的伺服器必須返回乙個錯誤給傳送者;如果接收者的伺服器能被聯絡但被接收者的伺服器傳送到接收者是不成功的,接收者的伺服器必須經由傳送者的伺服器返回乙個錯誤給傳送者。
10.3 子域
如果包含在『to』屬性中的jid域識別符號部分的主機名匹配伺服器本身已配置主機名之一的子域,伺服器必須也處理節本身或路由節到乙個特別的對那個子域(如果子域被配置)有責任的服務,或返回乙個錯誤給傳送者(如果子域不被配置)。
10.4 僅有域或特別資源
如果包含在『to』屬性中的jid域識別符號部分的主機名匹配伺服器本身的乙個已配置主機名,並且包含在『to』屬性中的jid是或形式,伺服器(或在內的乙個已定義資源)必須合乎節種類處理節或返回錯誤節給傳送者。
10.5 同域中的節點
如果包含在『to』屬性中的jid域識別符號部分的主機名匹配伺服器本身的乙個已配置主機名,並且包含在『to』屬性中的jid是或形式,伺服器應當傳送節到由包含在『to』屬性中的jid表達的節的意向接收者。以下規則應用:
1) 如果jid包含乙個資源識別符號(例:是形式)並且,這兒存在乙個已連線資源匹配全jid,接收者的伺服器應當傳送的節到確切匹配此資源識別符號流或會話。
2) 如果jid包含乙個資源識別符號並且這兒存在匹配全jid的無連線資源,接收者的伺服器應當返回乙個節錯誤給傳送者。
3) 如果jid是形式,並且這兒存在為此結點的至少乙個已連線資源,接收者的伺服器應當傳送節到連線資源的至少乙個,根據應用-特殊規則(一套傳送規則,用於定義在[xmpp-im]即時訊息與出席應用)。
11. xmpp內的xml使用
11.1 約束
xmpp是流xml元素的乙個簡單與特殊的協議,用來近實時的交換結構化資訊。由於xmpp不需要任意分析與完整xml文件,這兒沒有xmpp需要支援[xml]全特徵的需求。特別的,以下約束應用。
關於xml產生,乙個xmpp實現不准注入以下任意乙個xml流:
*處理說明(2。6節)
*內部或外部dtd子集(2。8節)
*除了預定義實體(4。6節)的內部或外部實體參考。
*包含對映到預定義實體(4。6節)保留字元的字元資料或屬性值;那樣的字元必須被避免
關於xml處理,如果乙個xmpp實現接收到那樣的約束xml資料,它必須忽略此資料。
11.2 xml命名空間名與字首
xml命名空間[xml-names]被用在所有與xmpp-相容的xml中,去建立資料擁有權的嚴格界限。命名空間的基本功能是分離結構的混合在一起的xml元素的不同詞彙。確保xmpp-相容xml是命名空間-了解使任意允許的xml能夠與xmpp中的任意資料元素結構化的混合。xml命名空間名與字首的規則定義在以下子部分。
11.2.1 流命名空間
流命名空間宣告在所有xml流頭中都是需要的。流命名空間名必須是'http://etherx.jabber.org/streams'。元素與它的與子元素的元素名必須被所有例項中的流命名空間認定合格。乙個實現應當為那些元素產生僅有的'stream:'字首,並且因為歷史原因可能接受僅有的'stream:'字首。
11.2.2 預設命名空間
預設命名空間宣告是需要的,並且用在所有xml流中,為了定義允許的根流元素的第一級子元素。此命名空間宣告必須與初始流與響應流相同,為了兩個流一致的被認證合格。預設命名空間宣告應用於流與所有在由其它命名空間認證合格的流(除非由另一命名空間顯示認定合格,或由流命名空間或回叫命名空間字首認證)中傳送的節。
伺服器實現必須支援以下兩個預設命名空間(由於歷史原因,一些實現可能支援僅有的那些兩個預設命名空間):
*jabber:client——預設命名空間,當流用於客戶端與伺服器通訊時所宣告的。
*jabber:server——預設命名空間,當流用於兩伺服器間通訊時宣告的。
客戶端實現必須支援'jabber:client'預設命名空間,並且由於歷史原因可能只支援預設命名空間。
實現不准為預設命名空間中的元素產生命名空間字首,如果預設命名空間是'jabber:client'或'jabber:server'。乙個實現不應當為元素產生命名空間字首,元素由'jabber:client'與'jabber:server'之外的內容(與流相反)命名空間認證的。
注:'jabber:client'與'jabber:server'命名空間是接近同一的,但用在不同的上下文中(客戶端到服務順通訊用'jabber:client'與伺服器到伺服器通訊用'jabber:server')。這兩個僅有的不同是『to』與『from』屬性在'jabber:client'中傳送的節中是可選的,然而在'jabber:server'中傳送的節是必須的。如果乙個相容實現接受乙個由'jabber:client'或'jabber:server'命名空間認證合格的流,它必須支援所有三個核心節種類的(訊息,出席,與iq)通用屬性(9。1節)與基本語義(9。2節)。
11.2.3 回叫命名空間
回叫命名空間宣告對於所有用在伺服器回叫(8節)中的元素都是需要的。回叫命名空間的名字必須是'jabber:server:dialback'。所有由這個命名空間認證合格的元素必須被加字首。乙個實現應當為那種元素僅產生'db:'字首並可能接受僅有的'db:'字首。
11.3 確認(驗證)
除了'jabber:server'命名空間中節的相關『to』與『from』位址,伺服器不為**到客戶端或另乙個伺服器的xml元素負責;乙個實現可能選擇提供僅有的認證資料元素,但這是可選的(雖然乙個實現不准接受xml,那也不是好格式)。客戶端不應當依賴此能力去傳送資料,這些資料與方案並不符,並且應當忽略乙個來的xml流中的非構造元素或屬性。xml流與節的驗證是可選的,包含在此的方案僅用於描述目的。
11.4 包含文字宣告
實現應當在傳送流頭之前傳送文字宣告。應用必須遵循文字宣告包含在內的相關環境的[xml]中的規則。
11.5 字元編碼
實現必須支援utf-8 (rfc 3629 [utf-8])統一字符集(iso/iec 10646-1 [ucs2])字元傳輸,rfc 2277 [charset]中查。實現不准試圖使用其它編碼。
最靠譜的禁止ViewPager滑動方法
今天的工作中,遇到乙個需求,就是禁止了viewpager的滑動效果。但是我的viewpager裡面巢狀了scrollview。並且裡面有seekbar,還有edittext,雖然我剛開始直接將viewpager的ontounchevent返回false。但是發現表面上確實禁止了滑動。但是在scrol...
最靠譜的iPhone 5概念機
從設計的角度看,這位設計師的概念機還是跟蘋果的風格比較相符的。這款iphone 5概念機承繼了4代的金屬時尚氣息,除開細節調整外,整體基本跟4代相似。不過它背部採用的是微弧型設計,有效的減少了機身與桌面的接觸面積,減少磨損事故。設計師也在圖中也列出了自己猜測的配置 a6雙核處理器 4.5英吋螢幕 液...
哪款藍芽耳機最好?2018最靠譜的藍芽耳機推薦
伴隨著運動健身的熱潮,聽 運動儼然成為了一種潮流。因此人們對無線藍芽耳機的需求也逐漸增加。時下藍芽耳機品牌多種多樣,那個品牌最好呢?今天就給大家推薦幾款使用者綜合口碑不錯的藍芽耳機。1.jeet藍芽耳機 jeet藍芽耳機是時下最火的時尚網紅耳機,擁有 藍芽耳機價效比之王 的稱號。官方主打平價享輕奢,...