Network Working Group                                P. Saint-Andre, Ed.
Request for Comments: 3921                    Jabber Software Foundation
Category: Standards Track                                   October 2004
        
          Extensible Messaging and Presence Protocol (XMPP):
                     Instant Messaging and Presence
        

Status of this Memo

このメモの位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2004).

著作権(C)インターネット協会(2004)。

Abstract

抽象

This memo describes extensions to and applications of the core features of the Extensible Messaging and Presence Protocol (XMPP) that provide the basic instant messaging (IM) and presence functionality defined in RFC 2779.

このメモはへの拡張およびRFC 2779で定義された基本的なインスタントメッセージング(IM)とプレゼンス機能を提供する拡張可能なメッセージングおよびプレゼンスプロトコル(XMPP)のコア機能のアプリケーションについて説明します。

Table of Contents

目次

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.   Syntax of XML Stanzas  . . . . . . . . . . . . . . . . . . .   4
   3.   Session Establishment  . . . . . . . . . . . . . . . . . . .  10
   4.   Exchanging Messages  . . . . . . . . . . . . . . . . . . . .  13
   5.   Exchanging Presence Information  . . . . . . . . . . . . . .  16
   6.   Managing Subscriptions . . . . . . . . . . . . . . . . . . .  26
   7.   Roster Management  . . . . . . . . . . . . . . . . . . . . .  27
   8.   Integration of Roster Items and Presence Subscriptions . . .  32
   9.   Subscription States  . . . . . . . . . . . . . . . . . . . .  56
   10.  Blocking Communication . . . . . . . . . . . . . . . . . . .  62
   11.  Server Rules for Handling XML Stanzas  . . . . . . . . . . .  85
   12.  IM and Presence Compliance Requirements  . . . . . . . . . .  88
   13.  Internationalization Considerations  . . . . . . . . . . . .  89
   14.  Security Considerations  . . . . . . . . . . . . . . . . . .  89
   15.  IANA Considerations  . . . . . . . . . . . . . . . . . . . .  90
   16.  References . . . . . . . . . . . . . . . . . . . . . . . . .  91
   A.   vCards . . . . . . . . . . . . . . . . . . . . . . . . . . .  93
   B.   XML Schemas. . . . . . . . . . . . . . . . . . . . . . . . .  93
   C.   Differences Between Jabber IM/Presence Protocols and XMPP. . 105
   Contributors . . . . . . . . . . . . . . . . . . . . . . . . . .  106
   Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . .  106
   Author's Address. . . . . . . . . . . . . . . . . . . . . . . . . 106
   Full Copyright Statement. . . . . . . . . . . . . . . . . . . . . 107
        
1. Introduction
1. はじめに
1.1. Overview
1.1. 概要

The Extensible Messaging and Presence Protocol (XMPP) is a protocol for streaming XML [XML] elements in order to exchange messages and presence information in close to real time. The core features of XMPP are defined in Extensible Messaging and Presence Protocol (XMPP): Core [XMPP-CORE]. These features -- mainly XML streams, use of TLS and SASL, and the <message/>, <presence/>, and <iq/> children of the stream root -- provide the building blocks for many types of near-real-time applications, which may be layered on top of the core by sending application-specific data qualified by particular XML namespaces [XML-NAMES]. This memo describes extensions to and applications of the core features of XMPP that provide the basic functionality expected of an instant messaging (IM) and presence application as defined in RFC 2779 [IMP-REQS].

拡張メッセージングおよびプレゼンスプロトコル(XMPP)は、リアルタイムに近い内のメッセージ及びプレゼンス情報を交換するためにXML [XML]の要素をストリーミングするためのプロトコルです。コア[XMPP-CORE]:XMPPのコア機能は、拡張メッセージングおよびプレゼンスプロトコル(XMPP)で定義されています。これらの機能 - 主にXMLストリーム、TLSおよびSASLの使用、およびストリームのルートの<メッセージ/>、<存在/>、および<IQ />子供 - ニア実、多くの種類のためのビルディングブロックを提供特定のXML名前空間[XML-NAMES]で修飾アプリケーション固有のデータを送信することにより、コアの上に積層してもよい時間アプリケーション。このメモは[IMP-REQS]およびRFC 2779で定義されるように、インスタントメッセージング(IM)とプレゼンス・アプリケーションに期待される基本的な機能を提供するXMPPのコア機能のアプリケーションの拡張を記述しています。

1.2. Requirements
1.2. 必要条件

For the purposes of this memo, the requirements of a basic instant messaging and presence application are defined by [IMP-REQS], which at a high level stipulates that a user must be able to complete the following use cases:

このメモの目的のために、基本的なインスタントメッセージングとプレゼンスアプリケーションの要件は、高いレベルのユーザは、次のユースケースを完了することができなければならないことを規定[IMP-REQS]によって定義されます。

o Exchange messages with other users o Exchange presence information with other users o Manage subscriptions to and from other users o Manage items in a contact list (in XMPP this is called a "roster") o Block communications to or from specific other users

O、他のユーザーとの交流のプレゼンス情報O、他のユーザーとの交流のメッセージは、Oまたは特定の他のユーザからのブロック通信O(XMPPでは、これは「名簿」と呼ばれる)連絡先リスト内の項目を管理O、他のユーザへ及びからのサブスクリプションを管理します

Detailed definitions of these functionality areas are contained in [IMP-REQS], and the interested reader is directed to that document regarding the requirements addressed herein.

これらの機能性領域の詳細な定義は[IMP-REQS]に含まれており、興味のある読者は、本明細書に対処要件に関してその文書を対象とします。

[IMP-REQS] also stipulates that presence services must be separable from instant messaging services; i.e., it must be possible to use the protocol to provide a presence service, an instant messaging service, or both. Although the text of this memo assumes that implementations and deployments will want to offer a unified instant messaging and presence service, there is no requirement that a service must offer both a presence service and an instant messaging service, and the protocol makes it possible to offer separate and distinct services for presence and for instant messaging.

[IMP-REQS]もプレゼンスサービスはインスタントメッセージングサービスから分離しなければならないことを規定しています。すなわち、プレゼンスサービス、インスタントメッセージングサービス、またはその両方を提供するプロトコルを使用することが可能でなければなりません。このメモのテキストは実装と展開が統一されたインスタントメッセージングとプレゼンスサービスを提供したいということを前提としていますが、サービスは、プレゼンスサービスやインスタントメッセージングサービス、およびプロトコルの両方を提供しなければならないという要件を提供することが可能になりませんがありますプレゼンス用およびインスタントメッセージングのための独立した別個のサービスを提供しています。

Note: While XMPP-based instant messaging and presence meets the requirements of [IMP-REQS], it was not designed explicitly with that specification in mind, since the base protocol evolved through an open development process within the Jabber open-source community before RFC 2779 was written. Note also that although protocols addressing many other functionality areas have been defined in the Jabber community, such protocols are not included in this memo because they are not required by [IMP-REQS].

注:XMPPベースのインスタントメッセージングとプレゼンスを[IMP-REQS]の要件を満たしながら、ベースプロトコルはRFC前Jabberのオープンソース・コミュニティ内のオープンな開発プロセスを通じて進化するので、それは、念頭に置いて、その仕様に明示的に設計されていません2779年には書かれていました。他の多くの機能分野に取り組むプロトコルはJabberのコミュニティで定義されているが、それらは[IMP-REQS]によって必要とされていないので、そのようなプロトコルはこのメモに含まれていないことにも注意してください。

1.3. Terminology
1.3. 用語

This memo inherits the terminology defined in [XMPP-CORE].

このメモは[XMPP-CORE]で定義された用語を継承します。

The capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [TERMS].

この文書に記載されている大文字のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "オプション" BCP 14、RFC 2119 [用語]で説明されるように解釈されるべきです。

2. Syntax of XML Stanzas
XMLスタンザの2構文

The basic semantics and common attributes of XML stanzas qualified by the 'jabber:client' and 'jabber:server' namespaces are defined in [XMPP-CORE]. However, these namespaces also define various child elements, as well as values for the common 'type' attribute, that are specific to instant messaging and presence applications. Thus, before addressing particular "use cases" for such applications, we here further describe the syntax of XML stanzas, thereby supplementing the discussion in [XMPP-CORE].

基本的な意味とによって修飾されたXMLスタンザの一般的な属性のおしゃべり:クライアント 'と'おしゃべり:サーバの名前空間は[XMPP-CORE]で定義されています。しかし、これらの名前空間は、様々な子要素だけでなく、インスタントメッセージングとプレゼンスアプリケーションに固有である共通の「タイプ」属性の値を定義します。したがって、このようなアプリケーションのための特定の「ユースケース」を対処する前に、我々はここで、さらにそれによって、[XMPP-CORE]で議論を補完する、XMLスタンザの構文を説明します。

2.1. Message Syntax
2.1. メッセージの構文

Message stanzas qualified by the 'jabber:client' or 'jabber:server' namespace are used to "push" information to another entity. Common uses in instant messaging applications include single messages, messages sent in the context of a chat conversation, messages sent in the context of a multi-user chat room, headlines and other alerts, and errors.

メッセージがで修飾スタンザ「おしゃべり:クライアント」または 'おしゃべり:サーバの名前空間は別のエンティティに情報を「プッシュ」するために使用されています。インスタントメッセージングアプリケーションでの一般的な用途は、単一のメッセージ、チャットの会話のコンテキストで送信されたメッセージ、マルチユーザチャットルームのコンテキストで送信されたメッセージ、見出しや他の警告、およびエラーが含まれます。

2.1.1. Types of Message
2.1.1. メッセージの種類

The 'type' attribute of a message stanza is RECOMMENDED; if included, it specifies the conversational context of the message, thus providing a hint regarding presentation (e.g., in a GUI). If included, the 'type' attribute MUST have one of the following values:

メッセージスタンザの「タイプ」属性が推奨されます。含まれている場合、それは、このように(例えば、GUIで)プレゼンテーションに関するヒントを提供し、メッセージの会話のコンテキストを指定します。含まれている場合は、「タイプ」属性には、次のいずれかの値を持っている必要があります。

o chat -- The message is sent in the context of a one-to-one chat conversation. A compliant client SHOULD present the message in an interface enabling one-to-one chat between the two parties, including an appropriate conversation history.

Oチャット - メッセージが一対一チャットの会話のコンテキストで送信されます。準拠のクライアントは、適切な会話履歴などの二者間の1対1のチャットを可能にするインタフェースでメッセージを提示しなければなりません。

o error -- An error has occurred related to a previous message sent by the sender (for details regarding stanza error syntax, refer to [XMPP-CORE]). A compliant client SHOULD present an appropriate interface informing the sender of the nature of the error.

Oエラー - エラー([XMPP-CORE]を参照して、スタンザエラー構文に関する詳細については)送信者によって送信された以前のメッセージに関連し発生しました。準拠のクライアントは、エラーの性質を送信者に知らせる適切なインタフェースを提示しなければなりません。

o groupchat -- The message is sent in the context of a multi-user chat environment (similar to that of [IRC]). A compliant client SHOULD present the message in an interface enabling many-to-many chat between the parties, including a roster of parties in the chatroom and an appropriate conversation history. Full definition of XMPP-based groupchat protocols is out of scope for this memo.

Oグループチャット - メッセージ([IRC]と同様)、マルチユーザチャット環境のコンテキスト内で送信されます。準拠のクライアントは、チャットルームでの政党の名簿と適切な会話履歴を含め、当事者間で多対多のチャットを可能にするインターフェースでメッセージを提示しなければなりません。 XMPPベースのグループチャットプロトコルの完全な定義は、このメモの範囲外です。

o headline -- The message is probably generated by an automated service that delivers or broadcasts content (news, sports, market information, RSS feeds, etc.). No reply to the message is expected, and a compliant client SHOULD present the message in an interface that appropriately differentiates the message from standalone messages, chat sessions, or groupchat sessions (e.g., by not providing the recipient with the ability to reply).

O見出し - メッセージは、おそらく提供または放送コンテンツ(ニュース、スポーツ、市場情報は、RSSフィードなど)自動化されたサービスによって生成されます。メッセージに対する返事が期待されず、準拠クライアントが適切スタンドアロンメッセージ、チャットセッション、又はグループチャットセッション(例えば、返信する能力を受信者を提供しないことによって)からのメッセージを区別インタフェースにメッセージを提示しなければなりません。

o normal -- The message is a single message that is sent outside the context of a one-to-one conversation or groupchat, and to which it is expected that the recipient will reply. A compliant client SHOULD present the message in an interface enabling the recipient to reply, but without a conversation history.

O正常 - メッセージは、1対1の会話又はグループチャットのコンテキスト外で送信される単一のメッセージであり、そして受信者が返信することが期待されました。準拠のクライアントはなく、会話履歴なし、返信する受信者を有効にするインターフェイスにメッセージを提示しなければなりません。

An IM application SHOULD support all of the foregoing message types; if an application receives a message with no 'type' attribute or the application does not understand the value of the 'type' attribute provided, it MUST consider the message to be of type "normal" (i.e., "normal" is the default). The "error" type MUST be generated only in response to an error related to a message received from another entity.

IMアプリケーションは、上記のメッセージタイプの全てを支持します。アプリケーションが受信した場合なし「タイプ」属性やアプリケーションとのメッセージが提供する「タイプ」属性の値を理解していない、それが「通常」のメッセージがタイプであることを考慮しなければならない(すなわち、「通常は」デフォルトです) 。 「エラー」型は、他のエンティティから受信したメッセージに関連したエラーに応答して生成されなければなりません。

Although the 'type' attribute is OPTIONAL, it is considered polite to mirror the type in any replies to a message; furthermore, some specialized applications (e.g., a multi-user chat service) MAY at their discretion enforce the use of a particular message type (e.g., type='groupchat').

「タイプ」属性はオプションですが、メッセージへの応答でタイプをミラーリングする礼儀正しいと考えられています。さらに、いくつかの特殊な用途(例えば、マルチユーザチャットサービス)は、その裁量で、特定のメッセージ・タイプ(例えば、タイプ=「グループチャット」)の使用を強制するかもしれません。

2.1.2. Child Elements
2.1.2. 子要素

As described under extended namespaces (Section 2.4), a message stanza MAY contain any properly-namespaced child element.

拡張名前空間(2.4節)の下で説明したように、メッセージスタンザは、任意の適切に名前空間の子要素を含むかもしれません。

In accordance with the default namespace declaration, by default a message stanza is qualified by the 'jabber:client' or 'jabber:server' namespace, which defines certain allowable children of message stanzas. If the message stanza is of type "error", it MUST include an <error/> child; for details, see [XMPP-CORE]. Otherwise, the message stanza MAY contain any of the following child elements without an explicit namespace declaration:

「:クライアントおしゃべり」または 'おしゃべり:サーバのメッセージ・スタンザのある許容子どもを定義し、名前空間、デフォルトの名前空間宣言に従い、デフォルトではメッセージスタンザがで修飾されます。メッセージスタンザがタイプ「エラー」である場合、それは<誤り/>子供を含まなければなりません。詳細については、[XMPP-CORE]を参照してください。それ以外の場合は、メッセージスタンザは、明示的な名前空間宣言せずに次の子要素のいずれかが含まれる場合があります。

1. <subject/> 2. <body/> 3. <thread/>

1. <被験者/> 2 <BODY /> 3. <スレッド/>

2.1.2.1. Subject
2.1.2.1。主題

The <subject/> element contains human-readable XML character data that specifies the topic of the message. The <subject/> element MUST NOT possess any attributes, with the exception of the 'xml:lang' attribute. Multiple instances of the <subject/> element MAY be included for the purpose of providing alternate versions of the same subject, but only if each instance possesses an 'xml:lang' attribute with a distinct language value. The <subject/> element MUST NOT contain mixed content (as defined in Section 3.2.2 of [XML]).

<対象/>要素は、メッセージのトピックを指定し、人間が読めるXMLの文字データが含まれています。属性:<件名/>要素は、「LANGのxml」を除いて、すべての属性を持ってはなりません。異なる言語の値を持つ属性:<件名/>要素の複数のインスタンスがなく、各インスタンスは、「LANG XML」を有している場合にのみ、同一の被写体の代替バージョンを提供する目的のために含まれるかもしれません。 ([XML]のセクション3.2.2で定義されるように)<被験者/>要素は、混合コンテンツを含んではなりません。

2.1.2.2. Body
2.1.2.2。体

The <body/> element contains human-readable XML character data that specifies the textual contents of the message; this child element is normally included but is OPTIONAL. The <body/> element MUST NOT possess any attributes, with the exception of the 'xml:lang' attribute. Multiple instances of the <body/> element MAY be included but only if each instance possesses an 'xml:lang' attribute with a distinct language value. The <body/> element MUST NOT contain mixed content (as defined in Section 3.2.2 of [XML]).

<ボディ/>要素は、メッセージのテキストの内容を指定し、人間が読み取り可能なXML文字データが含まれています。この子要素は、通常は含まれるがオプションです。属性:<ボディ/>要素は、「LANGのxml」を除いて、すべての属性を持ってはなりません。異なる言語の値を持つ属性:<BODY />要素の複数のインスタンスがなく、各インスタンスは、「LANG XML」を有している場合にのみ含まれるかもしれません。 ([XML]のセクション3.2.2で定義されるように)<BODY />要素は、混合コンテンツを含んではなりません。

2.1.2.3. Thread
2.1.2.3。糸

The <thread/> element contains non-human-readable XML character data specifying an identifier that is used for tracking a conversation thread (sometimes referred to as an "instant messaging session") between two entities. The value of the <thread/> element is generated by the sender and SHOULD be copied back in any replies. If used, it MUST be unique to that conversation thread within the stream and MUST be consistent throughout that conversation (a client that receives a message from the same full JID but with a different thread ID MUST assume that the message in question exists outside the context of the existing conversation thread). The use of the <thread/> element is OPTIONAL and is not used to identify individual messages, only conversations. A message stanza MUST NOT contain more than one <thread/> element. The <thread/> element MUST NOT possess any attributes. The value of the <thread/> element MUST be treated as opaque by entities; no semantic meaning may be derived from it, and only exact comparisons may be made against it. The <thread/> element MUST NOT contain mixed content (as defined in Section 3.2.2 of [XML]).

<スレッド/>要素は、会話スレッドを追跡するために使用される識別子を指定する非ヒトが読み取り可能なXML文字データが含まれている2つのエンティティ間の(時には「インスタントメッセージングセッション」と呼びます)。 <スレッド/>要素の値は送信者によって生成され、バック任意の応答にコピーする必要があります。使用している場合、それは、ストリーム内のその会話のスレッドに一意である必要があり、その会話を通して一貫していなければならない(同じフルJIDからではなく、別のスレッドのIDとメッセージを受け取るクライアントは、問題のメッセージがコンテキストの外に存在すると仮定しなければなりません既存の会話スレッドの)。 <スレッド/>要素の使用は任意であり、個々のメッセージのみの会話を識別するために使用されていません。メッセージスタンザは、複数の<スレッド/>要素を含めることはできません。 <スレッド/>要素は、任意の属性を持ってはなりません。 <スレッド/>要素の値は、エンティティによって不透明なものとして扱われなければなりません。何の意味論的な意味は、それに由来しないかもしれない、そして唯一の正確な比較がそれに対して行うことができます。 ([XML]のセクション3.2.2で定義されるように)<スレッド/>要素は、混合コンテンツを含んではなりません。

2.2. Presence Syntax
2.2. プレゼンス構文

Presence stanzas are used qualified by the 'jabber:client' or 'jabber:server' namespace to express an entity's current network availability (offline or online, along with various sub-states of the latter and optional user-defined descriptive text), and to notify other entities of that availability. Presence stanzas are also used to negotiate and manage subscriptions to the presence of other entities.

「:クライアントおしゃべり」または 'おしゃべり:サーバのプレゼンススタンザはによって修飾使用されている(の様々なサブ状態とともに、オフラインまたはオンライン後者とオプションのユーザー定義の説明テキスト)エンティティの現在のネットワークの可用性を表現するために、名前空間、およびその可用性の他のエンティティに通知します。プレゼンススタンザは、他のエンティティの存在のためにサブスクリプションを交渉し、管理するために使用されています。

2.2.1. Types of Presence
2.2.1. プレゼンスの種類

The 'type' attribute of a presence stanza is OPTIONAL. A presence stanza that does not possess a 'type' attribute is used to signal to the server that the sender is online and available for communication. If included, the 'type' attribute specifies a lack of availability, a request to manage a subscription to another entity's presence, a request for another entity's current presence, or an error related to a previously-sent presence stanza. If included, the 'type' attribute MUST have one of the following values:

プレゼンススタンザの「タイプ」属性はオプションです。 「タイプ」属性を持たない存在スタンザは、送信者が通信のためにオンラインで使用可能なサーバに知らせるために使用されます。含まれている場合は、「タイプ」属性は、可用性の欠如、別のエンティティの存在にサブスクリプションを管理するための要求、別のエンティティの現在のプレゼンスの要求、または以前に送信されたプレゼンススタンザに関連するエラーを指定します。含まれている場合は、「タイプ」属性には、次のいずれかの値を持っている必要があります。

o unavailable -- Signals that the entity is no longer available for communication.

使用不能O - エンティティが通信のためにもはや利用できないことを通知します。

o subscribe -- The sender wishes to subscribe to the recipient's presence.

Oサブスクライブ - 送信者は受信者のプレゼンスに加入することを希望します。

o subscribed -- The sender has allowed the recipient to receive their presence.

Oサブスクライブ - 送信者は受信者がその存在を受信することができました。

o unsubscribe -- The sender is unsubscribing from another entity's presence.

退会O - 送信者が別のエンティティの存在から脱退されます。

o unsubscribed -- The subscription request has been denied or a previously-granted subscription has been cancelled.

O解除 - サブスクリプション要求が拒否されているか、以前に付与されたサブスクリプションがキャンセルされました。

o probe -- A request for an entity's current presence; SHOULD be generated only by a server on behalf of a user.

Oプローブ - エンティティの現在のプレゼンスを要求。唯一のユーザーの代わりにサーバーによって生成されるべきです。

o error -- An error has occurred regarding processing or delivery of a previously-sent presence stanza.

Oエラー - エラーを処理または送信済みプレゼンススタンザの送達について発生しました。

For detailed information regarding presence semantics and the subscription model used in the context of XMPP-based instant messaging and presence applications, refer to Exchanging Presence Information (Section 5) and Managing Subscriptions (Section 6).

プレゼンスのセマンティクスとXMPPベースのインスタントメッセージングとプレゼンスアプリケーションのコンテキストで使用されるサブスクリプションモデルに関する詳細な情報については、プレゼンス情報(第5節)とサブスクリプションの管理(第6節)の交換を参照してください。

2.2.2. Child Elements
2.2.2. 子要素

As described under extended namespaces (Section 2.4), a presence stanza MAY contain any properly-namespaced child element.

拡張名前空間(2.4節)の下で説明したように、プレゼンススタンザは、任意の適切に名前空間の子要素を含むかもしれません。

In accordance with the default namespace declaration, by default a presence stanza is qualified by the 'jabber:client' or 'jabber:server' namespace, which defines certain allowable children of presence stanzas. If the presence stanza is of type "error", it MUST include an <error/> child; for details, see [XMPP-CORE]. If the presence stanza possesses no 'type' attribute, it MAY contain any of the following child elements (note that the <status/> child MAY be sent in a presence stanza of type "unavailable" or, for historical reasons, "subscribe"):

「:クライアントおしゃべり」または 'おしゃべり:サーバのプレゼンススタンザのある許容子どもを定義し、名前空間、デフォルトの名前空間宣言に従い、デフォルトでは存在スタンザがで修飾されます。プレゼンススタンザがタイプ「エラー」である場合、それは<誤り/>子供を含まなければなりません。詳細については、[XMPP-CORE]を参照してください。プレゼンススタンザはNO「type」属性を持っていない場合は、<状態/>子供が「利用できない」や、歴史的な理由のためにタイプの存在スタンザで送信することができる、「購読する」ことに注意してください(次の子要素のいずれかを含むかもしれ):

1. <show/> 2. <status/> 3. <priority/>

1. <ショー/> 2. <状態/> 3. <優先/>

2.2.2.1. Show
2.2.2.1。公演

The OPTIONAL <show/> element contains non-human-readable XML character data that specifies the particular availability status of an entity or specific resource. A presence stanza MUST NOT contain more than one <show/> element. The <show/> element MUST NOT possess any attributes. If provided, the XML character data value MUST be one of the following (additional availability types could be defined through a properly-namespaced child element of the presence stanza):

オプションの<ショー/>要素は、エンティティの特定の可用性ステータスまたは特定のリソースを指定する非人間が読めるXMLの文字データが含まれています。プレゼンススタンザは、複数の<ショー/>要素を含めることはできません。 <ショー/>要素は、任意の属性を持ってはなりません。提供されている場合、XML文字データ値は、次の(存在スタンザの適切-名前空間の子要素によって定義することができ、追加の可用性種類)のいずれかである必要があります

o away -- The entity or resource is temporarily away.

O離れ - エンティティまたはリソースが一時的に離れています。

o chat -- The entity or resource is actively interested in chatting.

Oチャット - エンティティまたはリソースがチャットで積極的に興味を持っています。

o dnd -- The entity or resource is busy (dnd = "Do Not Disturb").

O DND - エンティティまたはリソースが(DND =「着信拒否」)忙しいです。

o xa -- The entity or resource is away for an extended period (xa = "eXtended Away").

O XA - エンティティまたはリソースは、(XA =「アウェイEXTENDED」)長期間離れています。

If no <show/> element is provided, the entity is assumed to be online and available.

何の<ショー/>要素が提供されない場合は、エンティティがオンラインで使用可能であると仮定されます。

2.2.2.2. Status
2.2.2.2。状態

The OPTIONAL <status/> element contains XML character data specifying a natural-language description of availability status. It is normally used in conjunction with the show element to provide a detailed description of an availability state (e.g., "In a meeting"). The <status/> element MUST NOT possess any attributes, with the exception of the 'xml:lang' attribute. Multiple instances of the <status/> element MAY be included but only if each instance possesses an 'xml:lang' attribute with a distinct language value.

オプションの<状態/>要素は、可用性ステータスの自然言語記述を指定するXML文字データが含まれています。通常(例えば、「会議中」)可用性状態の詳細な説明を提供するために、表示要素に関連して使用されます。属性:<状態/>要素は、「LANGのxml」を除いて、すべての属性を持ってはなりません。 <状態/>要素の複数のインスタンスが含まれていてもよいが、各インスタンスは「XML:langの」所有する場合にのみ異なる言語の値を持つ属性を。

2.2.2.3. Priority
2.2.2.3。優先

The OPTIONAL <priority/> element contains non-human-readable XML character data that specifies the priority level of the resource. The value MUST be an integer between -128 and +127. A presence stanza MUST NOT contain more than one <priority/> element. The <priority/> element MUST NOT possess any attributes. If no priority is provided, a server SHOULD consider the priority to be zero. For information regarding the semantics of priority values in stanza routing within instant messaging and presence applications, refer to Server Rules for Handling XML Stanzas (Section 11).

オプションの<優先/>要素は、リソースの優先順位を指定する非人間が読めるXMLの文字データが含まれています。値は-128と+127の間の整​​数でなければなりません。プレゼンススタンザは、複数の<優先/>要素を含めることはできません。 <優先/>要素は、任意の属性を持ってはなりません。何の優先順位が提供されていない場合、サーバは優先度がゼロであることを考慮すべきです。インスタントメッセージングとプレゼンスアプリケーション内のスタンザルーティングに優先度の値の意味論に関する情報については、XMLスタンザ(セクション11)を取り扱うためにサーバーのルールを参照してください。

2.3. IQ Syntax
2.3. IQ構文

IQ stanzas provide a structured request-response mechanism. The basic semantics of that mechanism (e.g., that the 'id' attribute is REQUIRED) are defined in [XMPP-CORE], whereas the specific semantics required to complete particular use cases are defined in all cases by an extended namespace (Section 2.4) (note that the 'jabber:client' and 'jabber:server' namespaces do not define any children of IQ stanzas other than the common <error/>). This memo defines two such extended namespaces, one for Roster Management (Section 7) and the other for Blocking Communication (Section 10); however, an IQ stanza MAY contain structured information qualified by any extended namespace.

IQスタンザは、構造化された要求応答メカニズムを提供します。その機構固有のセマンティクスが拡張された名前空間によって、全ての場合に定義されている特定のユースケースを完了するために必要なのに対し(例えば、「ID」属性が必要であること)、[XMPP-CORE]で定義される(セクション2.4)の基本的な意味論( 'おしゃべり:クライアントのことに注意してくださいと'おしゃべり:サーバの名前空間はIQの子を定義していないことは共通<エラー/>以外のスタンザ)。このメモは、二つのそのような拡張された名前空間、選手管理(セクション7)のための1つの通信(セクション10)をブロックするための他の定義します。ただし、IQスタンザは、すべての拡張名前空間で修飾構造化された情報を含むかもしれません。

2.4. Extended Namespaces
2.4. 拡張名前空間

While the three XML stanza kinds defined in the "jabber:client" or "jabber:server" namespace (along with their attributes and child elements) provide a basic level of functionality for messaging and presence, XMPP uses XML namespaces to extend the stanzas for the purpose of providing additional functionality. Thus a message or presence stanza MAY contain one or more optional child elements specifying content that extends the meaning of the message (e.g., an XHTML-formatted version of the message body), and an IQ stanza MAY contain one such child element. This child element MAY have any name and MUST possess an 'xmlns' namespace declaration (other than "jabber:client", "jabber:server", or "http://etherx.jabber.org/streams") that defines all data contained within the child element.

または「ジャバー:サーバー」:「クライアントジャバー」で定義された3つのXMLスタンザの種類ものの(その属性と子要素と一緒に)名前空間は、メッセージングとプレゼンスのための機能の基本的なレベルを提供し、XMPPはのためのスタンザを拡張するためにXML名前空間を使用しています追加機能を提供する目的。したがって、メッセージまたは存在スタンザ(例えば、メッセージ本文のXHTMLフォーマットのバージョン)、およびIQスタンザは、1つのそのような子の元素を含んでいてもよいメッセージの意味を拡張するコンテンツを指定する1つ以上の任意の子要素を含んでいてもよいです。すべてのデータを定義する(または「http://etherx.jabber.org/streams」、:「サーバージャバー」以外の「ジャバークライアント」、)この子要素は、任意の名前を持っているかもしれませんと「のxmlns」名前空間宣言を持っていなければなりません子要素内に含まれます。

Support for any given extended namespace is OPTIONAL on the part of any implementation (aside from the extended namespaces defined herein). If an entity does not understand such a namespace, the entity's expected behavior depends on whether the entity is (1) the recipient or (2) an entity that is routing the stanza to the recipient:

任意の所与の拡張ネームスペースのサポートは、(脇本明細書で定義される拡張された名前空間からの)任意の実装の一部に任意です。エンティティは、そのような名前空間を理解していない場合は、エンティティの期待される動作は、企業は(1)受信者または受信者にスタンザをルーティングしている(2)実体であるかどうかによって異なります。

Recipient: If a recipient receives a stanza that contains a child element it does not understand, it SHOULD ignore that specific XML data, i.e., it SHOULD not process it or present it to a user or associated application (if any). In particular:

受信者:受信者がそれを理解していない子要素が含まれているスタンザを受信した場合、それは特定のXMLデータは、すなわち、それはそれを処理しないことを無視するか、ユーザーまたは関連するアプリケーション(もしあれば)にそれを提示しなければなりません。特に:

* If an entity receives a message or presence stanza that contains XML data qualified by a namespace it does not understand, the portion of the stanza that is in the unknown namespace SHOULD be ignored.

エンティティが、それは理解していない名前空間で修飾されたXMLデータを含むメッセージやプレゼンススタンザを受信した場合*、未知の名前空間にあるスタンザの部分が無視されるべきです。

* If an entity receives a message stanza whose only child element is qualified by a namespace it does not understand, it MUST ignore the entire stanza.

*エンティティは、その唯一の子要素、それは理解していない名前空間で修飾されたメッセージスタンザを受信した場合、それは全体のスタンザを無視しなければなりません。

* If an entity receives an IQ stanza of type "get" or "set" containing a child element qualified by a namespace it does not understand, the entity SHOULD return an IQ stanza of type "error" with an error condition of <service-unavailable/>.

<service-のエラー条件付き*エンティティが「取得」か、それは理解していない名前空間で修飾子要素を含む「設定」タイプのIQスタンザを受信した場合、エンティティはタイプのIQスタンザを返すべき「エラー」使用できません/>。

Router: If a routing entity (usually a server) handles a stanza that contains a child element it does not understand, it SHOULD ignore the associated XML data by passing it on untouched to the recipient.

ルータ:ルーティングエンティティ(通常はサーバー)が、それは理解していない子要素が含まれているスタンザを扱う場合は、受信者にそのままでそれを渡すことによって、関連付けられたXMLデータを無視すべきです。

3. Session Establishment
3.セッションの確立

Most instant messaging and presence applications based on XMPP are implemented via a client-server architecture that requires a client to establish a session on a server in order to engage in the expected instant messaging and presence activities. However, there are several pre-conditions that MUST be met before a client can establish an instant messaging and presence session. These are:

XMPPに基づいて、ほとんどのインスタントメッセージングとプレゼンスのアプリケーションが期待されるインスタントメッセージングとプレゼンス活動に従事するためには、サーバー上のセッションを確立するためにクライアントを必要とするクライアント - サーバアーキテクチャを経由して実装されています。しかし、インスタントメッセージングとプレゼンスセッションを確立することができ、クライアントの前に満たさなければならないいくつかの前提条件があります。これらは:

1. Stream Authentication -- a client MUST complete stream authentication as documented in [XMPP-CORE] before attempting to establish a session or send any XML stanzas. 2. Resource Binding -- after completing stream authentication, a client MUST bind a resource to the stream so that the client's address is of the form <user@domain/resource>, after which the entity is now said to be a "connected resource" in the terminology of [XMPP-CORE].

1.ストリーム認証 - セッションを確立するか、任意のXMLスタンザを送信しようとする前に、[XMPP-CORE]で文書化されているようクライアントがストリームの認証を完了する必要があります。バインディング2.リソース - クライアントのアドレスがエンティティは、現在「接続リソースであると言われた後、フォーム<ユーザー@ドメイン/リソース>、であるように、ストリーム認証を完了した後、クライアントがストリームにリソースをバインドする必要があります「[XMPP-CORE]の用語です。

If a server supports sessions, it MUST include a <session/> element qualified by the 'urn:ietf:params:xml:ns:xmpp-session' namespace in the stream features it advertises to a client after the completion of stream authentication as defined in [XMPP-CORE]:

サーバーがセッションをサポートしている場合、それは「:IETF:のparams:XML:NS:URN、XMPPセッション」によって修飾<セッション/>要素を含まなければならない名前空間ストリーム機能では、それはのように、ストリーム認証が完了した後にクライアントにアドバタイズ[XMPP-CORE]で定義されます:

Server advertises session establishment feature to client:

サーバーは、クライアントにセッション確立の機能をアドバタイズします。

<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='c2s_345' from='example.com' version='1.0'> <stream:features> <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> </stream:features>

<ストリーム:ストリームのxmlns = 'おしゃべり:クライアントののxmlns:ストリーム= 'のhttp://etherx.jabber.org/streams'= 'example.com' バージョンからのid = 'c2s_345'= '1.0'> <ストリーム:機能> <バインドのxmlns = '壷:IETF:のparams:XML:NS:XMPP-バインド' /> <セッションのxmlns = '壷:IETF:のparams:XML:NS:XMPPセッション' /> </ストリーム:特長>

Upon being so informed that session establishment is required (and after completing resource binding), the client MUST establish a session if it desires to engage in instant messaging and presence functionality; it completes this step by sending to the server an IQ stanza of type "set" containing an empty <session/> child element qualified by the 'urn:ietf:params:xml:ns:xmpp-session' namespace:

そのセッションの確立が必要であることを知らされ(とリソースの結合を完了した後に)されると、それはインスタントメッセージングとプレゼンス機能に従事することを希望する場合は、クライアントがセッションを確立する必要があります。 「:IETF:のparams:XML:NS:XMPPセッション壷」名前空間には、によって修飾空の<セッション/>子要素を含むサーバーに「セット」タイプのIQスタンザを送信することにより、このステップを完了します。

Step 1: Client requests session with server:

ステップ1:クライアントがサーバーとのセッションを要求します。

<iq to='example.com' type='set' id='sess_1'> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> </iq>

<= 'example.com' TYPE = 'セット' のid = 'sess_1' にIQ> <セッションのxmlns = 'URN:IETF:paramsは:XML:NS:XMPPセッション' /> </ IQ>

Step 2: Server informs client that session has been created:

ステップ2:サーバーは、セッションが作成されたことをクライアントに通知:

<iq from='example.com' type='result' id='sess_1'/>

<IQから= 'example.com' TYPE = '結果' のid = 'sess_1' />

Upon establishing a session, a connected resource (in the terminology of [XMPP-CORE]) is said to be an "active resource".

セッションを確立する際に、([XMPP-CORE]の用語で)接続されたリソースは、「アクティブリソース」であると言われます。

Several error conditions are possible. For example, the server may encounter an internal condition that prevents it from creating the session, the username or authorization identity may lack permissions to create a session, or there may already be an active resource associated with a resource identifier of the same name.

いくつかのエラー条件が可能です。たとえば、サーバーがセッションを作成することを防止する内部状態が発生する可能性があり、ユーザ名または許可IDは、セッションを作成する権限が不足していること、またはすでに同じ名前のリソース識別子に関連付けられたアクティブなリソースがあるかもしれません。

If the server encounters an internal condition that prevents it from creating the session, it MUST return an error.

サーバーがセッションを作成することを防止する内部状態を検出した場合は、エラーを返さなければなりません。

Step 2 (alt): Server responds with error (internal server error):

ステップ2(ALT):Serverはエラー(内部サーバーエラー)で応答します。

<iq from='example.com' type='error' id='sess_1'> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> <error type='wait'> <internal-server-error xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQから= 'example.com' TYPE = 'エラー' のid = 'sess_1'> <セッションのxmlns = 'URN:IETF:paramsは:XML:NS:XMPPセッション' /> <エラータイプ= 'ウェイト'> <サーバ内蔵のエラーのxmlns = '壷:IETF:のparams:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

If the username or resource is not allowed to create a session, the server MUST return an error (e.g., forbidden).

ユーザ名またはリソースがセッションを作成するために許可されていない場合、サーバは(例えば、禁じられた)エラーを返さなければなりません。

Step 2 (alt): Server responds with error (username or resource not allowed to create session):

ステップ2(ALT):サーバーはエラーで応答(ユーザ名またはリソースがセッションを作成することはできません):

<iq from='example.com' type='error' id='sess_1'> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> <error type='auth'> <forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<= 'example.com' TYPE = 'エラー' のid = 'sess_1' からIQ> <セッションのxmlns = 'URN:IETF:paramsは:XML:NS:XMPPセッション' /> <エラーの種類= 'AUTH'> <禁断のxmlns = '壷:IETF:のparams:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

If there is already an active resource of the same name, the server MUST either (1) terminate the active resource and allow the newly-requested session, or (2) disallow the newly-requested session and maintain the active resource. Which of these the server does is up to the implementation, although it is RECOMMENDED to implement case #1. In case #1, the server SHOULD send a <conflict/> stream error to the active resource, terminate the XML stream and underlying TCP connection for the active resource, and return a IQ stanza of type "result" (indicating success) to the newly-requested session. In case #2, the server SHOULD send a <conflict/> stanza error to the newly-requested session but maintain the XML stream for that connection so that the newly-requested session has an opportunity to negotiate a non-conflicting resource identifier before sending another request for session establishment.

すでに同じ名前のアクティブなリソースがある場合、サーバは、(1)アクティブなリソースを終了し、新たに要求されたセッションを許可する、または(2)新たに要求されたセッションを禁止し、アクティブなリソースを維持しなければなりません。これらのケース#1を実装するためにお勧めしますが、サーバーは、実装次第ですありません。ケース#1において、サーバは、アクティブなリソースに<コンフリクト/>ストリームエラーを送信するXMLストリームとアクティブなリソースの基礎となるTCP接続を終了し、に(成功を示す)タイプ「結果」のIQスタンザを返すべき新たに要求されたセッション。ケース#2では、サーバは、新たに要求されたセッションに<紛争/>スタンザ誤りを送るべきであるが、新たに要求されたセッションは、送信する前に競合しないリソース識別子を交渉する機会を持つように、その接続のためのXMLストリームを維持しますセッション確立のための別の要求。

Step 2 (alt): Server informs existing active resource of resource conflict (case #1):

ステップ2(ALT):サーバがリソース競合(ケース#1)の既存のアクティブなリソースを通知します。

<stream:error> <conflict xmlns='urn:ietf:params:xml:ns:xmpp-streams'/> </stream:error> </stream:stream>

<ストリーム:エラー> <競合のxmlns = 'URN:IETF:paramsは:XML:NS:XMPPストリーム' /> </ストリーム:エラー> </ストリーム:ストリーム>

Step 2 (alt): Server informs newly-requested session of resource conflict (case #2):

ステップ2(ALT):サーバーはリソースの競合の新たに要求されたセッションを通知する(ケース#2):

<iq from='example.com' type='error' id='sess_1'> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> <error type='cancel'> <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

< 'example.com' タイプ= 'エラー' ID = 'sess_1' =からIQ> <セッションのxmlns = 'URN:IETF:paramsは:XML:NS:XMPPセッション' /> <エラータイプ= 'キャンセル'> <紛争のxmlns = '壷:IETF:のparams:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

After establishing a session, a client SHOULD send initial presence and request its roster as described below, although these actions are OPTIONAL.

セッションを確立した後、クライアントは初期の存在を送信し、これらのアクションはオプションですが、以下で説明するように、その名簿を要求すべきです。

Note: Before allowing the creation of instant messaging and presence sessions, a server MAY require prior account provisioning. Possible methods for account provisioning include account creation by a server administrator as well as in-band account registration using the 'jabber:iq:register' namespace; the latter method is out of scope for this memo, but is documented in [JEP-0077], published by the Jabber Software Foundation [JSF].

注意:インスタントメッセージングとプレゼンスセッションの作成を許可する前に、サーバーは、前のアカウントのプロビジョニングが必要な場合があります。アカウントプロビジョニングのための可能な方法は、サーバ管理者だけでなく、「:IQ:ジャバー登録」を使用してインバンドアカウント登録してアカウントの作成を含める名前空間を。後者の方法は、このメモの範囲外ですが、Jabberのソフトウェア財団[JSF]が発行し、[JEP-0077]に記載されています。

4. Exchanging Messages
4.メッセージの交換

Exchanging messages is a basic use of XMPP and is brought about when a user generates a message stanza that is addressed to another entity. As defined under Server Rules for Handling XML Stanzas (Section 11), the sender's server is responsible for delivering the message to the intended recipient (if the recipient is on the same server) or for routing the message to the recipient's server (if the recipient is on a different server).

メッセージを交換することはXMPPの基本的な使用であり、ユーザーが別のエンティティ宛てのメッセージスタンザを生成するときにもたらされます。 XMLスタンザ(セクション11)を取り扱うためにサーバーのルールの下で定義されているように、送信者のサーバ(または受信者のサーバーにメッセージをルーティングするための(受信者が同じサーバー上にある場合)、目的の受信者にメッセージを配信する責任がある場合は、受信者)別のサーバー上にあります。

For information regarding the syntax of message stanzas as well as their defined attributes and child elements, refer to Message Syntax (Section 2.1).

メッセージの構文に関する情報はスタンザだけでなく、その定義された属性と子要素については、メッセージ構文(2.1節)を参照してください。

4.1. Specifying an Intended Recipient
4.1. 意図した受信者を指定します

An instant messaging client SHOULD specify an intended recipient for a message by providing the JID of an entity other than the sender in the 'to' attribute of the <message/> stanza. If the message is being sent in reply to a message previously received from an address of the form <user@domain/resource> (e.g., within the context of a chat session), the value of the 'to' address SHOULD be of the form <user@domain/resource> rather than of the form <user@domain> unless the sender has knowledge (via presence) that the intended recipient's resource is no longer available. If the message is being sent outside the context of any existing chat session or received message, the value of the 'to' address SHOULD be of the form <user@domain> rather than of the form <user@domain/resource>.

インスタントメッセージングクライアントは、<メッセージ/>スタンザの属性「から」内の送信者以外のエンティティのJIDを提供することにより、メッセージの意図された受信者を指定する必要があります。メッセージは、以前(チャットセッションのコンテキスト内で、例えば、)フォーム<ユーザ@ドメイン/リソース>のアドレスから受信したメッセージに対する応答で送信されている場合、アドレス「へ」の値はでなければなりません受信者のリソースが使用できなくなったということではなく、送信者が(存在経由)の知識を持っていない限り、フォーム<ユーザー@ドメイン>の形式<ユーザ@ドメイン/リソース>。メッセージは、任意の既存のチャットセッションまたは受信したメッセージのコンテキスト外で送信されている場合、アドレス「へ」の値ではなく、フォーム<ユーザ@ドメイン/リソース>のより形式<ユーザ@ドメイン>でなければなりません。

4.2. Specifying a Message Type
4.2. メッセージの種類を指定します

As noted, it is RECOMMENDED for a message stanza to possess a 'type' attribute whose value captures the conversational context (if any) of the message (see Type (Section 2.1.1)).

述べたように、それは価値のメッセージの会話のコンテキストを(もしあれば)を取り込む「タイプ」属性を所有するメッセージスタンザのために推奨され(タイプ(セクション2.1.1を参照))。

The following example shows a valid value of the 'type' attribute:

次の例では、「タイプ」属性の有効な値を示しています。

Example: A message of a defined type:

例:定義されたタイプのメッセージ:

<message to='romeo@example.net' from='juliet@example.com/balcony' type='chat' xml:lang='en'> <body>Wherefore art thou, Romeo?</body> </message>

<メッセージto='romeo@example.net 'from='juliet@example.com/balcony' タイプ=は、XMLを[チャット]:LANG = 'EN'> <身体>それゆえアート汝、ロミオ</ BODY> </?メッセージ>

4.3. Specifying a Message Body
4.3. メッセージ本文を指定します

A message stanza MAY (and often will) contain a child <body/> element whose XML character data specifies the primary meaning of the message (see Body (Section 2.1.2.2)).

メッセージスタンザMAY(およびしばしばます)XML文字データ(ボディ(セクション2.1.2.2)を参照してください)メッセージの主な意味を指定する子の<body />要素が含まれています。

Example: A message with a body:

例:身体のメッセージ:

<message to='romeo@example.net' from='juliet@example.com/balcony' type='chat' xml:lang='en'> <body>Wherefore art thou, Romeo?</body> <body xml:lang='cz'>Pro&#x010D;e&#x017D; jsi ty, Romeo?</body> </message>

<メッセージto='romeo@example.net 'from='juliet@example.com/balcony' タイプ=は、XMLを[チャット]:LANG = 'EN'> <身体>それゆえアート汝、ロミオ</ BODY> <ボディ? XML:LANG = 'CZ'>プロ&#x010D; E&#x017D; JSI TY、ロミオ?</ BODY> </メッセージ>

4.4. Specifying a Message Subject
4.4. メッセージの件名を指定します

A message stanza MAY contain one or more child <subject/> elements specifying the topic of the message (see Subject (Section 2.1.2.1)).

メッセージスタンザが1つまたは複数の子メッセージのトピックを指定する<対象/>要素を含んでいてもよい(件名(セクション2.1.2.1を参照))。

Example: A message with a subject:

例:件名のメッセージ:

<message to='romeo@example.net' from='juliet@example.com/balcony' type='chat' xml:lang='en'> <subject>I implore you!</subject> <subject xml:lang='cz'>&#x00DA;p&#x011B;nliv&#x011B; prosim!</subject> <body>Wherefore art thou, Romeo?</body> <body xml:lang='cz'>Pro&#x010D;e&#x017D; jsi ty, Romeo?</body> </message>

<メッセージto='romeo@example.net 'from='juliet@example.com/balcony' タイプは、= XMLを[チャット]:LANG = 'EN'> <対象>私はあなたを懇願</サブジェクト> <サブジェクトのxml! LANG = 'CZ'>&#x00DA; P&#x011B; nliv&#x011B; !?prosim </件名> <身体>何のためにアート汝、ロミオ</ body>の<身体のxml:LANG = 'CZ'>プロ&#x010D; E&#x017D; JSI TY、ロミオ?</ BODY> </メッセージ>

4.5. Specifying a Conversation Thread
4.5. 会話スレッドを指定します

A message stanza MAY contain a child <thread/> element specifying the conversation thread in which the message is situated, for the purpose of tracking the conversation (see Thread (Section 2.1.2.3)).

メッセージスタンザは(スレッド(セクション2.1.2.3)を参照)、会話を追跡する目的のために、メッセージが置かれている会話スレッドを指定して子<スレッド/>要素を含むかもしれません。

Example: A threaded conversation:

例:スレッドの会話:

<message to='romeo@example.net/orchard' from='juliet@example.com/balcony' type='chat' xml:lang='en'> <body>Art thou not Romeo, and a Montague?</body> <thread>e0ffe42b28561960c6b12b944a092794b9683a38</thread> </message>

< 'from='juliet@example.com/balcony' タイプ= to='romeo@example.net/orchardメッセージはXMLを[チャット]:LANG = 'EN'>?<身体>アート汝ないロミオ、そしてモンタギュー< / body> <スレッド> e0ffe42b28561960c6b12b944a092794b9683a38 </スレッド> </メッセージ>

<message to='juliet@example.com/balcony' from='romeo@example.net/orchard' type='chat' xml:lang='en'> <body>Neither, fair saint, if either thee dislike.</body> <thread>e0ffe42b28561960c6b12b944a092794b9683a38</thread> </message>

<メッセージto='juliet@example.com/balcony 'from='romeo@example.net/orchard' タイプ= [チャット] XML:LANG = 'EN'> <身体>どちらも、公正聖人、どちらかあなたが嫌い​​ならば。 </ BODY> <スレッド> e0ffe42b28561960c6b12b944a092794b9683a38 </スレッド> </メッセージ>

<message to='romeo@example.net/orchard' from='juliet@example.com/balcony' type='chat' xml:lang='en'> <body>How cam'st thou hither, tell me, and wherefore?</body> <thread>e0ffe42b28561960c6b12b944a092794b9683a38</thread> </message>

<メッセージ 'from='juliet@example.com/balcony' タイプto='romeo@example.net/orchard = XMLを[チャット]:LANG = 'EN'> <身体>どのようにcam'st魅惑あなたは、私に教えて、そして何のために?</ body> <スレッド> e0ffe42b28561960c6b12b944a092794b9683a38 </スレッド> </メッセージ>

5. Exchanging Presence Information
5.プレゼンス情報の交換

Exchanging presence information is made relatively straightforward within XMPP by using presence stanzas. However, we see here a contrast to the handling of messages: although a client MAY send directed presence information to another entity by including a 'to' address, normally presence notifications (i.e., presence stanzas with no 'type' or of type "unavailable" and with no 'to' address) are sent from a client to its server and then broadcasted by the server to any entities that are subscribed to the presence of the sending entity (in the terminology of RFC 2778 [IMP-MODEL], these entities are subscribers). This broadcast model does not apply to subscription-related presence stanzas or presence stanzas of type "error", but to presence notifications only as defined above. (Note: While presence information MAY be provided on a user's behalf by an automated service, normally it is provided by the user's client.)

プレゼンス情報を交換することプレゼンススタンザを使用してXMPP内は比較的簡単行われます。しかし、我々はここでメッセージの処理にコントラストを参照してください。クライアントは通常、アドレス「から」プレゼンス通知などにより別のエンティティに向けプレゼンス情報を送信するかもしれないが(すなわち、存在が利用できない「ノー「タイプ」またはタイプのとスタンザ」とアドレス 『に』なし)は、RFC 2778 [IMP-MODEL]の用語で(送信側エンティティのプレゼンスに加入している任意のエンティティにサーバがそのクライアントからサーバに送信され、その後、放送されると、これらエンティティ)が加入しています。この放送モデルは、上記で定義された唯一のようなタイプのサブスクリプションに関連するプレゼンススタンザまたは存在スタンザ「エラー」に、しかし、プレゼンス通知には適用されません。 (注:プレゼンス情報が自動化されたサービスがユーザーに代わって提供することができるが、通常はそれがユーザーのクライアントによって提供されます。)

For information regarding the syntax of presence stanzas as well as their defined attributes and child elements, refer to [XMPP-CORE].

プレゼンスの構文に関する情報はスタンザだけでなく、その定義された属性と子要素の場合は、[XMPP-CORE]を参照してください。

5.1. Client and Server Presence Responsibilities
5.1. クライアントとサーバーのプレゼンスの責任
5.1.1. Initial Presence
5.1.1. 初期プレゼンス

After establishing a session, a client SHOULD send initial presence to the server in order to signal its availability for communications. As defined herein, the initial presence stanza (1) MUST possess no 'to' address (signalling that it is meant to be broadcasted by the server on behalf of the client) and (2) MUST possess no 'type' attribute (signalling the user's availability). After sending initial presence, an active resource is said to be an "available resource".

セッションを確立した後、クライアントは、通信のためにその有効性を知らせるために、サーバーへの最初の存在を送るべきです。本明細書で定義されるように、初期プレゼンススタンザ(1)はアドレスなし「に」(クライアントの代わりにサーバで放送されることを意図されていることをシグナリング)及び(2)シグナル伝達(いいえ「タイプ」属性を有していなければならないを持っていなければなりませんユーザーの可用性)。初期の存在を送信した後、アクティブなリソースは、「使用可能なリソース」と言われています。

Upon receiving initial presence from a client, the user's server MUST do the following if there is not already one or more available resources for the user (if there is already one or more available resources for the user, the server obviously does not need to send the presence probes, since it already possesses the requisite information):

クライアントからの最初のプレゼンスを受信すると、ユーザーのサーバーは、ユーザーのために、以下のいない場合、1つまたは複数の利用可能なリソースを行う必要があります(ユーザーのための1つまたは複数の利用可能な資源がすでに存在する場合、サーバーは明らかに送信する必要はありません。プレゼンスプローブ、それはすでに必要な情報を持っているので):

1. Send presence probes (i.e., presence stanzas whose 'type' attribute is set to a value of "probe") from the full JID (e.g., <user@example.com/resource>) of the user to all contacts to which the user is subscribed in order to determine if they are available; such contacts are those for which a JID is present in the user's roster with the 'subscription' attribute set to a value of "to" or "both". (Note: The user's server MUST NOT send presence probes to contacts from which the user is blocking inbound presence notifications, as described under Blocking Inbound Presence Notifications (Section 10.10).)

1.これまでのすべての連絡先にユーザーの完全なJID(例えば、<user@example.com/resource>)からプレゼンスプローブ(その「タイプ」属性が「プローブ」の値に設定されている、すなわち、プレゼンススタンザ)を送りますユーザーは、それらが利用可能かどうかを決定するために購読されています。そのような接点は、JIDは「へ」または「両方」の値に設定する「サブスクリプション」属性を持つ利用者の名簿に存在しているものがあります。 (注意:インバウンドプレゼンス通知(10.10節)をブロックの下に説明するように、ユーザのサーバは、ユーザが、インバウンドプレゼンス通知をブロックされた連絡先にプレゼンスプローブを送ってはいけません。)

2. Broadcast initial presence from the full JID (e.g., <user@example.com/resource>) of the user to all contacts that are subscribed to the user's presence information; such contacts are those for which a JID is present in the user's roster with the 'subscription' attribute set to a value of "from" or "both". (Note: The user's server MUST NOT broadcast initial presence to contacts to which the user is blocking outbound presence notifications, as described under Blocking Outbound Presence Notifications (Section 10.11).)

ユーザのプレゼンス情報にサブスクライブしているすべての連絡先にユーザの完全なJID(例えば、<user@example.com/resource>)から2.ブロードキャスト初期プレゼンス。そのような接点は、JIDは「から」または「両方」の値に設定する「サブスクリプション」属性を持つ利用者の名簿に存在しているものがあります。 (注意:送信プレゼンス通知(10.11)をブロックの下に説明するように、ユーザのサーバは、ユーザが、アウトバウンドプレゼンス通知をブロックされている連絡先に、最初の存在を放送してはなりません。)

In addition, the user's server MUST broadcast initial presence from the user's new available resource to any of the user's existing available resources (if any).

(もしあれば)また、ユーザーのサーバーは、ユーザーの既存の利用可能なリソースのいずれかにユーザーの新しい可能なリソースからの初期の存在をブロードキャストしなければなりません。

Upon receiving initial presence from the user, the contact's server MUST deliver the user's presence stanza to the full JIDs (<contact@example.org/resource>) associated with all of the contact's available resources, but only if the user is in the contact's roster with a subscription state of "to" or "both" and the contact has not blocked inbound presence notifications from the user's bare or full JID (as defined under Blocking Inbound Presence Notifications (Section 10.10)).

ユーザーからの最初のプレゼンスを受信すると、連絡先のサーバーは、連絡先の利用可能なリソースのすべてに関連した完全なたJID(<contact@example.org/resource>)へのユーザーのプレゼンススタンザを提供する必要がありますが、ユーザーは、連絡先の中にある場合にのみサブスクリプション状態に名簿「へ」または「両方」との接触は、ユーザーの裸やフルJIDからのインバウンドプレゼンス通知をブロックしていない(インバウンドプレゼンス通知をブロックの下に定義されている(10.10))。

If the user's server receives a presence stanza of type "error" in response to the initial presence that it sent to a contact on behalf of the user, it SHOULD NOT send further presence updates to that contact (until and unless it receives a presence stanza from the contact).

ユーザーのサーバーは、それがユーザーに代わって連絡先に送信することを最初の存在に応じてタイプ「エラー」の存在スタンザを受信した場合、それが存在スタンザを受信するまでとしない限り、それは(その連絡先に、さらにプレゼンスの更新を送るべきではありません接触から)。

5.1.2. Presence Broadcast
5.1.2. プレゼンス放送

After sending initial presence, the user MAY update its presence information for broadcasting at any time during its session by sending a presence stanza with no 'to' address and either no 'type' attribute or a 'type' attribute with a value of "unavailable". (Note: A user's client SHOULD NOT send a presence update to broadcast information that changes independently of the user's presence and availability.)

最初のプレゼンスを送信した後、ユーザーはアドレスと使用できません「の値がないか「タイプ」属性や「type」属性「に」はでのプレゼンススタンザを送信しないことによって、そのセッション中はいつでも放送用のプレゼンス情報を更新することができます。 」。 (注:ユーザーのクライアントには、独立して、ユーザーのプレゼンスおよび可用性の変更情報をブロードキャストするプレゼンス更新を送るべきではありません。)

If the presence stanza lacks a 'type' attribute (i.e., expresses availability), the user's server MUST broadcast the full XML of that presence stanza to all contacts (1) that are in the user's roster with a subscription type of "from" or "both", (2) to whom the user has not blocked outbound presence notifications, and (3) from whom the server has not received a presence error during the user's session (as well as to any of the user's other available resources).

プレゼンススタンザは、「タイプ」属性(すなわち、可用性を表現する)不足している場合は、ユーザーのサーバーは、「から」のサブスクリプションタイプで、ユーザの名簿にあるすべての連絡先(1)にその存在スタンザの完全なXMLを放送しなければなりませんか、 「両方」、(2)ユーザーが発信プレゼンス通知をブロックしていない、および(3)誰からサーバーは、ユーザーのセッション中に存在エラーを受信して​​いない人に(だけでなく、ユーザーの他の利用可能なリソースのいずれかに)。

If the presence stanza has a 'type' attribute set to a value of "unavailable", the user's server MUST broadcast the full XML of that presence stanza to all entities that fit the above description, as well as to any entities to which the user has sent directed available presence during the user's session (if the user has not yet sent directed unavailable presence to that entity).

プレゼンススタンザは「利用不可」の値に設定する「タイプ」属性を持っている場合、ユーザーのサーバーは、任意のエンティティにだけでなく、上記の説明に合わせてすべてのエンティティへのプレゼンススタンザの完全なXMLを放送しなければならないユーザーに(まだ送信していないユーザーは、そのエンティティに利用できない存在を指示されている場合)、ユーザーのセッション中に向ける可能なプレゼンスを送信しました。

5.1.3. Presence Probes
5.1.3. プレゼンスプローブ

Upon receiving a presence probe from the user, the contact's server SHOULD reply as follows:

次のようにユーザからのプレゼンスプローブを受信すると、連絡先のサーバが応答する必要があります。

1. If the user is not in the contact's roster with a subscription state of "From", "From + Pending Out", or "Both" (as defined under Subscription States (Section 9)), the contact's server MUST return a presence stanza of type "error" in response to the presence probe (however, if a server receives a presence probe from a subdomain of the server's hostname or another such trusted service, it MAY provide presence information about the user to that entity). Specifically:

1.利用者は、「差出人」、「アウト保留+から」、または「両方」(サブスクリプションの状態の下で定義されている(第9節))のサブスクリプション状態と接触者の名簿にない場合は、連絡先のサーバが存在感を返さなければなりませんプレゼンスプローブに応答して、タイプ「エラー」のスタンザ(サーバは、サーバのホスト名または別のそのような信頼できるサービスのサブドメインからのプレゼンスプローブを受信した場合しかし、それはそのエンティティへのユーザについてのプレゼンス情報を提供することができます)。具体的に:

       *  if the user is in the contact's roster with a subscription
          state of "None", "None + Pending Out", or "To" (or is not in
          the contact's roster at all), the contact's server MUST return
          a <forbidden/> stanza error in response to the presence probe.
        

* if the user is in the contact's roster with a subscription state of "None + Pending In", "None + Pending Out/In", or "To + Pending In", the contact's server MUST return a <not-authorized/> stanza error in response to the presence probe.

ユーザーは、「なし+保留アウト/イン」、または「+保留中へ」「なし+保留中」のサブスクリプションの状態で連絡先の名簿にある場合*、連絡先のサーバが返さなければならない<-許可されていません/>プレゼンスプローブに応答して、スタンザエラー。

2. Else, if the contact is blocking presence notifications to the user's bare JID or full JID (using either a default list or active list as defined under Blocking Outbound Presence Notifications (Section 10.11)), the server MUST NOT reply to the presence probe.

そうでなければ2、接触は(アウトバウンドプレゼンス通知(10.11)をブロックの下に定義されているデフォルトのリストまたはアクティブリストのいずれかを使用して)、ユーザーの裸JIDまたは完全なJIDにプレゼンス通知をブロックしている場合、サーバはプレゼンスプローブに返信てはなりません。

3. Else, if the contact has no available resources, the server MUST either (1) reply to the presence probe by sending to the user the full XML of the last presence stanza of type "unavailable" received by the server from the contact, or (2) not reply at all.

コンタクトが利用可能なリソースを持っていない場合はそれ以外3は、サーバは、(1)、接触からサーバによって受信された「利用できない」ユーザにタイプの最後のプレゼンススタンザの完全なXMLを送信することにより、プレゼンスプローブに応答しなければなりませんまたは(2)ですべての返信できません。

4. Else, if the contact has at least one available resource, the server MUST reply to the presence probe by sending to the user the full XML of the last presence stanza with no 'to' attribute received by the server from each of the contact's available resources (again, subject to privacy lists in force for each session).

接触は、少なくとも1つの利用可能なリソースを持っている場合はそうでない4.は、サーバーは、連絡先のそれぞれから、サーバーが受信した属性「に」は、ユーザにいないとの最後のプレゼンススタンザの完全なXMLを送信することにより、プレゼンスプローブに返信しなければなりません利用可能なリソース(再び、プライバシーの対象は、各セッションのために力に一覧表示されます)。

5.1.4. Directed Presence
5.1.4. ダイレクトプレゼンス

A user MAY send directed presence to another entity (i.e., a presence stanza with a 'to' attribute whose value is the JID of the other entity and with either no 'type' attribute or a 'type' attribute whose value is "unavailable"). There are three possible cases:

ユーザは、その値が他のエンティティのJIDといいえ「タイプ」属性またはその値が「利用不可能」である「タイプ」属性のいずれかを持つ属性「」へと別のエンティティ(すなわち、プレゼンススタンザに向けプレゼンスを送信することができます)。三つの可能なケースがあります。

1. If the user sends directed presence to a contact that is in the user's roster with a subscription type of "from" or "both" after having sent initial presence and before sending unavailable presence broadcast, the user's server MUST route or deliver the full XML of that presence stanza (subject to privacy lists) but SHOULD NOT otherwise modify the contact's status regarding presence broadcast (i.e., it SHOULD include the contact's JID in any subsequent presence broadcasts initiated by the user).

1.利用者は、最初のプレゼンスを送信した後と使用できない存在ブロードキャストを送信する前に、ユーザーのサーバーMUSTルートやフルを届ける「両方」「から」またはのサブスクリプションタイプを持つユーザーの名簿にある連絡先に向けプレゼンスを送信した場合そのプレゼンススタンザ(プライバシリストの対象)のXMLが、それ以外の存在放送に関する連絡先の状態を変更するべきではありません(つまり、それがユーザによって開始後続存在放送で連絡先のJIDを含める必要があります)。

2. If the user sends directed presence to an entity that is not in the user's roster with a subscription type of "from" or "both" after having sent initial presence and before sending unavailable presence broadcast, the user's server MUST route or deliver the full XML of that presence stanza to the entity but MUST NOT modify the contact's status regarding available presence broadcast (i.e., it MUST NOT include the entity's JID in any subsequent broadcasts of available presence initiated by the user); however, if the available resource from which the user sent the directed presence become unavailable, the user's server MUST broadcast that unavailable presence to the entity (if the user has not yet sent directed unavailable presence to that entity).

2.ユーザーは、最初のプレゼンスを送信した後と使用できない存在ブロードキャストを送信する前に、ユーザーのサーバーMUSTルートや届ける「両方」「から」またはのサブスクリプションタイプを持つユーザーの名簿にないエンティティに向けプレゼンスを送信した場合エンティティへのプレゼンススタンザの完全なXMLが、利用可能なプレゼンス放送(すなわち、それはユーザによって開始可能な存在のいずれかのその後の放送で、エンティティのJIDを含んではいけません)に関する連絡先の状態を変更してはいけません。ユーザーが指示プレゼンスを送信し、そこから利用できるリソースが利用できなくなった場合(ユーザーがまだその実体に利用できない存在を指示送信していない場合)ただし、ユーザーのサーバーは、エンティティにその利用できない存在をブロードキャストしなければなりません。

3. If the user sends directed presence without first sending initial presence or after having sent unavailable presence broadcast (i.e., the resource is active but not available), the user's server MUST treat the entities to which the user sends directed presence in the same way that it treats the entities listed in case #2 above.

3.ユーザーは(つまり、リソースが利用可能アクティブではありません)最初の初期の存在を送信せず、または利用できない存在放送を送信した後に監督の存在を送信した場合、ユーザーのサーバーは、ユーザーが同じように指示さプレゼンスを送信先のエンティティを扱わなければなりませんそれは、上記のケース#2に記載されているエンティティを扱うこと。

5.1.5. Unavailable Presence
5.1.5. 使用不可のプレゼンス

Before ending its session with a server, a client SHOULD gracefully become unavailable by sending a final presence stanza that possesses no 'to' attribute and that possesses a 'type' attribute whose value is "unavailable" (optionally, the final presence stanza MAY contain one or more <status/> elements specifying the reason why the user is no longer available). However, the user's server MUST NOT depend on receiving final presence from an available resource, since the resource may become unavailable unexpectedly or may be timed out by the server. If one of the user's resources becomes unavailable for any reason (either gracefully or ungracefully), the user's server MUST broadcast unavailable presence to all contacts (1) that are in the user's roster with a subscription type of "from" or "both", (2) to whom the user has not blocked outbound presence, and (3) from whom the server has not received a presence error during the user's session; the user's server MUST also send that unavailable presence stanza to any of the user's other available resources, as well as to any entities to which the user has sent directed presence during the user's session for that resource (if the user has not yet sent directed unavailable presence to that entity). Any presence stanza with no 'type' attribute and no 'to' attribute that is sent after sending directed unavailable presence or broadcasted unavailable presence MUST be broadcasted by the server to all subscribers.

サーバーとのセッションを終了する前に、クライアントは優雅に属性「に」ノーを持っている、最終的なプレゼンススタンザを送信することにより、使用できなくなるべき、それは、値が「利用不可」である(必要に応じて、最終的プレゼンススタンザが含まれているかもしれない「タイプ」属性を持っていますユーザーはもはや利用できない理由を指定する1つまたは複数の<状態/>要素)。リソースが予期せずに利用できなくなったり、サーバーによってタイムアウトすることができるので、ユーザーのサーバーは、使用可能なリソースから、最終的なプレゼンスを受け取るに依存してはなりません。ユーザーのリソースの1が何らかの理由(いずれか正常または不正に)のために使用できなくなった場合は、ユーザーのサーバーは、「から」または「両方」のサブスクリプションタイプを持つユーザーの名簿にあるすべての連絡先(1)に使用できない存在をブロードキャストしなければなりません、 (2)ユーザが発信プレゼンスをブロックしていない人に、及び(3)サーバは、ユーザのセッション中に存在エラーを受信して​​いない人から、ユーザーはまだ利用できない監督送信していない場合、ユーザーのサーバーは、(ユーザーの他の利用可能なリソースのいずれかに、だけでなく、ユーザーがそのリソースに対するユーザーのセッション中に監督の存在を送信してきた任意のエンティティにその利用できない存在スタンザを送らなければなりませんそのエンティティに存在)。指示使用できない存在または放送利用できない存在を送信した後に送信される属性「に」いいえ「タイプ」属性なしで任意のプレゼンススタンザは、すべての加入者に、サーバで放送されなければなりません。

5.1.6. Presence Subscriptions
5.1.6. プレゼンスサブスクリプション

A subscription request is a presence stanza whose 'type' attribute has a value of "subscribe". If the subscription request is being sent to an instant messaging contact, the JID supplied in the 'to' attribute SHOULD be of the form <contact@example.org> rather than <contact@example.org/resource>, since the desired result is normally for the user to receive presence from all of the contact's resources, not merely the particular resource specified in the 'to' attribute.

サブスクリプション要求は、その「タイプ」属性「購読」の値を有するプレゼンススタンザです。サブスクリプション要求がインスタントメッセージング連絡先に送信されている場合、JIDの形式でなければならない「」の属性で供給<contact@example.org>なく<contact@example.org/resource>、所望の結果以来ユーザーは、連絡先のすべてのリソースから「から」属性で指定されていないだけで、特定のリソースをプレゼンスを受信するために、通常です。

A user's server MUST NOT automatically approve subscription requests on the user's behalf. All subscription requests MUST be directed to the user's client, specifically to one or more available resources associated with the user. If there is no available resource associated with the user when the subscription request is received by the user's server, the user's server MUST keep a record of the subscription request and deliver the request when the user next creates an available resource, until the user either approves or denies the request. If there is more than one available resource associated with the user when the subscription request is received by the user's server, the user's server MUST broadcast that subscription request to all available resources in accordance with Server Rules for Handling XML Stanzas (Section 11). (Note: If an active resource

ユーザーのサーバーが自動的にユーザーに代わって、サブスクリプション要求を承認してはなりません。すべてのサブスクリプション要求は、ユーザに関連する1つまたは複数の利用可能なリソースに特異的に、ユーザのクライアントに向けなければなりません。サブスクリプション要求は、ユーザーのサーバーによって受信されたときにユーザーに関連付けられている使用可能なリソースがない場合は、ユーザーのサーバーは、サブスクリプション要求の記録を保持しなければならないし、ユーザーが承認するまで、ユーザーは次回、利用できるリソースを作成する場合、要求を実現しますまたは要求を拒否します。サブスクリプション要求は、ユーザーのサーバーによって受信されたユーザに関連付けられた複数の利用可能なリソースがある場合は、ユーザーのサーバーは、XMLスタンザ(セクション11)を処理するためのサーバーの規則に従い、すべての利用可能なリソースへのサブスクリプション要求をブロードキャストしなければなりません。 (注意:アクティブなリソース場合

has not provided initial presence, the server MUST NOT consider it to be available and therefore MUST NOT send subscription requests to it.) However, if the user receives a presence stanza of type "subscribe" from a contact to whom the user has already granted permission to see the user's presence information (e.g., in cases when the contact is seeking to resynchronize subscription states), the user's server SHOULD auto-reply on behalf of the user. In addition, the user's server MAY choose to re-send an unapproved pending subscription request to the contact based on an implementation-specific algorithm (e.g., whenever a new resource becomes available for the user, or after a certain amount of time has elapsed); this helps to recover from transient, silent errors that may have occurred in relation to the original subscription request.

最初のプレゼンスを提供していない、サーバーは、それへのサブスクリプション要求を送ってはいけませんので、それが利用可能であることを考えると、してはならない。)しかし、ユーザーは、ユーザーがすでに付与されている人に接触から「購読する」タイプの存在スタンザを受信した場合(連絡先は、サブスクリプションの状態を再同期しようとしているときのケースでは、例えば)許可は、ユーザーのサーバーがユーザーの代わりに自動返信SHOULD、ユーザーのプレゼンス情報を表示します。また、ユーザーのサーバーが実装固有のアルゴリズムに基づいて連絡先に承認されていない保留中のサブスクリプション要求を再送信することを選択した(例えば、新しいリソースがユーザーのために利用可能になるたび、または一定の時間が経過した後に) ;これは、元のサブスクリプション要求に関連して発生した可能性があり、過渡、サイレントエラーから回復するのに役立ちます。

5.2. Specifying Availability Status
5.2. 可用性ステータスを指定します

A client MAY provide further information about its availability status by using the <show/> element (see Show (Section 2.2.2.1)).

クライアントは、<ショー/>要素(ショー(セクション2.2.2.1)を参照)を使用して、その可用性状況に関するさらなる情報を提供することができます。

Example: Availability status:

例:可用性ステータス:

<presence> <show>dnd</show> </presence>

<存在> <ショー> DND </示して> </プレゼンス>

5.3. Specifying Detailed Status Information
5.3. 詳細なステータス情報を指定します

In conjunction with the <show/> element, a client MAY provide detailed status information by using the <status/> element (see Status (Section 2.2.2.2)).

<ショー/>要素に関連して、クライアントは、<状態/>要素を使って、詳細なステータス情報を提供することができる(ステータス(セクション2.2.2.2を参照))。

Example: Detailed status information:

例:詳細なステータス情報:

<presence xml:lang='en'> <show>dnd</show> <status>Wooing Juliet</status> <status xml:lang='cz'>Ja dvo&#x0159;&#x00ED;m Juliet</status> </presence>

<プレゼンスXML:LANG = 'EN'> <表示> DND </表示> <状態>ジュリエットを求愛</ステータス> <ステータスXML:LANG = 'CZ'>ジャDVO&#をx0159;&#x00ED; Mジュリエット</状態> </プレゼンス>

5.4. Specifying Presence Priority
5.4. プレゼンスの優先順位を指定します

A client MAY provide a priority for its resource by using the <priority/> element (see Priority (Section 2.2.2.3)).

クライアントは<優先/>要素(優先度(2.2.2.3項)を参照)を使用して、そのリソースの優先順位を提供することができます。

Example: Presence priority:

例:プレゼンスの優先順位:

<presence xml:lang='en'> <show>dnd</show> <status>Wooing Juliet</status> <status xml:lang='cz'>Ja dvo&#x0159;&#x00ED;m Juliet</status> <priority>1</priority> </presence>

<プレゼンスXML:LANG = 'EN'> <表示> DND </表示> <状態>ジュリエットを求愛</ステータス> <ステータスXML:LANG = 'CZ'>ジャDVO&#をx0159;&#x00ED; Mジュリエット</状態> <優先順位> 1 </優先順位> </プレゼンス>

5.5. Presence Examples
5.5. プレゼンスの例

The examples in this section illustrate the presence-related protocols described above. The user is romeo@example.net, he has an available resource whose resource identifier is "orchard", and he has the following individuals in his roster:

このセクションの例は、上述したプレゼンス関連のプロトコルを示します。ユーザーはromeo@example.netで、彼は、その資源識別子「果樹園」で使用可能なリソースを持っている、と彼は彼の名簿で以下の個人があります。

o juliet@example.com (subscription="both" and she has two available resources, one whose resource is "chamber" and another whose resource is "balcony")

O juliet@example.com(サブスクリプション=「両方」と、彼女は2つの使用可能なリソース、そのリソース「室」で、その資源「バルコニー」である別のものを持っています)

o benvolio@example.org (subscription="to")

O benvolio@example.org(サブスクリプション= "へ")

o mercutio@example.org (subscription="from")

O mercutio@example.org(サブスクリプション= "から")

Example 1: User sends initial presence:

例1:ユーザーが最初のプレゼンスを送信します。

<presence/>

<存在/>

Example 2: User's server sends presence probes to contacts with subscription="to" and subscription="both" on behalf of the user's available resource:

例2:ユーザーのサーバーは、ユーザーの使用可能なリソースの代わりに、「両方」= =「と」サブスクリプションおよびサブスクリプションとの接点に存在プローブを送信します。

<presence type='probe' from='romeo@example.net/orchard' to='juliet@example.com'/>

<プレゼンス・タイプ= 'プローブ' from='romeo@example.net/orchard 'to='juliet@example.com' />

<presence type='probe' from='romeo@example.net/orchard' to='benvolio@example.org'/>

<プレゼンス・タイプ= 'プローブ' from='romeo@example.net/orchard 'to='benvolio@example.org' />

Example 3: User's server sends initial presence to contacts with subscription="from" and subscription="both" on behalf of the user's available resource:

例3:ユーザーのサーバーは、ユーザーの使用可能なリソースの代わりに、「両方」= =「から」サブスクリプションおよびサブスクリプションとの接触に最初のプレゼンスを送信します。

<presence from='romeo@example.net/orchard' to='juliet@example.com'/>

<プレゼンスfrom='romeo@example.net/orchard 'to='juliet@example.com' />

<presence from='romeo@example.net/orchard' to='mercutio@example.org'/>

<存在from='romeo@example.net/orchard 'to='mercutio@example.org' />

Example 4: Contacts' servers reply to presence probe on behalf of all available resources:

例4:連絡先のサーバが使用可能なすべてのリソースに代わって存在プローブに返信:

<presence from='juliet@example.com/balcony' to='romeo@example.net/orchard' xml:lang='en'> <show>away</show> <status>be right back</status> <priority>0</priority> </presence>

<xmlの「to='romeo@example.net/orchardのプレゼンスfrom='juliet@example.com/balcony:LANG = 'EN'> <ショー>離れて</ショー> <状態>すぐ戻る</ステータス> <優先度> 0 </優先> </プレゼンス>

<presence from='juliet@example.com/chamber' to='romeo@example.net/orchard'> <priority>1</priority> </presence>

<プレゼンスfrom='juliet@example.com/chamber 'to='romeo@example.net/orchard'> <優先順位> 1 </優先> </プレゼンス>

<presence from='benvolio@example.org/pda' to='romeo@example.net/orchard' xml:lang='en'> <show>dnd</show> <status>gallivanting</status> </presence>

<xmlの「to='romeo@example.net/orchardのプレゼンスfrom='benvolio@example.org/pda:LANG = 'EN'> <ショー> DND </表示し> <状態> </ </ステータス> gallivanting存在>

Example 5: Contacts' servers deliver user's initial presence to all available resources or return error to user:

例5:連絡先のサーバは、ユーザに利用可能なすべてのリソースまたはリターンエラーにユーザーの初期プレゼンスを提供します:

<presence from='romeo@example.net/orchard' to='juliet@example.com/chamber'/>

<存在from='romeo@example.net/orchard 'to='juliet@example.com/chamber' />

<presence from='romeo@example.net/orchard' to='juliet@example.com/balcony'/>

<存在from='romeo@example.net/orchard 'to='juliet@example.com/balcony' />

<presence type='error' from='mercutio@example.org' to='romeo@example.net/orchard'> <error type='cancel'> <gone xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </presence>

<プレゼンスタイプ= 'エラー' from='mercutio@example.org」to='romeo@example.net/orchard '> <エラーの種類=' キャンセル '> <なくなってのxmlns =' 壷:IETF:のparams:XML:NS :XMPP-スタンザ/> </エラー> </プレゼンス>

Example 6: User sends directed presence to another user not in his roster:

例6:ユーザーがいない彼の名簿で別のユーザーに向けプレゼンスを送信します。

<presence from='romeo@example.net/orchard' to='nurse@example.com' xml:lang='en'> <show>dnd</show> <status>courting Juliet</status> <priority>0</priority> </presence>

<プレゼンスfrom='romeo@example.net/orchard 'to='nurse@example.com' XML:LANG = 'EN'> <表示> DND </表示> <状態>ジュリエットを求愛</ステータス> <優先順位> 0 </優先> </プレゼンス>

Example 7: User sends updated available presence information for broadcasting:

例7:ユーザーは、放送用に更新可能なプレゼンス情報を送信します。

<presence xml:lang='en'> <show>away</show> <status>I shall return!</status> <priority>1</priority> </presence>

<プレゼンスXML:LANG = 'EN'> <ショー>離れて</ショー> <状態>私が返還しなければならない。</ステータス> <優先順位> 1 </優先順位> </プレゼンス>!

Example 8: User's server broadcasts updated presence information only to one contact (not those from whom an error was received or to whom the user sent directed presence):

例8:ユーザーのサーバーは、唯一の接点(ないそれらのエラーを受信した誰からかへのユーザー送ら監督存在)に更新されたプレゼンス情報をブロードキャスト:

<presence from='romeo@example.net/orchard' to='juliet@example.com' xml:lang='en'> <show>away</show> <status>I shall return!</status> <priority>1</priority> </presence>

<プレゼンスfrom='romeo@example.net/orchard 'to='juliet@example.com' のxml:LANG = 'EN'> <ショー>離れて</ショー> <状態>私が返還しなければならない。</ステータス> <!優先> 1 </優先> </プレゼンス>

Example 9: Contact's server delivers updated presence information to all of the contact's available resources:

例9:連絡先のサーバーは、連絡先の利用可能なリソースのすべてに更新されたプレゼンス情報を提供します。

[to "balcony" resource...] <presence from='romeo@example.net/orchard' to='juliet@example.com' xml:lang='en'> <show>away</show> <status>I shall return!</status> <priority>1</priority> </presence>

<プレゼンスfrom='romeo@example.net/orchard 'to='juliet@example.com' のxml:LANG = 'EN'> [ "バルコニー" リソース...へ]離れて<ショー> </ショー> <ステータス>私は、返還しなければならない!</ステータス> <優先順位> 1 </優先順位> </プレゼンス>

[to "chamber" resource...] <presence from='romeo@example.net/orchard' to='juliet@example.com' xml:lang='en'> <show>away</show> <status>I shall return!</status> <priority>1</priority> </presence>

<プレゼンスfrom='romeo@example.net/orchard 'to='juliet@example.com' のxml:LANG = 'EN'> [ "室" リソース...へ]離れて<ショー> </ショー> <ステータス>私は、返還しなければならない!</ステータス> <優先順位> 1 </優先順位> </プレゼンス>

Example 10: One of the contact's resources broadcasts final presence:

例10:連絡先の資源の一つは、最終的なプレゼンスをブロードキャスト:

<presence from='juliet@example.com/balcony' type='unavailable'/>

<プレゼンスfrom='juliet@example.com/balcony」TYPE = '利用できません' />

Example 11: Contact's server sends unavailable presence information to user:

例11:連絡先のサーバは、ユーザに利用できないプレゼンス情報を送信します。

<presence type='unavailable' from='juliet@example.com/balcony' to='romeo@example.net/orchard'/>

<プレゼンス・タイプ= '利用できない' from='juliet@example.com/balcony 'to='romeo@example.net/orchard' />

Example 12: User sends final presence:

例12:ユーザーは、最終的なプレゼンスを送信します。

<presence from='romeo@example.net/orchard' type='unavailable' xml:lang='en'> <status>gone home</status> </presence>

<プレゼンスfrom='romeo@example.net/orchard」タイプ= '使用できません' のxml:LANG = 'EN'> <状態>帰宅</ステータス> </プレゼンス>

Example 13: User's server broadcasts unavailable presence information to contact as well as to the person to whom the user sent directed presence:

例13:ユーザーズ・サーバーは、人にだけでなく、連絡して利用できないプレゼンス情報をブロードキャストするユーザーが対象の存在を送った人:

<presence type='unavailable' from='romeo@example.net/orchard' to='juliet@example.com' xml:lang='en'> <status>gone home</status> </presence>

<プレゼンスタイプ= '利用できない' from='romeo@example.net/orchard 'to='juliet@example.com' のxml:LANG = 'EN'> <状態>帰宅</ステータス> </プレゼンス>

<presence from='romeo@example.net/orchard' to='nurse@example.com' xml:lang='en'> <status>gone home</status> </presence>

<プレゼンスfrom='romeo@example.net/orchard 'to='nurse@example.com' のxml:LANG = 'EN'> <状態>帰宅</ステータス> </プレゼンス>

6. Managing Subscriptions
6.サブスクリプションの管理

In order to protect the privacy of instant messaging users and any other entities, presence and availability information is disclosed only to other entities that the user has approved. When a user has agreed that another entity may view its presence, the entity is said to have a subscription to the user's presence information. A subscription lasts across sessions; indeed, it lasts until the subscriber unsubscribes or the subscribee cancels the previously-granted subscription. Subscriptions are managed within XMPP by sending presence stanzas containing specially-defined attributes.

インスタントメッセージングユーザーやその他のエンティティのプライバシーを保護するために、プレゼンスおよび可用性の情報はユーザーのみが承認した他のエンティティに開示されています。ユーザーが別のエンティティがその存在を見ることができることに同意した場合には、エンティティは、ユーザーのプレゼンス情報へのサブスクリプションを持っていると言われています。サブスクリプションは、セッション間で続きます。確かに、それは、加入者の登録解除まで継続またはサブスクライブは、以前に付与されたサブスクリプションをキャンセルします。サブスクリプションは、特別に定義された属性を含むプレゼンススタンザを送信することによって、XMPP内で管理されています。

Note: There are important interactions between subscriptions and rosters; these are defined under Integration of Roster Items and Presence Subscriptions (Section 8), and the reader must refer to that section for a complete understanding of presence subscriptions.

注意:サブスクリプションと名簿間の重要な相互作用があります。これらは、名簿の項目とプレゼンスサブスクリプションの統合(第8節)の下で定義されており、読者はプレゼンスサブスクリプションを完全に理解するために、そのセクションを参照しなければなりません。

6.1. Requesting a Subscription
6.1. 購読を要求

A request to subscribe to another entity's presence is made by sending a presence stanza of type "subscribe".

別のエンティティのプレゼンスをサブスクライブするための要求は「購読」タイプの存在スタンザを送信することにより行われます。

Example: Sending a subscription request:

例:サブスクリプション要求を送信:

<presence to='juliet@example.com' type='subscribe'/>

<プレゼンスto='juliet@example.com」タイプ= '' /サブスクライブ>

For client and server responsibilities regarding presence subscription requests, refer to Presence Subscriptions (Section 5.1.6).

プレゼンスサブスクリプション要求について、クライアントとサーバの責任については、プレゼンスサブスクリプション(セクション5.1.6)を参照してください。

6.2. Handling a Subscription Request
6.2. サブスクリプション要求を処理

When a client receives a subscription request from another entity, it MUST either approve the request by sending a presence stanza of type "subscribed" or refuse the request by sending a presence stanza of type "unsubscribed".

クライアントが別のエンティティからのサブスクリプション要求を受信すると、それはタイプ「サブスクライブ」の存在スタンザを送信することにより、要求を承認するか、または「解除」タイプの存在スタンザを送信することにより、要求を拒否しなければならないのいずれか。

Example: Approving a subscription request:

例:サブスクリプション要求を承認:

<presence to='romeo@example.net' type='subscribed'/>

<プレゼンスto='romeo@example.net」TYPE = '加入/>

Example: Refusing a presence subscription request:

例:プレゼンスサブスクリプション要求を拒否:

<presence to='romeo@example.net' type='unsubscribed'/>

<プレゼンスto='romeo@example.net」TYPE = '解除' />

6.3. Cancelling a Subscription from Another Entity
6.3. 別のエンティティからのサブスクリプションをキャンセル

If a user would like to cancel a previously-granted subscription request, it sends a presence stanza of type "unsubscribed".

ユーザーが以前に付与されたサブスクリプション要求をキャンセルしたい場合、それは「解除」タイプの存在スタンザを送信します。

Example: Cancelling a previously granted subscription request:

例:以前に付与されたサブスクリプション要求のキャンセル:

<presence to='romeo@example.net' type='unsubscribed'/>

<プレゼンスto='romeo@example.net」TYPE = '解除' />

6.4. Unsubscribing from Another Entity's Presence
6.4. 別のエンティティの存在から退会

If a user would like to unsubscribe from the presence of another entity, it sends a presence stanza of type "unsubscribe".

ユーザーが別のエンティティの存在から退会したい場合は、「退会」タイプの存在スタンザを送信します。

Example: Unsubscribing from an entity's presence:

例:エンティティの存在から退会:

<presence to='juliet@example.com' type='unsubscribe'/>

<プレゼンスto='juliet@example.com」TYPE = '解除' />

7. Roster Management
7.名簿管理

In XMPP, one's contact list is called a roster, which consists of any number of specific roster items, each roster item being identified by a unique JID (usually of the form <contact@domain>). A user's roster is stored by the user's server on the user's behalf so that the user may access roster information from any resource.

XMPPでは、一方の連絡先リストは、特定の選手の任意の数の項目から成る名簿、(通常はフォーム<接触@ドメイン>の)一意JIDによって識別される各選手アイテムと呼ばれます。ユーザーが任意のリソースから名簿情報にアクセスできるように、利用者の名簿は、ユーザーに代わって、ユーザーのサーバーに格納されています。

Note: There are important interactions between rosters and subscriptions; these are defined under Integration of Roster Items and Presence Subscriptions (Section 8), and the reader must refer to that section for a complete understanding of roster management.

注意:名簿およびサブスクリプション間の重要な相互作用があります。これらは、名簿項目の統合とプレゼンスサブスクリプション(第8節)の下で定義されており、読者は名簿の管理を完全に理解するために、そのセクションを参照しなければなりません。

7.1. Syntax and Semantics
7.1. 構文とセマンティクス

Rosters are managed using IQ stanzas, specifically by means of a <query/> child element qualified by the 'jabber:iq:roster' namespace. The <query/> element MAY contain one or more <item/> children, each describing a unique roster item or "contact".

名前空間の名簿は、特に「:IQ名簿ジャバー」によって修飾<クエリ/>子要素によって、IQスタンザを使用して管理されています。 <クエリ/>要素は、それぞれが独自の名簿項目または「連絡先」を記述し、一つ以上の<item />子供を含むかもしれません。

The "key" or unique identifier for each roster item is a JID, encapsulated in the 'jid' attribute of the <item/> element (which is REQUIRED). The value of the 'jid' attribute SHOULD be of the form <user@domain> if the item is associated with another (human) instant messaging user.

各名簿項目の「キー」または一意の識別子(必須である)の<item />要素の「JID」属性にカプセル化された、JIDあります。 「JID」属性の値は、項目が別の(人間の)インスタント・メッセージング・ユーザーに関連付けられている場合、フォーム<ユーザー@ドメイン>でなければなりません。

The state of the presence subscription in relation to a roster item is captured in the 'subscription' attribute of the <item/> element. Allowable values for this attribute are:

名簿項目に関連するプレゼンス購読の状態の<item />要素の「サブスクリプション」属性に捕捉されます。この属性の許容値は、次のとおりです。

o "none" -- the user does not have a subscription to the contact's presence information, and the contact does not have a subscription to the user's presence information

O「なし」 - ユーザーが連絡先のプレゼンス情報へのサブスクリプションを持っていない、との接触は、ユーザーのプレゼンス情報へのサブスクリプションを持っていません

o "to" -- the user has a subscription to the contact's presence information, but the contact does not have a subscription to the user's presence information

O「に」 - ユーザーは、連絡先のプレゼンス情報へのサブスクリプションを持っていますが、連絡先は、ユーザーのプレゼンス情報へのサブスクリプションを持っていません

o "from" -- the contact has a subscription to the user's presence information, but the user does not have a subscription to the contact's presence information

O「から」 - 連絡先は、ユーザーのプレゼンス情報へのサブスクリプションを持っていますが、ユーザーは、連絡先のプレゼンス情報へのサブスクリプションを持っていません

o "both" -- both the user and the contact have subscriptions to each other's presence information

O「両方」 - ユーザーとの接触の両方がお互いのプレゼンス情報へのサブスクリプションを持っています

Each <item/> element MAY contain a 'name' attribute, which sets the "nickname" to be associated with the JID, as determined by the user (not the contact). The value of the 'name' attribute is opaque.

それぞれの<item />要素は、ユーザ(ない接触)によって決定されるように、JIDに関連付けされる「ニックネーム」を設定する「名前」属性を含んでいてもよいです。 「名前」属性の値は不透明です。

Each <item/> element MAY contain one or more <group/> child elements, for use in collecting roster items into various categories. The XML character data of the <group/> element is opaque.

それぞれの<item />要素は、様々なカテゴリに名簿の項目を収集する際に使用するために1つ以上の<グループ/>子要素を含むことができます。 <グループ/>要素のXML文字データは不透明です。

7.2. Business Rules
7.2. ビジネスルール

A server MUST ignore any 'to' address on a roster "set", and MUST treat any roster "set" as applying to the sender. For added safety, a client SHOULD check the "from" address of a "roster push" (incoming IQ of type "set" containing a roster item) to ensure that it is from a trusted source; specifically, the stanza MUST either have no 'from' attribute (i.e., implicitly from the server) or have a 'from' attribute whose value matches the user's bare JID (of the form <user@domain>) or full JID (of the form <user@domain/resource>); otherwise, the client SHOULD ignore the "roster push".

サーバーは、名簿「セット」上のアドレス「から」いずれかを無視しなければならない、と送信者に適用されると任意の名簿「セット」を扱わなければなりません。追加の安全のために、クライアントは、それが信頼できるソースからのものであることを保証するために、「名簿プッシュ」(名簿項目を含む受信IQタイプの「セット」)のアドレス「から」をチェックする必要があります。具体的には、スタンザはMUSTどちらか持っている属性「から」いいえ(すなわち、暗黙的にサーバーから)または属性値が(フォームの<ユーザー@ドメイン>)、ユーザーの裸JIDと一致するか、完全なJID「から」(のを持っていますフォーム<ユーザー@ドメイン/リソース>);そうでない場合、クライアントは「名簿プッシュ」を無視します。

7.3. Retrieving One's Roster on Login
7.3. ログインにワンの名簿を取得

Upon connecting to the server and becoming an active resource, a client SHOULD request the roster before sending initial presence (however, because receiving the roster may not be desirable for all resources, e.g., a connection with limited bandwidth, the client's request for the roster is OPTIONAL). If an available resource does not request the roster during a session, the server MUST NOT send it presence subscriptions and associated roster updates.

名簿を受信すると、すべてのリソース、例えば、限られた帯域幅に関連して、名簿のためのクライアントの要求のために望ましくないことがあるため、サーバーに接続し、アクティブなリソースになってすると、クライアントは、しかし、(初期の存在を送信する前に名簿を要求する必要があります)はオプションです。使用可能なリソースは、セッション中に名簿を要求していない場合、サーバーはそれをプレゼンスサブスクリプションと関連付けられている名簿の更新を送ってはいけません。

Example: Client requests current roster from server:

例:クライアントがサーバから現在の名簿を要求します。

<iq from='juliet@example.com/balcony' type='get' id='roster_1'> <query xmlns='jabber:iq:roster'/> </iq>

<IQ from='juliet@example.com/balcony」タイプ= 'get' がID = 'roster_1'> <クエリのxmlns = 'ジャバー:IQ:名簿' /> </ IQ>

Example: Client receives roster from server:

例:クライアントがサーバーから名簿を受け取ります。

<iq to='juliet@example.com/balcony' type='result' id='roster_1'> <query xmlns='jabber:iq:roster'> <item jid='romeo@example.net' name='Romeo' subscription='both'> <group>Friends</group> </item> <item jid='mercutio@example.org' name='Mercutio' subscription='from'> <group>Friends</group> </item> <item jid='benvolio@example.org' name='Benvolio' subscription='both'> <group>Friends</group> </item> </query>

<IQのto='juliet@example.com/balcony 'TYPE = '結果' のid = 'roster_1'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='romeo@example.net' NAME =」ロミオ '加入= '両方'> <グループ>友達</グループ> </商品> <商品jid='mercutio@example.org' NAME = 'マーキューシオ' 加入= 'から'> <グループ>友達</グループ> </ item>は<項目jid='benvolio@example.orgの」name = 'ベンヴォリオ' サブスクリプション= '両方'> <グループ>フレンズ</グループ> </ item>の</クエリ>

</iq>

</ IQ>

7.4. Adding a Roster Item
7.4. 名簿項目を追加します

At any time, a user MAY add an item to his or her roster.

いつでも、ユーザーは、彼または彼女の名簿に項目を追加するかもしれません。

Example: Client adds a new item:

例:クライアントは、新しいアイテムを追加します。

<iq from='juliet@example.com/balcony' type='set' id='roster_2'> <query xmlns='jabber:iq:roster'> <item jid='nurse@example.com' name='Nurse'> <group>Servants</group> </item> </query> </iq>

<IQ from='juliet@example.com/balcony 'TYPE = 'セット' のid = 'roster_2'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='nurse@example.com' NAME =」ナース '> <グループ>サーバント</グループ> </ item>の</クエリ> </ IQ>

The server MUST update the roster information in persistent storage, and also push the change out to all of the user's available resources that have requested the roster. This "roster push" consists of an IQ stanza of type "set" from the server to the client and enables all available resources to remain in sync with the server-based roster information.

サーバーは、永続ストレージに名簿情報を更新し、また、名簿を要求した利用者の利用可能なリソースのすべてに変更をプッシュする必要があります。この「名簿プッシュは、」サーバからクライアントへのタイプ「セット」のIQスタンザで構成され、サーバーベースの名簿情報との同期を維持するすべての利用可能なリソースを有効にします。

Example: Server (1) pushes the updated roster information to all available resources that have requested the roster and (2) replies with an IQ result to the sending resource:

例:サーバーは(1)名簿を要求したすべての利用可能なリソースに更新名簿情報をプッシュし、(2)送信リソースにIQ結果を返信:

<iq to='juliet@example.com/balcony' type='set' id='a78b4q6ha463'> <query xmlns='jabber:iq:roster'> <item jid='nurse@example.com' name='Nurse' subscription='none'> <group>Servants</group> </item> </query> </iq>

<IQ to='juliet@example.com/balcony 'TYPE = 'セット' のid = 'a78b4q6ha463'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='nurse@example.com' NAME =」ナース」サブスクリプション= 'なし'> <グループ>サーバント</グループ> </ item>の</クエリ> </ IQ>

<iq to='juliet@example.com/chamber' type='set' id='a78b4q6ha464'> <query xmlns='jabber:iq:roster'> <item jid='nurse@example.com' name='Nurse' subscription='none'> <group>Servants</group>

<IQ to='juliet@example.com/chamber 'TYPE = 'セット' のid = 'a78b4q6ha464'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='nurse@example.com' NAME =」ナース」サブスクリプション= 'なし'> <グループ>サーバント</グループ>

</item> </query> </iq>

</ item>の</クエリ> </ IQ>

<iq to='juliet@example.com/balcony' type='result' id='roster_2'/>

<IQ to='juliet@example.com/balcony」TYPE = '結果' のid = 'roster_2' />

As required by the semantics of the IQ stanza kind as defined in [XMPP-CORE], each resource that received the roster push MUST reply with an IQ stanza of type "result" (or "error").

種類として[XMPP-CORE]で定義されたIQスタンザの意味論によって必要とされるよう、名簿プッシュを受信した各リソースは、タイプ「結果」のIQスタンザで応答しなければならない(又は「エラー」)。

Example: Resources reply with an IQ result to the server:

例:リソースがサーバにIQ結果を返信:

<iq from='juliet@example.com/balcony' to='example.com' type='result' id='a78b4q6ha463'/> <iq from='juliet@example.com/chamber' to='example.com' type='result' id='a78b4q6ha464'/>

<example.comを '= 'へのIQ from='juliet@example.com/balcony' TYPE = '結果' のid = 'a78b4q6ha463 = '例の' /> <たIQ from='juliet@example.com/chamber'。 COM」タイプ= '結果' ID = 'a78b4q6ha464' />

7.5. Updating a Roster Item
7.5. 名簿の項目を更新します

Updating an existing roster item (e.g., changing the group) is done in the same way as adding a new roster item, i.e., by sending the roster item in an IQ set to the server.

既存の名簿項目を更新する(例えば、グループを変更する)サーバにIQセットに名簿項目を送信することによって、すなわち、新しい名簿項目を追加することと同じ方法で行われます。

Example: User updates roster item (added group):

例:ユーザー更新名簿項目(追加グループ):

<iq from='juliet@example.com/chamber' type='set' id='roster_3'> <query xmlns='jabber:iq:roster'> <item jid='romeo@example.net' name='Romeo' subscription='both'> <group>Friends</group> <group>Lovers</group> </item> </query> </iq>

<IQのfrom='juliet@example.com/chamber 'TYPE = 'セット' のid = 'roster_3'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='romeo@example.net' NAME =」ロミオ」加入= '両方'> <グループ>友達</グループ> <グループ>恋人</グループ> </商品> </クエリ> </ IQ>

As with adding a roster item, when updating a roster item the server MUST update the roster information in persistent storage, and also initiate a roster push to all of the user's available resources that have requested the roster.

名簿の項目を更新する際に名簿項目を追加することと同じように、サーバーは、永続ストレージに名簿情報を更新し、また、名簿を要求した利用者の利用可能なリソースのすべてに名簿のプッシュを開始しなければなりません。

7.6. Deleting a Roster Item
7.6. 名簿の項目を削除します

At any time, a user MAY delete an item from his or her roster by sending an IQ set to the server and making sure that the value of the 'subscription' attribute is "remove" (a compliant server MUST ignore any other values of the 'subscription' attribute when received from a client).

いつでも、ユーザーが(準拠のサーバーは、任意の他の値を無視しなければならないサーバにIQのセットを送信すると「サブスクリプション」属性の値が「削除」であることを確認することで、彼または彼女の名簿から項目を削除してもよいです。クライアントから受信した「サブスクリプション」属性)。

Example: Client removes an item:

例:クライアントがアイテムを削除します。

<iq from='juliet@example.com/balcony' type='set' id='roster_4'> <query xmlns='jabber:iq:roster'> <item jid='nurse@example.com' subscription='remove'/> </query> </iq>

<IQ from='juliet@example.com/balcony 'TYPE = 'セット' のid = 'roster_4'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='nurse@example.com' 加入=」削除 '/> </クエリ> </ IQ>

As with adding a roster item, when deleting a roster item the server MUST update the roster information in persistent storage, initiate a roster push to all of the user's available resources that have requested the roster (with the 'subscription' attribute set to a value of "remove"), and send an IQ result to the initiating resource.

名簿の項目を削除するとき名簿項目を追加することと同じように、サーバーは、永続ストレージに名簿情報を更新する必要があります、値に設定「サブスクリプション」属性を持つ名簿を(要求した利用者の利用可能なリソースのすべてに名簿プッシュを開始「削除」)、および、開始リソースにIQ結果を送信します。

For further information about the implications of this command, see Removing a Roster Item and Cancelling All Subscriptions (Section 8.6).

このコマンドの意味の詳細については、名簿の項目を削除し、すべてのサブスクリプション(8.6節)をキャンセルご覧ください。

8. Integration of Roster Items and Presence Subscriptions
8.名簿項目の統合とプレゼンスサブスクリプション
8.1. Overview
8.1. 概要

Some level of integration between roster items and presence subscriptions is normally expected by an instant messaging user regarding the user's subscriptions to and from other contacts. This section describes the level of integration that MUST be supported within XMPP instant messaging applications.

名簿項目とプレゼンスサブスクリプション間の統合のいくつかのレベルは、通常、他の連絡先にしてから、ユーザのサブスクリプションに関するインスタント・メッセージング・ユーザが期待されます。このセクションでは、XMPPインスタントメッセージングアプリケーション内でサポートしなければならないの統合のレベルを説明しています。

There are four primary subscription states:

4つの主要なサブスクリプションの状態があります。

o None -- the user does not have a subscription to the contact's presence information, and the contact does not have a subscription to the user's presence information

Oなし - ユーザーは、連絡先のプレゼンス情報へのサブスクリプションを持っていないいない、との接触は、ユーザーのプレゼンス情報へのサブスクリプションを持っていません

o To -- the user has a subscription to the contact's presence information, but the contact does not have a subscription to the user's presence information

Oへ - ユーザーが連絡先のプレゼンス情報へのサブスクリプションを持っていますが、連絡先は、ユーザーのプレゼンス情報へのサブスクリプションを持っていません

o From -- the contact has a subscription to the user's presence information, but the user does not have a subscription to the contact's presence information

O - 連絡先は、ユーザーのプレゼンス情報へのサブスクリプションを持っていますが、ユーザーは、連絡先のプレゼンス情報へのサブスクリプションを持っていません

o Both -- both the user and the contact have subscriptions to each other's presence information (i.e., the union of 'from' and 'to')

O両方 - ユーザとの接触の両方がお互いのプレゼンス情報へのサブスクリプションを持っている(すなわち、「に」「から」との組合)

Each of these states is reflected in the roster of both the user and the contact, thus resulting in durable subscription states.

これらの状態の各々は、このように耐久性のあるサブスクリプション状態で、その結果、ユーザとコンタクト両方の名簿に反映されます。

Narrative explanations of how these subscription states interact with roster items in order to complete certain defined use cases are provided in the following sub-sections. Full details regarding server and client handling of all subscription states (including pending states between the primary states listed above) is provided in Subscription States (Section 9).

これらのサブスクリプションの状態は、特定の定義されたユースケースを完了するために名簿の項目と対話する方法の物語説明は以下のサブセクションで提供されています。 (上記の主要な状態の間、保留状態を含む)すべてのサブスクリプションの状態のサーバーとクライアントの取り扱いに関する詳細は、サブスクリプションの状態(第9節)で提供されます。

The server MUST NOT send presence subscription requests or roster pushes to unavailable resources, nor to available resources that have not requested the roster.

プレゼンスサブスクリプション要求や名簿を送ってはいけませんサーバーは、名簿を要求していない使用可能なリソースにも、使用できないリソースにプッシュします。

The 'from' and 'to' addresses are OPTIONAL in roster pushes; if included, their values SHOULD be the full JID of the resource for that session. A client MUST acknowledge each roster push with an IQ stanza of type "result" (for the sake of brevity, these stanzas are not shown in the following examples but are required by the IQ semantics defined in [XMPP-CORE]).

「から」とアドレスは名簿プッシュでオプションである「と」;含まれている場合、それらの値は、そのセッションのためのリソースの完全なJIDであるべきです。クライアントは、タイプ「結果」(簡潔にするために、これらのスタンザは、以下の実施例に示されていないが、[XMPP-CORE]で定義されたIQセマンティクスによって必要とされる)のIQスタンザ各名簿プッシュを確認しなければなりません。

8.2. User Subscribes to Contact
8.2. ユーザーは連絡するためにサブスクライブ

The process by which a user subscribes to a contact, including the interaction between roster items and subscription states, is described below.

ユーザが名簿項目と加入状態との間の相互作用を含む、コンタクトをサブスクライブするプロセスは、以下に説明します。

1. In preparation for being able to render the contact in the user's client interface and for the server to keep track of the subscription, the user's client SHOULD perform a "roster set" for the new roster item. This request consists of sending an IQ stanza of type='set' containing a <query/> element qualified by the 'jabber:iq:roster' namespace, which in turn contains an <item/> element that defines the new roster item; the <item/> element MUST possess a 'jid' attribute, MAY possess a 'name' attribute, MUST NOT possess a 'subscription' attribute, and MAY contain one or more <group/> child elements:

1.サブスクリプションを追跡するために、サーバーユーザーのクライアント・インタフェースでとの連絡をレンダリングすることができるというの準備では、ユーザーのクライアントは、新しい名簿項目の「名簿セット」を実行する必要があります。この要求は、=「:IQ:おしゃべり名簿」により修飾<クエリ/>要素を含む「セット」タイプのIQスタンザの送信から成る順に新しい名簿項目を定義する<項目/>要素が含まれている名前空間を、。 <項目/>要素は、「JID」属性を持っていなければならない、「名前」の属性を有することができる、「サブスクリプション」属性を持ってはならない、と1つまたは複数の<group />子要素が含まれる場合があります。

<iq type='set' id='set1'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= 'セット' ID = 'SET1'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='contact@example.org」NAME = 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

2. As a result, the user's server (1) MUST initiate a roster push for the new roster item to all available resources associated with this user that have requested the roster, setting the 'subscription' attribute to a value of "none"; and (2) MUST reply to the sending resource with an IQ result indicating the success of the roster set:

2.その結果、ユーザーのサーバーは、(1)「なし」の値に「サブスクリプション」属性を設定し、名簿を要求してきた、このユーザーに関連付けられているすべての利用可能なリソースへの新しい名簿項目の名簿プッシュを開始しなければなりません。 (2)名簿セットの成功を示すIQ結果に送信リソースに返信しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='none' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= 'なしの' name = 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<iq type='result' id='set1'/>

<IQタイプ= '結果' ID = 'SET1' />

3. If the user wants to request a subscription to the contact's presence information, the user's client MUST send a presence stanza of type='subscribe' to the contact:

3.ユーザーは、ユーザーのクライアントが連絡先に「購読」=タイプの存在スタンザを送らなければなりません、連絡先のプレゼンス情報へのサブスクリプションを要求したい場合:

<presence to='contact@example.org' type='subscribe'/>

<プレゼンスto='contact@example.org」タイプ= '' /サブスクライブ>

4. As a result, the user's server MUST initiate a second roster push to all of the user's available resources that have requested the roster, setting the contact to the pending sub-state of the 'none' subscription state; this pending sub-state is denoted by the inclusion of the ask='subscribe' attribute in the roster item:

4.その結果、ユーザーのサーバーは、「なし」のサブスクリプション状態の保留サブ状態への接触を設定し、名簿を要求した利用者の利用可能なリソースのすべてに二名簿プッシュを開始しなければなりません。この保留中のサブ状態は、名簿の項目に「サブスクライブ」=尋ねる属性を含めることによって示されます。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='none' ask='subscribe' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= 'なし 'の名前を= '購読' =尋ねる' MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

Note: If the user did not create a roster item before sending the subscription request, the server MUST now create one on behalf of the user, then send a roster push to all of the user's available resources that have requested the roster, absent the 'name' attribute and the <group/> child shown above.

注意:ユーザーがサブスクリプション要求を送信する前に名簿項目を作成しなかった場合、サーバは今、その後の名簿を要求しているユーザーの利用可能なリソースのすべてに名簿プッシュを送って、ユーザーの代わりに1を作成する必要があり、存在しません "名前」属性と上図の<グループ/>子。

5. The user's server MUST also stamp the presence stanza of type "subscribe" with the user's bare JID (i.e., <user@example.com>) as the 'from' address (if the user provided a 'from' address set to the user's full JID, the server SHOULD remove the resource identifier). If the contact is served by a different host than the user, the user's server MUST route the presence stanza to the contact's server for delivery to the contact (this case is assumed throughout; however, if the contact is served by the same host, then the server can simply deliver the presence stanza directly):

ユーザーが設定「から」アドレスを提供されている場合5.利用者のサーバーは、(アドレス「から」として、ユーザの裸JID(すなわち、<user@example.com>)で「購読」タイプの存在スタンザをスタンプしなければなりませんユーザーの完全なJID、サーバーは)リソース識別子を削除する必要があります。接触は、ユーザ、ユーザのサーバMUST経路コンタクトへの送達のための連絡先のサーバにプレゼンススタンザは異なるホストによってサービスされている場合(この場合は全体想定されるが、コンタクトが同じホストによってサービスされている場合、次いでサーバーは、単純に)直接プレゼンススタンザを提供することができます:

<presence from='user@example.com' to='contact@example.org' type='subscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' タイプ= '購読' />

Note: If the user's server receives a presence stanza of type "error" from the contact's server, it MUST deliver the error stanza to the user, whose client MAY determine that the error is in response to the outgoing presence stanza of type "subscribe" it sent previously (e.g., by tracking an 'id' attribute) and then choose to resend the "subscribe" request or revert the roster to its previous state by sending a presence stanza of type "unsubscribe" to the contact.

注意:ユーザーのサーバーは、連絡先のサーバーからタイプ「エラー」の存在スタンザを受信した場合、それはユーザーにエラースタンザを提供しなければならない、そのクライアントにエラーがタイプの出存在スタンザに反応していることを決定することができる「購読」それは以前に送られた(例えば、「ID」属性を追跡することによって)、その後、「サブスクライブ」要求を再送信するか、連絡先にタイプ「退会」の存在スタンザを送信することにより、その前の状態に名簿を元に戻すことを選択します。

6. Upon receiving the presence stanza of type "subscribe" addressed to the contact, the contact's server MUST determine if there is at least one available resource from which the contact has requested the roster. If so, it MUST deliver the subscription request to the contact (if not, the contact's server MUST store the subscription request offline for delivery when this condition is next met; normally this is done by adding a roster item for the contact to the user's roster, with a state of "None + Pending In" as defined under Subscription States (Section 9), however a server SHOULD NOT push or deliver roster items in that state to the contact). No matter when the subscription request is delivered, the contact must decide whether or not to approve it (subject to the contact's configured preferences, the contact's client MAY approve or refuse the subscription request without presenting it to the contact). Here we assume the "happy path" that the contact approves the subscription request (the alternate flow of declining the subscription request is defined in Section 8.2.1). In this case, the contact's client (1) SHOULD perform a roster set specifying the desired nickname and group for the user (if any); and (2) MUST send a presence stanza of type "subscribed" to the user in order to approve the subscription request.

接触が名簿を要求したから少なくとも1つの利用可能なリソースがある場合、「購読」タイプの存在スタンザを受け取る6.接触宛、連絡先のサーバを決定しなければなりません。もしそうなら、それがない場合、この条件は次の満たされたときに、連絡先のサーバが配信のためのサブスクリプション要求をオフラインを保存しなければなりません(連絡先へのサブスクリプション要求を提供しなければなりません。通常、これは、ユーザの名簿への連絡先の名簿項目を追加することによって行われますサブスクリプションの状態(第9条)の下で定義されるように、「なし+保留中」の状態で、しかしサーバが連絡先にその状態で名簿項目を押すか、届けるべきではありません)。サブスクリプション要求が配信さに関係なく、連絡先は(連絡先のクライアントが連絡先にそれを提示することなく、サブスクリプション要求を承認または拒否することができ、連絡先のように構成好みに応じて)それを承認するか否かを決定する必要があります。ここでは、接触は、サブスクリプション要求(サブスクリプション要求を減少する別の流れ8.2.1項で定義されている)を承認する「ハッピーパス」を前提としています。この場合には、連絡先のクライアントは、(1)ユーザ(もしあれば)のための所望のニックネームとグループを指定名簿セットを実行しなければなりません。 (2)サブスクリプション要求を承認するために、ユーザにタイプ「サブスクライブ」の存在スタンザを送らなければなりません。

<iq type='set' id='set2'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= 'セット' ID = 'SET2'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='user@example.com」NAME = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence to='user@example.com' type='subscribed'/>

<プレゼンスto='user@example.com」TYPE = '加入/>

7. As a result, the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing a roster item for the user with the subscription state set to 'from' (the server MUST send this even if the contact did not perform a roster set); (2) MUST return an IQ result to the sending resource indicating the success of the roster set; (3) MUST route the presence stanza of type "subscribed" to the user, first stamping the 'from' address as the bare JID (<contact@example.org>) of the contact; and (4) MUST send available presence from all of the contact's available resources to the user:

7.その結果、連絡先のサーバは、(1)「から」に設定加入状態を持つユーザ(サーバ用の名簿項目を含む、名簿を要求している連絡先に関連付けられたすべての利用可能なリソースに名簿プッシュを開始しなければなりません接触が)名簿セットを実行しなかった場合でも、これを送らなければなりません。 (2)名簿セットの成功を示す送信リソースにIQ結果を返さなければなりません。 (3)ユーザにMUSTルートタイプの存在スタンザ「購読」を、最初の接触の裸JID(<contact@example.org>)としてアドレス「から」スタンピング。 (4)利用者への連絡先の利用可能なリソースのすべてから利用できる存在を送らなければなりません。

<iq type='set' to='contact@example.org/resource'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='from' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= 'セット' to='contact@example.org/resource '> <クエリのxmlns =' ジャバー:IQ:名簿 '> =」名 'から'<項目jid='user@example.com' サブスクリプション= SomeUser '> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<iq type='result' to='contact@example.org/resource' id='set2'/>

<IQタイプ「ID = 'SET2' to='contact@example.org/resource = '結果' />

<presence from='contact@example.org' to='user@example.com' type='subscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '加入' />

<presence from='contact@example.org/resource' to='user@example.com'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' />

Note: If the contact's server receives a presence stanza of type "error" from the user's server, it MUST deliver the error stanza to the contact, whose client MAY determine that the error is in response to the outgoing presence stanza of type "subscribed" it sent previously (e.g., by tracking an 'id' attribute) and then choose to resend the "subscribed" notification or revert the roster to its previous state by sending a presence stanza of type "unsubscribed" to the user.

注意:連絡先のサーバーは、ユーザーのサーバーからタイプ「エラー」の存在スタンザを受信した場合、それは、そのクライアントにエラーがタイプ「サブスクライブ」の送信プレゼンススタンザに反応していることを決定することができる連絡先に誤りスタンザを提供しなければなりませんそれは、以前に送信された(例えば、「ID」属性を追跡することによって)、次いで「購読」の通知を再送するか、ユーザにタイプ「解除」の存在スタンザを送信することにより、その前の状態に名簿を元に戻すことを選択します。

8. Upon receiving the presence stanza of type "subscribed" addressed to the user, the user's server MUST first verify that the contact is in the user's roster with either of the following states: (a) subscription='none' and ask='subscribe' or (b) subscription='from' and ask='subscribe'. If the contact is not in the user's roster with either of those states, the user's server MUST silently ignore the presence stanza of type "subscribed" (i.e., it MUST NOT route it to the user, modify the user's roster, or generate a roster push to the user's available resources). If the contact is in the user's roster with either of those states, the user's server (1) MUST deliver the presence stanza of type "subscribed" from the contact to the user; (2) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "to"; and (3) MUST deliver the available presence stanza received from each of the contact's available resources to each of the user's available resources:

タイプの存在スタンザを受信する8.ユーザ宛の「購読」、ユーザのサーバは、前記第1コンタクトは、以下の状態のいずれかとのユーザの名簿であることを確認しなければならない:(A)加入=「なし」と「=尋ねます購読」または(b)のサブスクリプション= 『から』と尋ねる= 『』購読します。接触はそれらの状態のいずれかで、ユーザの名簿にない場合は、ユーザーのサーバは黙って(「サブスクライブ」タイプの存在スタンザを無視しなければなりませんつまり、それは利用者の名簿を変更したり、名簿を生成し、ユーザーへのルートにそれをしないMUST )は、ユーザーの利用可能なリソースにプッシュ。接触は、これらの状態のいずれかとのユーザの名簿にある場合、ユーザのサーバ(1)ユーザの接触から「購読」タイプの存在スタンザを供給しなければなりません。 (2)「へ」の値に設定する「サブスクリプション」属性との接触のために更新名簿項目を含む、名簿を要求した利用者の利用可能なリソースのすべてに名簿のプッシュを開始しなければなりません。 (3)スタンザユーザの利用可能なリソースのそれぞれに連絡先の利用可能なリソースのそれぞれから受信した利用可能なプレゼンスを提供しなければなりません。

<presence to='user@example.com' from='contact@example.org' type='subscribed'/>

<プレゼンスto='user@example.com 'from='contact@example.org' TYPE = '加入' />

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='to' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= '' 名= 'MyContact' へ> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org/resource' to='user@example.com/resource'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com/resource' />

9. Upon receiving the presence stanza of type "subscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "subscribe" to the contact or "denying" it by sending a presence stanza of type "unsubscribe" to the contact; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the user's server know that it MUST no longer send notification of the subscription state change to the user (see Section 9.4).

タイプの存在スタンザ「サブスクライブ」を受信すると、ユーザーが連絡先に「購読する」タイプの存在スタンザを送信または送信することによって、それを「否定」で、それを「肯定」のいずれかを介してそのサブスクリプションの状態通知の受領を確認すべきである9。連絡先に「退会」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、ユーザーのサーバーは、それがもはや(9.4節を参照)ユーザーにサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

From the perspective of the user, there now exists a subscription to the contact's presence information; from the perspective of the contact, there now exists a subscription from the user.

ユーザの観点からは、今連絡先のプレゼンス情報へのサブスクリプションが存在します。接触の観点から、これで、ユーザーからのサブスクリプションが存在します。

8.2.1. Alternate Flow: Contact Declines Subscription Request
8.2.1. 代替フロー:連絡先が登録要請を辞退

The above activity flow represents the "happy path" regarding the user's subscription request to the contact. The main alternate flow occurs if the contact refuses the user's subscription request, as described below.

上記の活動の流れは、連絡先へのユーザのサブスクリプション要求に関する「ハッピーパス」を表しています。以下に説明するように接触が、ユーザのサブスクリプション要求を拒否した場合、メインの代替フローが生じます。

1. If the contact wants to refuse the request, the contact's client MUST send a presence stanza of type "unsubscribed" to the user (instead of the presence stanza of type "subscribed" sent in Step 6 of Section 8.2):

1.連絡先が要求を拒否したい場合は、連絡先のクライアントは、ユーザーに「解除」(8.2節のステップ6で送信された代わりに、タイプの存在スタンザの「サブスクライブを」)タイプの存在スタンザを送らなければなりません。

<presence to='user@example.com' type='unsubscribed'/>

<プレゼンスto='user@example.com」TYPE = '解除' />

2. As a result, the contact's server MUST route the presence stanza of type "unsubscribed" to the user, first stamping the 'from' address as the bare JID (<contact@example.org>) of the contact:

結果2、第スタンピングコンタクトのサーバーMUSTルートユーザに「解除」型の存在スタンザ、裸JID(<contact@example.org>)接触のようなアドレス「から」:

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

Note: If the contact's server previously added the user to the contact's roster for tracking purposes, it MUST remove the relevant item at this time.

注意:連絡先のサーバーが以前追跡の目的のために、連絡先の名簿にユーザーを追加した場合、それはこの時点で該当する項目を削除する必要があります。

3. Upon receiving the presence stanza of type "unsubscribed" addressed to the user, the user's server (1) MUST deliver that presence stanza to the user and (2) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none" and with no 'ask' attribute:

「解除」型の存在スタンザを受け取る3.ユーザ宛の、ユーザのサーバは、(1)ユーザーにそのプレゼンススタンザを供給しなければならない、(2)要求されたそのユーザの利用可能なリソースの全てに名簿プッシュを開始しなければなりません「なし」の値にし、no「を尋ねる」属性を設定する「サブスクリプション」属性との接触のために更新名簿項目を含む名簿、:

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='none' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= 'なしの' name = 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

4. Upon receiving the presence stanza of type "unsubscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the contact or "denying" it by sending a presence stanza of type "subscribe" to the contact; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the user's server know that it MUST no longer send notification of the subscription state change to the user (see Section 9.4).

「解除」型の存在スタンザを受信すると、ユーザが連絡先に「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。連絡先に「購読する」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、ユーザーのサーバーは、それがもはや(9.4節を参照)ユーザーにサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

As a result of this activity, the contact is now in the user's roster with a subscription state of "none", whereas the user is not in the contact's roster at all.

ユーザーがまったく接触者の名簿にないのに対し、この活動の結果として、接触は、「なし」のサブスクリプションの状態で、ユーザの名簿になりました。

8.3. Creating a Mutual Subscription
8.3. 相互スクリプションを作成します

The user and contact can build on the "happy path" described above to create a mutual subscription (i.e., a subscription of type "both"). The process is described below.

ユーザとの接触は、相互のサブスクリプション(「両方」タイプの、すなわち、サブスクリプション)を作成するために、上述した「ハッピーパス」上に構築することができます。プロセスは以下の通りです。

1. If the contact wants to create a mutual subscription, the contact MUST send a subscription request to the user (subject to the contact's configured preferences, the contact's client MAY send this automatically):

1.接触は、相互サブスクリプションを作成したい場合は、連絡先は(連絡先のクライアントはこれを自動的に送信し、連絡先のように構成好みに応じて)ユーザーにサブスクリプション要求を送らなければなりません。

<presence to='user@example.com' type='subscribe'/>

<プレゼンスto='user@example.com」タイプ= '' /サブスクライブ>

2. As a result, the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, with the user still in the 'from' subscription state but with a pending 'to' subscription denoted by the inclusion of the ask='subscribe' attribute in the roster item; and (2) MUST route the presence stanza of type "subscribe" to the user, first stamping the 'from' address as the bare JID (<contact@example.org>) of the contact:

その結果、2、連絡先のサーバー(1)まだサブスクリプション「に」「から」サブスクリプションの状態ではなく、保留中でユーザーと、名簿を要求した連絡先に関連するすべての利用可能なリソースへの名簿のプッシュを開始しなければなりません=尋ねる名簿項目内の属性を「購読」を含めることによって示されます。 :(2)MUSTルートタイプの存在スタンザは、前記第1コンタクトの裸JID(<contact@example.org>)としてアドレス「から」スタンピング、ユーザに「購読します」

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='from' ask='subscribe' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= 'から' 頼む= 'サブスクライブの' name = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org' to='user@example.com' type='subscribe'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' タイプ= '購読' />

Note: If the contact's server receives a presence stanza of type "error" from the user's server, it MUST deliver the error stanza to the contact, whose client MAY determine that the error is in response to the outgoing presence stanza of type "subscribe" it sent previously (e.g., by tracking an 'id' attribute) and then choose to resend the "subscribe" request or revert the roster to its previous state by sending a presence stanza of type "unsubscribe" to the user.

注意:連絡先のサーバーは、ユーザーのサーバーからタイプ「エラー」の存在スタンザを受信した場合、それはエラーが「購読する」タイプの送信プレゼンススタンザに反応していることを決定することができるそのクライアント接触にエラースタンザを提供しなければなりませんそれは以前に送られた(例えば、「ID」属性を追跡することによって)、その後、「サブスクライブ」要求を再送信したり、ユーザーにタイプ「退会」の存在スタンザを送信することにより、その前の状態に名簿を元に戻すことを選択します。

3. Upon receiving the presence stanza of type "subscribe" addressed to the user, the user's server must determine if there is at least one available resource for which the user has requested the roster. If so, the user's server MUST deliver the subscription request to the user (if not, it MUST store the subscription request offline for delivery when this condition is next met). No matter when the subscription request is delivered, the user must then decide whether or not to approve it (subject to the user's configured preferences, the user's client MAY approve or refuse the subscription request without presenting it to the user). Here we assume the "happy path" that the user approves the subscription request (the alternate flow of declining the subscription request is defined in Section 8.3.1). In this case, the user's client MUST send a presence stanza of type "subscribed" to the contact in order to approve the subscription request.

タイプの存在スタンザを受信する3.「サブスクライブ」ユーザ宛のユーザーが名簿を要求したために、少なくとも1つの利用可能なリソースがある場合は、ユーザーのサーバーを決定する必要があります。そう、ユーザーのサーバーは、ユーザーへのサブスクリプション要求を提供しなければならない場合には(ない場合は、この条件は次の満たされたとき、それは配達のためにオフラインサブスクリプション要求を保存しなければなりません)。サブスクリプション要求が配信さに関係なく、ユーザーは、(ユーザーのクライアントは、ユーザーにそれを提示することなく、サブスクリプション要求を承認または拒否することができ、ユーザーの設定済みの好みに応じて)それを承認するか否かを決定する必要があります。ここでは、ユーザは、サブスクリプション要求(サブスクリプション要求を減少する別の流れ8.3.1項で定義されている)を承認する「ハッピーパス」を前提としています。この場合、ユーザーのクライアントは、サブスクリプション要求を承認するために、連絡先にタイプ「サブスクライブ」の存在スタンザを送らなければなりません。

<presence to='contact@example.org' type='subscribed'/>

<プレゼンスto='contact@example.org」TYPE = '加入/>

4. As a result, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing a roster item for the contact with the 'subscription' attribute set to a value of "both"; (2) MUST route the presence stanza of type "subscribed" to the contact, first stamping the 'from' address as the bare JID (<user@example.com>) of the user; and (3) MUST send to the contact the full XML of the last presence stanza with no 'to' attribute received by the server from each of the user's available resources (subject to privacy lists in force for each session):

4.その結果、ユーザーのサーバーは、(1)の両方「の値に設定する「サブスクリプション」属性との接触のために名簿の項目を含む、名簿を要求した利用者の利用可能なリソースのすべてに名簿のプッシュを開始しなければなりません「; (2)接触にMUSTルートタイプの存在スタンザ「購読」を、第1ユーザの裸JID(<user@example.com>)としてアドレス「から」スタンピング。 (3)利用者の利用可能なリソース(各セッションのための力のプライバシーリストの対象)のそれぞれから、サーバーが受信した属性「に」連絡先に無いとの最後のプレゼンススタンザの完全なXMLを送らなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='both' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= '' の両方の名前= 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='subscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '加入' />

<presence from='user@example.com/resource' to='contact@example.org'/>

<プレゼンスfrom='user@example.com/resource 'to='contact@example.org' />

Note: If the user's server receives a presence stanza of type "error" from the contact's server, it MUST deliver the error stanza to the user, whose client MAY determine that the error is in response to the outgoing presence stanza of type "subscribed" it sent previously (e.g., by tracking an 'id' attribute) and then choose to resend the subscription request or revert the roster to its previous state by sending a presence stanza of type "unsubscribed" to the contact.

注:ユーザーのサーバーは、連絡先のサーバーからタイプ「エラー」の存在スタンザを受信した場合、それは、そのクライアントにエラーがタイプ「サブスクライブ」の送信プレゼンススタンザに反応していることを決定することができるユーザにエラースタンザを提供しなければなりませんそれは以前に送られた(例えば、「ID」属性を追跡することによって)、その後、サブスクリプション要求を再送信するか、連絡先にタイプ「解除」の存在スタンザを送信することにより、その前の状態に名簿を元に戻すことを選択します。

5. Upon receiving the presence stanza of type "subscribed" addressed to the contact, the contact's server MUST first verify that the user is in the contact's roster with either of the following states: (a) subscription='none' and ask='subscribe' or (b) subscription='from' and ask='subscribe'. If the user is not in the contact's roster with either of those states, the contact's server MUST silently ignore the presence stanza of type "subscribed" (i.e., it MUST NOT route it to the contact, modify the contact's roster, or generate a roster push to the contact's available resources). If the user is in the contact's roster with either of those states, the contact's server (1) MUST deliver the presence stanza of type "subscribed" from the user to the contact; (2) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "both"; and (3) MUST deliver the available presence stanza received from each of the user's available resources to each of the contact's available resources:

「(a)は、サブスクリプション=「なし」と尋ねる=:「サブスクライブ」タイプの存在スタンザを受け取ると5.は、連絡先のサーバは、最初のユーザーが次の状態のいずれかで連絡先の名簿であることを確かめなければなりません連絡先宛購読」または(b)のサブスクリプション= 『から』と尋ねる= 『』購読します。ユーザーは、それらの状態のいずれかと接触者の名簿にない場合は、連絡先のサーバは黙って(「サブスクライブ」タイプの存在スタンザを無視しなければならない、すなわち、それは、連絡先の名簿を変更したり、名簿を生成し、接触へのルートにそれをしないMUST )連絡先の利用可能なリソースにプッシュ。ユーザが連絡先のサーバ、それらの状態のいずれかと接触者名簿にある場合、(1)利用者から連絡先に「加入」タイプの存在スタンザを供給しなければなりません。 (2)「のサブスクリプション」、「両方」の値に設定された属性とユーザの更新名簿項目を含む、名簿を要求している連絡先に関連付けられたすべての利用可能なリソースに名簿プッシュを開始しなければなりません。 (3)スタンザ連絡先の利用可能なリソースのそれぞれにユーザの利用可能なリソースのそれぞれから受信した利用可能なプレゼンスを提供しなければなりません。

<presence from='user@example.com' to='contact@example.org' type='subscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '加入' />

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='both' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= '' の両方の名前= 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com/resource' to='contact@example.org/resource'/>

<プレゼンスfrom='user@example.com/resource 'to='contact@example.org/resource' />

6. Upon receiving the presence stanza of type "subscribed", the contact SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "subscribe" to the user or "denying" it by sending a presence stanza of type "unsubscribe" to the user; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the contact's server know that it MUST no longer send notification of the subscription state change to the contact (see Section 9.4).

タイプの存在スタンザ「購読」を受信すると、コンタクトがユーザに「購読」タイプの存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである6。ユーザーに「退会」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、連絡先のサーバが、それはもはや(9.4節を参照してください)連絡先にサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

The user and the contact now have a mutual subscription to each other's presence -- i.e., the subscription is of type "both".

ユーザーとの接触は今、お互いの存在に相互のサブスクリプションを持っている - すなわち、サブスクリプションがタイプである「両方」。

8.3.1. Alternate Flow: User Declines Subscription Request
8.3.1. 代替フロー:ユーザーが登録要請を辞退

The above activity flow represents the "happy path" regarding the contact's subscription request to the user. The main alternate flow occurs if the user refuses the contact's subscription request, as described below.

上記の活動の流れは、ユーザーへの連絡先のサブスクリプション要求に関する「ハッピーパス」を表しています。以下に説明するように、ユーザは、連絡先のサブスクリプション要求を拒否した場合、メインの代替フローが生じます。

1. If the user wants to refuse the request, the user's client MUST send a presence stanza of type "unsubscribed" to the contact (instead of the presence stanza of type "subscribed" sent in Step 3 of Section 8.3):

1.利用者が要求を拒否したい場合には、ユーザーのクライアントは、連絡先(8.3節の手順3で送信された代わりに、タイプの存在スタンザの「サブスクライブ」)に「解除」タイプの存在スタンザを送らなければなりません。

<presence to='contact@example.org' type='unsubscribed'/>

<プレゼンスto='contact@example.org」TYPE = '解除' />

2. As a result, the user's server MUST route the presence stanza of type "unsubscribed" to the contact, first stamping the 'from' address as the bare JID (<user@example.com>) of the user:

結果2.ユーザのサーバMUSTルートタイプの存在スタンザ接点を「解除」、第1ユーザの裸JID(<user@example.com>)としてアドレス「から」をスタンピング。

<presence from='user@example.com' to='contact@example.org' type='unsubscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

3. Upon receiving the presence stanza of type "unsubscribed" addressed to the contact, the contact's server (1) MUST deliver that presence stanza to the contact; and (2) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "from" and with no 'ask' attribute:

「解除」型の存在スタンザを受け取る3.接触宛、コンタクトへのプレゼンススタンザを供給しなければならない連絡先のサーバ(1)。 (2)「から」の値にし、no「を尋ねると設定「サブスクリプション」属性を持つユーザのために更新名簿項目を含む、名簿を要求した連絡先に関連するすべての利用可能なリソースへの名簿のプッシュを開始しなければなりません'属性:

<presence from='user@example.com' to='contact@example.org' type='unsubscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='from' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= 'からの' name = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

4. Upon receiving the presence stanza of type "unsubscribed", the contact SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the user or "denying" it by sending a presence stanza of type "subscribe" to the user; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the contact's server know that it MUST no longer send notification of the subscription state change to the contact (see Section 9.4).

「解除」型の存在スタンザを受信すると、連絡先がユーザに「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。ユーザーに「購読する」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、連絡先のサーバが、それはもはや(9.4節を参照してください)連絡先にサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

As a result of this activity, there has been no change in the subscription state; i.e., the contact is in the user's roster with a subscription state of "to" and the user is in the contact's roster with a subscription state of "from".

この活動の結果として、サブスクリプションの状態に変化がなかったです。即ち、接触「へ」の加入状態とのユーザの名簿であり、ユーザは、「から」の加入状態との接触の名簿です。

8.4. Unsubscribing
8.4. 退会

At any time after subscribing to a contact's presence information, a user MAY unsubscribe. While the XML that the user sends to make this happen is the same in all instances, the subsequent subscription state is different depending on the subscription state obtaining when the unsubscribe "command" is sent. Both possible scenarios are described below.

連絡先のプレゼンス情報をサブスクライブした後、任意の時点で、ユーザーが退会してもよい(MAY)。ユーザーはこれを実現するために送信XMLは、すべてのインスタンスで同じですが、その後のサブスクリプションの状態が配信停止「コマンドが」送信されたときに取得するサブスクリプションの状態に応じて異なっています。どちらの可能なシナリオは、以下に記載されています。

8.4.1. Case #1: Unsubscribing When Subscription is Not Mutual
8.4.1. ケース#1:契約は相互されていない場合は退会

In the first case, the user has a subscription to the contact's presence information but the contact does not have a subscription to the user's presence information (i.e., the subscription is not yet mutual).

最初のケースでは、ユーザは、連絡先のプレゼンス情報へのサブスクリプションを持っているが、接触(すなわち、サブスクリプションがまだ相互ない)ユーザのプレゼンス情報へのサブスクリプションを持っていません。

1. If the user wants to unsubscribe from the contact's presence information, the user MUST send a presence stanza of type "unsubscribe" to the contact:

1.ユーザーは、ユーザーが連絡先に「退会」タイプの存在スタンザを送らなければなりません、連絡先のプレゼンス情報の購読を解除したい場合:

<presence to='contact@example.org' type='unsubscribe'/>

<プレゼンスto='contact@example.org」TYPE = '解除' />

2. As a result, the user's server (1) MUST send a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none"; and (2) MUST route the presence stanza of type "unsubscribe" to the contact, first stamping the 'from' address as the bare JID (<user@example.com>) of the user:

2.その結果、ユーザーのサーバーは、(1) "の値に設定する「サブスクリプション」属性との接触のために更新名簿項目を含む、名簿を要求した利用者の利用可能なリソースのすべてに名簿プッシュを送らなければなりません無し"; (2)MUSTルートタイプの存在スタンザ接点を「解除」、第1ユーザの裸JID(<user@example.com>)としてアドレス「から」スタンピング。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='none' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= 'なしの' name = 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

3. Upon receiving the presence stanza of type "unsubscribe" addressed to the contact, the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none" (if the contact is unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST deliver the "unsubscribe" state change notification to the contact:

「解除」型の存在スタンザを受け取る3.接触宛、連絡先のサーバは、(1)ユーザのために更新された名簿項目を含む、名簿を要求している連絡先に関連付けられたすべての利用可能なリソースに名簿プッシュを開始しなければなりません「サブスクリプション」属性が「なし」の値に設定して(接触が使用できない場合や名簿を要求していない、連絡先のサーバは、名簿の項目を変更し、その変更された項目に連絡先が名簿を要求し、次の時間を送らなければなりません)。 (2)コンタクトを「解除」の状態変化通知を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='none' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= 'なしの' name = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

4. Upon receiving the presence stanza of type "unsubscribe", the contact SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribed" to the user or "denying" it by sending a presence stanza of type "subscribed" to the user; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the contact's server know that it MUST no longer send notification of the subscription state change to the contact (see Section 9.4).

「解除」型の存在スタンザを受信すると、連絡先がユーザに「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。ユーザーに「加入」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、連絡先のサーバが、それはもはや(9.4節を参照してください)連絡先にサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

5. The contact's server then (1) MUST send a presence stanza of type "unsubscribed" to the user; and (2) SHOULD send unavailable presence from all of the contact's available resources to the user:

5.連絡先のサーバは、次に、(1)ユーザーに「解除」型の存在スタンザを送らなければなりません。 (2)利用者への連絡先の利用可能なリソースのすべてから利用できない存在を送る必要があります。

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

6. When the user's server receives the presence stanzas of type "unsubscribed" and "unavailable", it MUST deliver them to the user:

ユーザーのサーバーは、タイプの存在スタンザを受け取る6.「解除」と「利用できない」、それがユーザーにそれらを提供しなければなりません:

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

7. Upon receiving the presence stanza of type "unsubscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the contact or "denying" it by sending a presence stanza of type "subscribe" to the contact; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the user's server know that it MUST no longer send notification of the subscription state change to the user (see Section 9.4).

「解除」型の存在スタンザを受信すると、ユーザが連絡先に「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである7。連絡先に「購読する」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、ユーザーのサーバーは、それがもはや(9.4節を参照)ユーザーにサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

8.4.2. Case #2: Unsubscribing When Subscription is Mutual
8.4.2. ケース#2:契約は相互のとき退会

In the second case, the user has a subscription to the contact's presence information and the contact also has a subscription to the user's presence information (i.e., the subscription is mutual).

後者の場合、ユーザは、連絡先のプレゼンス情報へのサブスクリプションを持っており、接触は、ユーザのプレゼンス情報へのサブスクリプションを持っている(すなわち、サブスクリプションは、相互です)。

1. If the user wants to unsubscribe from the contact's presence information, the user MUST send a presence stanza of type "unsubscribe" to the contact:

1.ユーザーは、ユーザーが連絡先に「退会」タイプの存在スタンザを送らなければなりません、連絡先のプレゼンス情報の購読を解除したい場合:

<presence to='contact@example.org' type='unsubscribe'/>

<プレゼンスto='contact@example.org」TYPE = '解除' />

2. As a result, the user's server (1) MUST send a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "from"; and (2) MUST route the presence stanza of type "unsubscribe" to the contact, first stamping the 'from' address as the bare JID (<user@example.com>) of the user:

2.その結果、ユーザーのサーバーは、(1) "の値に設定する「サブスクリプション」属性との接触のために更新名簿項目を含む、名簿を要求した利用者の利用可能なリソースのすべてに名簿プッシュを送らなければなりませんから"; (2)MUSTルートタイプの存在スタンザ接点を「解除」、第1ユーザの裸JID(<user@example.com>)としてアドレス「から」スタンピング。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='from' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <から項目jid='contact@example.org」サブスクリプション= '' 名= 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

3. Upon receiving the presence stanza of type "unsubscribe" addressed to the contact, the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to" (if the contact is unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST deliver the "unsubscribe" state change notification to the contact:

「解除」型の存在スタンザを受け取る3.接触宛、連絡先のサーバは、(1)ユーザのために更新された名簿項目を含む、名簿を要求している連絡先に関連付けられたすべての利用可能なリソースに名簿プッシュを開始しなければなりません(連絡先が利用できない場合、または名簿を要求していない、連絡先のサーバは名簿の項目を変更し、その変更された項目に連絡先が名簿を要求し、次の時間を送信する必要がある場合)、「サブスクリプション」属性は「へ」の値に設定すると、 (2)コンタクトを「解除」の状態変化通知を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='to' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> < '名前= 'SomeUserにアイテムjid='user@example.com」サブスクリプション=''> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

4. Upon receiving the presence stanza of type "unsubscribe", the contact SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribed" to the user or "denying" it by sending a presence stanza of type "subscribed" to the user; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the contact's server know that it MUST no longer send notification of the subscription state change to the contact (see Section 9.4).

「解除」型の存在スタンザを受信すると、連絡先がユーザに「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。ユーザーに「加入」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、連絡先のサーバが、それはもはや(9.4節を参照してください)連絡先にサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

5. The contact's server then (1) MUST send a presence stanza of type "unsubscribed" to the user; and (2) SHOULD send unavailable presence from all of the contact's available resources to the user:

5.連絡先のサーバは、次に、(1)ユーザーに「解除」型の存在スタンザを送らなければなりません。 (2)利用者への連絡先の利用可能なリソースのすべてから利用できない存在を送る必要があります。

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

6. When the user's server receives the presence stanzas of type "unsubscribed" and "unavailable", it MUST deliver them to the user:

ユーザーのサーバーは、タイプの存在スタンザを受け取る6.「解除」と「利用できない」、それがユーザーにそれらを提供しなければなりません:

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

7. Upon receiving the presence stanza of type "unsubscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the contact or "denying" it by sending a presence stanza of type "subscribe" to the contact; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the user's server know that it MUST no longer send notification of the subscription state change to the user (see Section 9.4).

「解除」型の存在スタンザを受信すると、ユーザが連絡先に「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである7。連絡先に「購読する」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、ユーザーのサーバーは、それがもはや(9.4節を参照)ユーザーにサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

Note: Obviously this does not result in removal of the roster item from the user's roster, and the contact still has a subscription to the user's presence information. In order to both completely cancel a mutual subscription and fully remove the roster item from the user's roster, the user SHOULD update the roster item with subscription='remove' as defined under Removing a Roster Item and Cancelling All Subscriptions (Section 8.6).

注:これは明らかに、ユーザの名簿から名簿項目の除去にはならない、との接触はまだユーザーのプレゼンス情報へのサブスクリプションを持っています。完全に相互のサブスクリプションをキャンセルして、完全にユーザーの名簿から名簿の項目を削除する両方のために、ユーザーは、サブスクリプションの選手項目を削除し、すべてのサブスクリプション(8.6節)をキャンセルの下で定義された通り=「削除」で名簿の項目を更新する必要があります。

8.5. Cancelling a Subscription
8.5. 購読をキャンセル

At any time after approving a subscription request from a user, a contact MAY cancel that subscription. While the XML that the contact sends to make this happen is the same in all instances, the subsequent subscription state is different depending on the subscription state obtaining when the cancellation was sent. Both possible scenarios are described below.

ユーザーからのサブスクリプション要求を承認した後はいつでも、接触はそのサブスクリプションを取り消すことができます。接触はこれを実現するために送信XMLは、すべてのインスタンスで同じですが、その後のサブスクリプションの状態はキャンセルが送られた時に得られるサブスクリプション状態に応じて異なっています。どちらの可能なシナリオは、以下に記載されています。

8.5.1. Case #1: Cancelling When Subscription is Not Mutual
8.5.1. ケース#1:契約は相互されていない場合はキャンセル

In the first case, the user has a subscription to the contact's presence information but the contact does not have a subscription to the user's presence information (i.e., the subscription is not yet mutual).

最初のケースでは、ユーザは、連絡先のプレゼンス情報へのサブスクリプションを持っているが、接触(すなわち、サブスクリプションがまだ相互ない)ユーザのプレゼンス情報へのサブスクリプションを持っていません。

1. If the contact wants to cancel the user's subscription, the contact MUST send a presence stanza of type "unsubscribed" to the user:

1.連絡先は、ユーザのサブスクリプションをキャンセルしたい場合は、連絡先がユーザーに「解除」タイプの存在スタンザを送らなければなりません。

<presence to='user@example.com' type='unsubscribed'/>

<プレゼンスto='user@example.com」TYPE = '解除' />

2. As a result, the contact's server (1) MUST send a roster push to all of the contact's available resources that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none"; (2) MUST route the presence stanza of type "unsubscribed" to the user, first stamping the 'from' address as the bare JID (<contact@example.org>) of the contact; and (3) SHOULD send unavailable presence from all of the contact's available resources to the user:

2.その結果、連絡先のサーバは(1)」の値に設定する「サブスクリプション」属性を持つユーザのために更新名簿項目を含む、名簿を要求した連絡先の利用可能なリソースのすべてに名簿プッシュを送らなければなりません無し"; (2)MUSTルートタイプの存在スタンザをユーザーに「解除」、最初の接触の裸JID(<contact@example.org>)としてアドレス「から」スタンピング。 (3)利用者への連絡先の利用可能なリソースのすべてから利用できない存在を送る必要があります。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='none' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= 'なしの' name = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

3. Upon receiving the presence stanza of type "unsubscribed" addressed to the user, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none" (if the user is unavailable or has not requested the roster, the user's server MUST modify the roster item and send that modified item the next time the user requests the roster); (2) MUST deliver the "unsubscribed" state change notification to all of the user's available resources; and (3) MUST deliver the unavailable presence to all of the user's available resources:

「解除」型の存在スタンザを受け取る3.ユーザ宛の、ユーザのサーバは、(1)と接触するために更新名簿項目を含む、名簿を要求したユーザの利用可能なリソースの全てに名簿プッシュを開始しなければなりません「なし」の値に設定する「サブスクリプション」属性(ユーザーが利用できない場合、または名簿を要求していない場合、ユーザーのサーバーは、名簿の項目を変更し、その変更された項目に、ユーザが名簿を要求し、次の時間を送らなければなりません)。 (2)利用者の利用可能なリソースのすべてに「解除」の状態変更通知を提供しなければなりません。 (3)利用者の利用可能なリソースのすべてに使用できない存在感を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='none' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='contact@example.org」サブスクリプション= 'なしの' name = 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

4. Upon receiving the presence stanza of type "unsubscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the contact or "denying" it by sending a presence stanza of type "subscribe" to the contact;

「解除」型の存在スタンザを受信すると、ユーザが連絡先に「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。連絡先に「購読する」タイプの存在スタンザ。

       this step does not necessarily affect the subscription state (see
       Subscription States (Section 9) for details), but instead lets
       the user's server know that it MUST no longer send notification
       of the subscription state change to the user (see Section 9.4).
        
8.5.2. Case #2: Cancelling When Subscription is Mutual
8.5.2. ケース#2:契約は相互である場合にはキャンセル

In the second case, the user has a subscription to the contact's presence information and the contact also has a subscription to the user's presence information (i.e., the subscription is mutual).

後者の場合、ユーザは、連絡先のプレゼンス情報へのサブスクリプションを持っており、接触は、ユーザのプレゼンス情報へのサブスクリプションを持っている(すなわち、サブスクリプションは、相互です)。

1. If the contact wants to cancel the user's subscription, the contact MUST send a presence stanza of type "unsubscribed" to the user:

1.連絡先は、ユーザのサブスクリプションをキャンセルしたい場合は、連絡先がユーザーに「解除」タイプの存在スタンザを送らなければなりません。

<presence to='user@example.com' type='unsubscribed'/>

<プレゼンスto='user@example.com」TYPE = '解除' />

2. As a result, the contact's server (1) MUST send a roster push to all of the contact's available resources that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to"; (2) MUST route the presence stanza of type "unsubscribed" to the user, first stamping the 'from' address as the bare JID (<contact@example.org>) of the contact; and (3) SHOULD send unavailable presence from all of the contact's available resources to all of the user's available resources:

2.その結果、連絡先のサーバは(1)」の値に設定する「サブスクリプション」属性を持つユーザのために更新名簿項目を含む、名簿を要求した連絡先の利用可能なリソースのすべてに名簿プッシュを送らなければなりませんに"; (2)MUSTルートタイプの存在スタンザをユーザーに「解除」、最初の接触の裸JID(<contact@example.org>)としてアドレス「から」スタンピング。 (3)連絡先の利用可能なリソースのすべてからユーザーの利用可能なリソースのすべてに使用できない存在を送る必要があります。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='to' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> < '名前= 'SomeUserにアイテムjid='user@example.com」サブスクリプション=''> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

3. Upon receiving the presence stanza of type "unsubscribed" addressed to the user, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "from" (if the user is unavailable or has not requested the roster, the user's server MUST modify the roster item and send that modified item the next time the user requests the roster); and (2) MUST deliver the "unsubscribed" state change notification to all of the user's available resources; and (3) MUST deliver the unavailable presence to all of the user's available resources:

「解除」型の存在スタンザを受け取る3.ユーザ宛の、ユーザのサーバは、(1)と接触するために更新名簿項目を含む、名簿を要求したユーザの利用可能なリソースの全てに名簿プッシュを開始しなければなりません「から」の値に設定する「サブスクリプション」属性(ユーザーが利用できない場合、または名簿を要求していない場合、ユーザーのサーバーは、名簿の項目を変更し、その変更された項目に、ユーザが名簿を要求し、次の時間を送らなければなりません)。 (2)利用者の利用可能なリソースのすべてに「解除」の状態変化通知を提供しなければなりません。 (3)利用者の利用可能なリソースのすべてに使用できない存在感を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='from' name='MyContact'> <group>MyBuddies</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <から項目jid='contact@example.org」サブスクリプション= '' 名= 'MyContact'> <グループ> MyBuddies </グループ> </ item>の</クエリ> </ IQ>

<presence from='contact@example.org' to='user@example.com' type='unsubscribed'/>

<プレゼンスfrom='contact@example.org 'to='user@example.com' TYPE = '解除' />

<presence from='contact@example.org/resource' to='user@example.com' type='unavailable'/>

<プレゼンスfrom='contact@example.org/resource 'to='user@example.com' TYPE = '利用できません' />

4. Upon receiving the presence stanza of type "unsubscribed", the user SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "unsubscribe" to the contact or "denying" it by sending a presence stanza of type "subscribe" to the contact; this step does not necessarily affect the subscription state (see Subscription States (Section 9) for details), but instead lets the user's server know that it MUST no longer send notification of the subscription state change to the user (see Section 9.4).

「解除」型の存在スタンザを受信すると、ユーザが連絡先に「解除」型の存在スタンザを送信または送信することによって、それを「否定」によってそれを「肯定」のいずれかを介してその加入状態通知の受信を確認すべきである4。連絡先に「購読する」タイプの存在スタンザ。このステップは、必ずしも(詳細については、サブスクリプションの状態(第9節)を参照)、サブスクリプションの状態に影響を与えるが、その代わりに、ユーザーのサーバーは、それがもはや(9.4節を参照)ユーザーにサブスクリプションの状態変化の通知を送ってはならないことを知ることができますしません。

Note: Obviously this does not result in removal of the roster item from the contact's roster, and the contact still has a subscription to the user's presence information. In order to both completely cancel a mutual subscription and fully remove the roster item from the contact's roster, the contact should update the roster item with subscription='remove' as defined under Removing a Roster Item and Cancelling All Subscriptions (Section 8.6).

注:これは明らかに、連絡先の名簿から名簿項目の除去にはならない、との接触はまだユーザーのプレゼンス情報へのサブスクリプションを持っています。完全に相互のサブスクリプションをキャンセルして、完全に連絡先の名簿から名簿の項目を削除する両方のために、接触は、サブスクリプションの選手項目を削除し、すべてのサブスクリプション(8.6節)をキャンセルの下で定義された通り=「削除」で名簿の項目を更新する必要があります。

8.6. Removing a Roster Item and Cancelling All Subscriptions
8.6. 名簿の項目を削除し、すべてのサブスクリプションをキャンセル

Because there may be many steps involved in completely removing a roster item and cancelling subscriptions in both directions, the roster management protocol includes a "shortcut" method for doing so. The process may be initiated no matter what the current subscription state is by sending a roster set containing an item for the contact with the 'subscription' attribute set to a value of "remove":

完全名簿項目を除去し、両方向でのサブスクリプションを取り消すに関与する多くのステップがあり得るので、名簿管理プロトコルは、そうするための「ショートカット」方法を含みます。プロセスは関係なく、現在のサブスクリプションの状態が「削除」の値に設定する「サブスクリプション」属性との接触のためのアイテムを含む名簿セットを送信することによって、何であるかを開始することはできません。

<iq type='set' id='remove1'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='remove'/> </query> </iq>

<IQタイプ= 'セット' ID = 'remove1'> <クエリのxmlns = 'おしゃべり:IQ:名簿'> <項目jid='contact@example.org」加入= '削除/> </クエリ> </ IQ >

When the user removes a contact from his or her roster by setting the 'subscription' attribute to a value of "remove", the user's server (1) MUST automatically cancel any existing presence subscription between the user and the contact (both 'to' and 'from' as appropriate); (2) MUST remove the roster item from the user's roster and inform all of the user's available resources that have requested the roster of the roster item removal; (3) MUST inform the resource that initiated the removal of success; and (4) SHOULD send unavailable presence from all of the user's available resources to the contact:

ユーザが「削除」の値に「サブスクリプション」属性を設定することで、彼または彼女の名簿から連絡先を削除すると、ユーザーのサーバーは、(1)自動的にユーザーと「から」接触(両方の間、既存のプレゼンスサブスクリプションをキャンセルしなければなりませんそして、)必要に応じて「から」。 (2)利用者の名簿から名簿の項目を削除し、名簿項目の除去の名簿を要求した利用者の利用可能なリソースのすべてを通知しなければなりません。 (3)成功の除去を開始したリソースを通知しなければなりません。 (4)連絡先へのユーザーの利用可能なリソースのすべてから利用できない存在を送る必要があります。

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

<presence from='user@example.com' to='contact@example.org' type='unsubscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='contact@example.org' subscription='remove'/> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> </クエリ> </ IQ> <項目jid='contact@example.org」サブスクリプション= '' /削除>を

<iq type='result' id='remove1'/>

<IQタイプ= '結果' のid = 'remove1' />

<presence from='user@example.com/resource' to='contact@example.org' type='unavailable'/>

<プレゼンスfrom='user@example.com/resource 'to='contact@example.org' TYPE = '利用できません' />

Upon receiving the presence stanza of type "unsubscribe", the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to" (if the contact is unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST also deliver the "unsubscribe" state change notification to all of the contact's available resources:

「退会」タイプの存在スタンザを受信すると、連絡先のサーバは、(1)「のサブスクリプション」属性を持つユーザのために更新名簿項目を含む、名簿を要求した連絡先に関連するすべての利用可能なリソースへの名簿のプッシュを開始しなければなりません「へ」(連絡先が利用できない場合、または名簿を要求していない場合は、連絡先のサーバは名簿の項目を変更し、その変更された項目に連絡先が名簿を要求し、次の時間を送らなければなりません)の値に設定します。 (2)また、連絡先の利用可能なリソースのすべてに「配信停止」の状態変化通知を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='to' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> < '名前= 'SomeUserにアイテムjid='user@example.com」サブスクリプション=''> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribe'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

Upon receiving the presence stanza of type "unsubscribed", the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none" (if the contact is unavailable or has not requested the roster, the contact's server

「解除」タイプの存在スタンザを受信すると、連絡先のサーバは、(1)「のサブスクリプション」属性を持つユーザのために更新名簿項目を含む、名簿を要求した連絡先に関連するすべての利用可能なリソースへの名簿のプッシュを開始しなければなりません「なし」の値に設定(連絡先が利用できない場合、または名簿を要求していない場合は、連絡先のサーバー

MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST also deliver the "unsubscribe" state change notification to all of the contact's available resources:

名簿項目を修正し、その修正さアイテムに接触)が名簿を要求する次の時間を送らなければなりません。 (2)また、連絡先の利用可能なリソースのすべてに「配信停止」の状態変化通知を提供しなければなりません。

<iq type='set'> <query xmlns='jabber:iq:roster'> <item jid='user@example.com' subscription='none' name='SomeUser'> <group>SomeGroup</group> </item> </query> </iq>

<IQタイプ= '設定'> <クエリのxmlns = 'ジャバー:IQ:名簿'> <項目jid='user@example.com」サブスクリプション= 'なしの' name = 'SomeUser'> <グループ> SomeGroup </グループ> </ item>の</クエリ> </ IQ>

<presence from='user@example.com' to='contact@example.org' type='unsubscribed'/>

<プレゼンスfrom='user@example.com 'to='contact@example.org' TYPE = '解除' />

Upon receiving the presence stanza of type "unavailable" addressed to the contact, the contact's server MUST deliver the unavailable presence to all of the user's available resources:

「利用できない」タイプの存在スタンザを受信すると、連絡先のサーバは、ユーザの利用可能なリソースのすべてに使用できない存在感を提供しなければならない、連絡先宛:

<presence from='user@example.com/resource' to='contact@example.org' type='unavailable'/>

<プレゼンスfrom='user@example.com/resource 'to='contact@example.org' TYPE = '利用できません' />

Note: When the user removes the contact from the user's roster, the end state of the contact's roster is that the user is still in the contact's roster with a subscription state of "none"; in order to completely remove the roster item for the user, the contact needs to also send a roster removal request.

注意:ユーザーは、ユーザーの名簿から連絡先を削除すると、連絡先の名簿の終了状態は、ユーザーが「なし」のサブスクリプションの状態と連絡先の名簿にまだあるということです。完全にユーザーのために名簿の項目を削除するためには、接触はまた、名簿の削除要求を送信する必要があります。

9. Subscription States
9.サブスクリプションの状態

This section provides detailed information about subscription states and server handling of subscription-related presence stanzas (i.e., presence stanzas of type "subscribe", "subscribed", "unsubscribe", and "unsubscribed").

このセクションでは、サブスクリプションの状態と、サブスクリプションに関連するプレゼンススタンザ(すなわち、型の存在スタンザが「購読」、「購読」、「解除」、および「解除」)のサーバの処理についての詳細な情報を提供します。

9.1. Defined States
9.1. 定義された状態

There are nine possible subscription states, which are described here from the user's (not contact's) perspective:

ユーザーの(ない連絡先の)視点から、ここで説明されている9つの可能なサブスクリプションの状態が、あります。

1. "None" = contact and user are not subscribed to each other, and neither has requested a subscription from the other

連絡先とユーザーがお互いに加入していないされていない、どちらも他からサブスクリプションを要求した= 1「なし」

2. "None + Pending Out" = contact and user are not subscribed to each other, and user has sent contact a subscription request but contact has not replied yet

2. =接触し、ユーザがお互いに加入されていない「なし+アウト保留しない」、およびユーザーは、連絡先に登録要求を送信したが、接触はまだ答えていません

3. "None + Pending In" = contact and user are not subscribed to each other, and contact has sent user a subscription request but user has not replied yet (note: contact's server SHOULD NOT push or deliver roster items in this state, but instead SHOULD wait until contact has approved subscription request from user)

3.「なし+保留中」=接触し、ユーザーがお互いに加入されていない、との接触は、サブスクリプション要求が、ユーザが(まだ答えていないユーザーに送信されました注意:連絡先のサーバがこの状態で名簿項目を押すか、届けるべきではありませんが、代わりに)利用者からの連絡が承認するまでサブスクリプション要求を待たなければなりません

4. "None + Pending Out/In" = contact and user are not subscribed to each other, contact has sent user a subscription request but user has not replied yet, and user has sent contact a subscription request but contact has not replied yet

4.「なし+保留アウト/イン」接触し、ユーザーがサブスクリプション要求をユーザーに送信したが、ユーザーはまだ答えていない、ユーザーが連絡先に購読要求を送信したが、接触はまだ答えていない互いに、連絡先に登録されていません=

5. "To" = user is subscribed to contact (one-way)
5.は=ユーザーが接触するようにサブスクライブされている「から」(片道)

6. "To + Pending In" = user is subscribed to contact, and contact has sent user a subscription request but user has not replied yet

=ユーザーが連絡を購読している、との接触は、サブスクリプション要求が、ユーザーがまだ答えていないユーザーに送信された「+保留中では」6。

7. "From" = contact is subscribed to user (one-way)
7 =コンタクトがユーザ(一方向)に加入されている「から」

8. "From + Pending Out" = contact is subscribed to user, and user has sent contact a subscription request but contact has not replied yet

「アウト保留+から」8. =コンタクトが使用者に加入されており、ユーザは、サブスクリプション要求が、接触はまだ答えていない連絡先を送信しました

9. "Both" = user and contact are subscribed to each other (two-way)
9.「両方」=ユーザとの接触は、互いに(双方向)に加入されています
9.2. Server Handling of Outbound Presence Subscription Stanzas
9.2. アウトバウンドプレゼンスサブスクリプションのスタンザのサーバーの取り扱い

Outbound presence subscription stanzas enable the user to manage his or her subscription to the contact's presence information (via the "subscribe" and "unsubscribe" types), and to manage the contact's access to the user's presence information (via the "subscribed" and "unsubscribed" types).

アウトバウンドプレゼンスサブスクリプション・スタンザは、「「サブスクライブ」を介して(と、ユーザーのプレゼンス情報への連絡先のアクセスを管理する(「購読」と「退会」タイプを経由して)連絡先のプレゼンス情報を自分のサブスクリプションを管理することを可能にし、解除」タイプ)。

Because it is possible for the user's server and the contact's server to lose synchronization regarding subscription states, the user's server MUST without exception route all outbound presence stanzas of type "subscribe" or "unsubscribe" to the contact so that the user is able to resynchronize his or her subscription to the contact's presence information if needed.

ユーザーのサーバーと連絡先のサーバは、サブスクリプションの状態に関して同期を失うことは、例外ルートなしで、ユーザーのサーバーMUST可能ですので、ユーザが再同期することができるようにタイプのすべての発信プレゼンススタンザは、連絡先に「購読する」または「解除します」連絡先のプレゼンス情報を自分のサブスクリプションは、必要に応じて。

The user's server SHOULD NOT route a presence stanza of type "subscribed" or "unsubscribed" to the contact if the stanza does not result in a subscription state change from the user's perspective, and MUST NOT make a state change. If the stanza results in a subscription state change, the user's server MUST route the stanza to the contact and MUST make the appropriate state change. These rules are summarized in the following tables.

ユーザーのサーバースタンザは、ユーザーの視点からサブスクリプション状態の変化をもたらさない、と状態変化してはならない場合には接触へのルートタイプの「サブスクライブ」または「解除」の存在スタンザをべきではありません。サブスクリプションの状態変化でスタンザの結果は、ユーザーのサーバーMUSTルート接点にスタンザは、適切な状態の変更を行う必要があります。これらのルールは、以下の表にまとめられています。

Table 1: Recommended handling of outbound "subscribed" stanzas

表1:アウトバウンドの推奨処理はスタンザを「購読しました」

   +----------------------------------------------------------------+
   |  EXISTING STATE          |  ROUTE?  |  NEW STATE               |
   +----------------------------------------------------------------+
   |  "None"                  |  no      |  no state change         |
   |  "None + Pending Out"    |  no      |  no state change         |
   |  "None + Pending In"     |  yes     |  "From"                  |
   |  "None + Pending Out/In" |  yes     |  "From + Pending Out"    |
   |  "To"                    |  no      |  no state change         |
   |  "To + Pending In"       |  yes     |  "Both"                  |
   |  "From"                  |  no      |  no state change         |
   |  "From + Pending Out"    |  no      |  no state change         |
   |  "Both"                  |  no      |  no state change         |
   +----------------------------------------------------------------+
        

Table 2: Recommended handling of outbound "unsubscribed" stanzas

表2:アウトバウンド「解除」スタンザの推奨取り扱い

   +----------------------------------------------------------------+
   |  EXISTING STATE          |  ROUTE?  |  NEW STATE               |
   +----------------------------------------------------------------+
   |  "None"                  |  no      |  no state change         |
   |  "None + Pending Out"    |  no      |  no state change         |
   |  "None + Pending In"     |  yes     |  "None"                  |
   |  "None + Pending Out/In" |  yes     |  "None + Pending Out"    |
   |  "To"                    |  no      |  no state change         |
   |  "To + Pending In"       |  yes     |  "To"                    |
   |  "From"                  |  yes     |  "None"                  |
   |  "From + Pending Out"    |  yes     |  "None + Pending Out"    |
   |  "Both"                  |  yes     |  "To"                    |
   +----------------------------------------------------------------+
        
9.3. Server Handling of Inbound Presence Subscription Stanzas
9.3. インバウンドプレゼンスサブスクリプションのスタンザのサーバーの取り扱い

Inbound presence subscription stanzas request a subscription-related action from the user (via the "subscribe" type), inform the user of subscription-related actions taken by the contact (via the "unsubscribe" type), or enable the contact to manage the user's access to the contact's presence information (via the "subscribed" and "unsubscribed" types).

インバウンドプレゼンスサブスクリプション・スタンザは(「退会」タイプを経由して)接触により撮影したサブスクリプション関連のアクションをユーザーに通知、または管理するために、連絡先を有効にするには、(「購読」タイプを介した)ユーザーからのサブスクリプションに関連するアクションを要求します(「サブスクライブ」と「解除」のタイプを経由して)連絡先のプレゼンス情報へのユーザーのアクセス。

When the user's server receives a subscription request for the user from the contact (i.e., a presence stanza of type "subscribe"), it MUST deliver that request to the user for approval if the user has not already granted the contact access to the user's presence information and if there is no pending inbound subscription request; however, the user's server SHOULD NOT deliver the new request if there is a pending inbound subscription request, since the previous subscription request will have been recorded. If the user has already granted the contact access to the user's presence information, the user's server SHOULD auto-reply to an inbound presence stanza of type "subscribe" from the contact by sending a presence stanza of type "subscribed" to the contact on behalf of the user; this rule enables the contact to resynchronize the subscription state if needed. These rules are summarized in the following table.

ユーザーのサーバーが連絡先(すなわち、タイプの存在スタンザは、「購読」)から、ユーザのサブスクリプション要求を受信すると、ユーザーがすでにユーザーのへの連絡先へのアクセスを許可されていない場合、それは承認のためにユーザにその要求を提供しなければなりませんプレゼンス情報と保留中のインバウンドサブスクリプション要求が存在しない場合。保留中のインバウンドサブスクリプション要求がある場合、前のサブスクリプション要求が記録されていますので、ユーザーのサーバーは、新しい要求を提供すべきではありません。ユーザーは、すでにユーザーのプレゼンス情報への接触アクセスを許可している場合は、タイプのインバウンドプレゼンススタンザへの自動返信が代わって連絡先にタイプ「サブスクライブ」の存在スタンザを送信することにより、接触から「購読する」べきで、ユーザーのサーバーユーザーの;このルールは、必要に応じて、サブスクリプションの状態を再同期するために接触を可能にします。これらのルールは、以下の表にまとめられています。

Table 3: Recommended handling of inbound "subscribe" stanzas

表3:インバウンド「購読」スタンザの推奨取り扱い

   +------------------------------------------------------------------+
   |  EXISTING STATE          |  DELIVER?  |  NEW STATE               |
   +------------------------------------------------------------------+
   |  "None"                  |  yes       |  "None + Pending In"     |
   |  "None + Pending Out"    |  yes       |  "None + Pending Out/In" |
   |  "None + Pending In"     |  no        |  no state change         |
   |  "None + Pending Out/In" |  no        |  no state change         |
   |  "To"                    |  yes       |  "To + Pending In"       |
   |  "To + Pending In"       |  no        |  no state change         |
   |  "From"                  |  no *      |  no state change         |
   |  "From + Pending Out"    |  no *      |  no state change         |
   |  "Both"                  |  no *      |  no state change         |
   +------------------------------------------------------------------+
        

* Server SHOULD auto-reply with "subscribed" stanza

「サブスクライブ」スタンザを持つ*サーバSHOULD自動返信

When the user's server receives a presence stanza of type "unsubscribe" for the user from the contact, if the stanza results in a subscription state change from the user's perspective then the user's server SHOULD auto-reply by sending a presence stanza of type "unsubscribed" to the contact on behalf of the user, MUST deliver the "unsubscribe" stanza to the user, and MUST change the state. If no subscription state change results, the user's server SHOULD NOT deliver the stanza and MUST NOT change the state. These rules are summarized in the following table.

ユーザの視点から、サブスクリプションの状態変化でスタンザの結果、ユーザのサーバはタイプの存在スタンザを送信することにより、自動返信「解除する必要がある場合、ユーザのサーバは、連絡先からのユーザのために「退会」タイプの存在スタンザを受信した場合ユーザーに配信停止 『スタンザ」ユーザーの代わりに接触し、提供しなければならない』、と状態を変更する必要があります。いいえサブスクリプションの状態変化の結果場合は、ユーザーのサーバーは、スタンザを提供すべきではなく、状態を変更しないでください。これらのルールは、以下の表にまとめられています。

Table 4: Recommended handling of inbound "unsubscribe" stanzas

表4:インバウンド「退会」スタンザの推奨取り扱い

   +------------------------------------------------------------------+
   |  EXISTING STATE          |  DELIVER?  |  NEW STATE               |
   +------------------------------------------------------------------+
   |  "None"                  |  no        |  no state change         |
   |  "None + Pending Out"    |  no        |  no state change         |
   |  "None + Pending In"     |  yes *     |  "None"                  |
   |  "None + Pending Out/In" |  yes *     |  "None + Pending Out"    |
   |  "To"                    |  no        |  no state change         |
   |  "To + Pending In"       |  yes *     |  "To"                    |
   |  "From"                  |  yes *     |  "None"                  |
   |  "From + Pending Out"    |  yes *     |  "None + Pending Out     |
   |  "Both"                  |  yes *     |  "To"                    |
   +------------------------------------------------------------------+
        

* Server SHOULD auto-reply with "unsubscribed" stanza

「解除」スタンザを持つ*サーバSHOULD自動返信

When the user's server receives a presence stanza of type "subscribed" for the user from the contact, it MUST NOT deliver the stanza to the user and MUST NOT change the subscription state if there is no pending outbound request for access to the contact's presence information. If there is a pending outbound request for access to the contact's presence information and the inbound presence stanza of type "subscribed" results in a subscription state change, the user's server MUST deliver the stanza to the user and MUST change the subscription state. If the user already has access to the contact's presence information, the inbound presence stanza of type "subscribed" does not result in a subscription state change; therefore the user's server SHOULD NOT deliver the stanza to the user and MUST NOT change the subscription state. These rules are summarized in the following table.

ユーザーのサーバーは、連絡先からの利用者のために「加入」タイプの存在スタンザを受信すると、連絡先のプレゼンス情報へのアクセスのために保留中のアウトバウンド要求がない場合、それはユーザーにスタンザを提供してはならないとサブスクリプションの状態を変更しないでください。連絡先のプレゼンス情報とタイプのインバウンドプレゼンススタンザへのアクセスのための保留中のアウトバウンド要求がある場合は、サブスクリプションの状態変化の結果は、ユーザーのサーバーがユーザーにスタンザを提供しなければなりませんし、サブスクリプションの状態を変更しなければならない「購読」。ユーザーはすでに連絡先のプレゼンス情報、「サブスクライブは、」サブスクリプションの状態の変化をもたらさないタイプのインバウンドプレゼンススタンザへのアクセス権を持っている場合。したがって、ユーザーのサーバーは、ユーザーへのスタンザを提供すべきではなく、サブスクリプションの状態を変更しないでください。これらのルールは、以下の表にまとめられています。

Table 5: Recommended handling of inbound "subscribed" stanzas

表5:インバウンド「購読」スタンザの推奨取り扱い

   +------------------------------------------------------------------+
   |  EXISTING STATE          |  DELIVER?  |  NEW STATE               |
   +------------------------------------------------------------------+
   |  "None"                  |  no        |  no state change         |
   |  "None + Pending Out"    |  yes       |  "To"                    |
   |  "None + Pending In"     |  no        |  no state change         |
   |  "None + Pending Out/In" |  yes       |  "To + Pending In"       |
   |  "To"                    |  no        |  no state change         |
   |  "To + Pending In"       |  no        |  no state change         |
   |  "From"                  |  no        |  no state change         |
   |  "From + Pending Out"    |  yes       |  "Both"                  |
   |  "Both"                  |  no        |  no state change         |
   +------------------------------------------------------------------+
        

When the user's server receives a presence stanza of type "unsubscribed" for the user from the contact, it MUST deliver the stanza to the user and MUST change the subscription state if there is a pending outbound request for access to the contact's presence information or if the user currently has access to the contact's presence information. Otherwise, the user's server SHOULD NOT deliver the stanza and MUST NOT change the subscription state. These rules are summarized in the following table.

ユーザーのサーバーは、連絡先からのユーザのために、「解除」タイプの存在スタンザを受け取ると、それはユーザーにスタンザを提供しなければなりませんし、連絡先のプレゼンス情報へのアクセスのための場合、または保留中のアウトバウンド要求がある場合は、サブスクリプションの状態を変更する必要がありますユーザーは、現在、連絡先のプレゼンス情報へのアクセスを持っています。それ以外の場合は、ユーザーのサーバーは、スタンザを提供すべきではなく、サブスクリプションの状態を変更しないでください。これらのルールは、以下の表にまとめられています。

Table 6: Recommended handling of inbound "unsubscribed" stanzas

表6:インバウンド「解除」スタンザの推奨取り扱い

   +------------------------------------------------------------------+
   |  EXISTING STATE          |  DELIVER?  |  NEW STATE               |
   +------------------------------------------------------------------+
   |  "None"                  |  no        |  no state change         |
   |  "None + Pending Out"    |  yes       |  "None"                  |
   |  "None + Pending In"     |  no        |  no state change         |
   |  "None + Pending Out/In" |  yes       |  "None + Pending In"     |
   |  "To"                    |  yes       |  "None"                  |
   |  "To + Pending In"       |  yes       |  "None + Pending In"     |
   |  "From"                  |  no        |  no state change         |
   |  "From + Pending Out"    |  yes       |  "From"                  |
   |  "Both"                  |  yes       |  "From"                  |
   +------------------------------------------------------------------+
        

9.4. Server Delivery and Client Acknowledgement of Subscription Requests and State Change Notifications

9.4. サブスクリプション要求と状態変更通知のサーバーの配信とクライアントの承認

When a server receives an inbound presence stanza of type "subscribe" (i.e., a subscription request) or of type "subscribed", "unsubscribe", or "unsubscribed" (i.e., a subscription state change notification), in addition to sending the appropriate roster push (or updated roster when the roster is next requested by an available resource), it MUST deliver the request or notification to the intended recipient at least once. A server MAY require the recipient to acknowledge receipt of all state change notifications (and MUST require acknowledgement in the case of subscription requests, i.e., presence stanzas of type "subscribe"). In order to require acknowledgement, a server SHOULD send the request or notification to the recipient each time the recipient logs in, until the recipient acknowledges receipt of the notification by "affirming" or "denying" the notification, as shown in the following table:

サーバは、送信に加えて(すなわち、サブスクリプションの状態変更通知)、「解除」、(すなわち、サブスクリプション要求)またはタイプの「サブスクライブ」「サブスクライブ」「配信停止」、またはタイプのインバウンドプレゼンススタンザを受信した場合適切な名簿プッシュ(または更新された選手の選手が次の利用可能なリソースによって要求される)は、少なくとも一度目的の受信者に要求又は通知を提供しなければなりません。サーバーは、すべての状態変更通知の受信を確認するために、受信者を必要とする場合がある(とサブスクリプション要求、すなわち、タイプの存在スタンザは、「購読」の場合の承認を必要としなければなりません)。受信者が「肯定」または次の表に示すように、通知を「拒否」によって通知の受信を確認するまで、承認を必要とするために、サーバは、受信者の受信者がログインするたびに要求または通知を送信する必要があります。

Table 7: Acknowledgement of subscription state change notifications

表7:サブスクリプションの状態変更通知の謝辞

   +--------------------------------------------------+
   |  STANZA TYPE   |  ACCEPT        |  DENY          |
   +--------------------------------------------------+
   |  subscribe     |  subscribed    |  unsubscribed  |
   |  subscribed    |  subscribe     |  unsubscribe   |
   |  unsubscribe   |  unsubscribed  |  subscribed    |
   |  unsubscribed  |  unsubscribe   |  subscribe     |
   +--------------------------------------------------+
        

Obviously, given the foregoing subscription state charts, some of the acknowledgement stanzas will be routed to the contact and result in subscription state changes, while others will not. However, any such stanzas MUST result in the server's no longer sending the subscription state notification to the user.

もちろん、前述のサブスクリプションの状態チャート与えられ、確認応答スタンザの一部が接触にルーティングされ、他はありませんが、サブスクリプションの状態変化をもたらします。しかし、そのようなスタンザは、サーバーのは、もはやユーザーへのサブスクリプションの状態通知を送信するにもたらさなければなりません。

Because a user's server MUST automatically generate outbound presence stanzas of type "unsubscribe" and "unsubscribed" upon receiving a roster set with the 'subscription' attribute set to a value of "remove" (see Removing a Roster Item and Cancelling All Subscriptions (Section 8.6)), the server MUST treat a roster remove request as equivalent to sending both of those presence stanzas for purposes of determining whether to continue sending subscription state change notifications of type "subscribe" or "subscribed" to the user.

ユーザーのサーバーが自動的に(名簿項目を削除し、すべてのサブスクリプションをキャンセル参照(「削除」セクションの値に設定する「サブスクリプション」属性で設定名簿を受信したときに「配信停止」と「解除」タイプのアウトバウンド存在スタンザを生成しなければならないので、 8.6))、サーバは、ユーザに「サブスクライブ」を「購読」またはタイプのサブスクリプションの状態変更通知の送信を継続するかどうかを決定する目的のために存在スタンザの両方を送ると同等として要求を削除名簿を扱わなければなりません。

10. Blocking Communication
10.ブロッキング通信

Most instant messaging systems have found it necessary to implement some method for users to block communications from particular other users (this is also required by sections 5.1.5, 5.1.15, 5.3.2, and 5.4.10 of [IMP-REQS]). In XMPP this is done by managing one's privacy lists using the 'jabber:iq:privacy' namespace.

ほとんどのインスタントメッセージングシステムは、ユーザが特定の他のユーザからの通信をブロックすることが必要(これはまた、セクション5.1.5、5.1.15、5.3.2によって必要とされる、との5.4.10されるいくつかの方法を実施することが見出されている[IMP-REQS] )。 「:IQ:プライバシージャバー」名前空間XMPPには、これは使用して自分のプライバシーのリストを管理することにより行われます。

Server-side privacy lists enable successful completion of the following use cases:

サーバー側のプライバシーのリストは以下の使用例が正常に完了を有効にします。

o Retrieving one's privacy lists.

1のプライバシーリストを取得O。

o Adding, removing, and editing one's privacy lists.

O、追加、削除、および1つのプライバシーリストを編集します。

o Setting, changing, or declining active lists.

アクティブなリストを、設定変更、または減少O。

o Setting, changing, or declining the default list (i.e., the list that is active by default).

デフォルトのリストを、設定変更、または減少O(すなわち、デフォルトでアクティブになっているリスト)。

o Allowing or blocking messages based on JID, group, or subscription type (or globally).

許可またはJIDに基づいてメッセージをブロックO、グループ、またはサブスクリプションのタイプ(またはグローバル)。

o Allowing or blocking inbound presence notifications based on JID, group, or subscription type (or globally).

JIDに基づいて、着信プレゼンス通知を許可または遮断するO、グループ、またはサブスクリプションのタイプ(またはグローバル)。

o Allowing or blocking outbound presence notifications based on JID, group, or subscription type (or globally).

JIDに基づいてアウトバウンドプレゼンス通知を許可または遮断O、グループ、またはサブスクリプション・タイプ(またはグローバル)。

o Allowing or blocking IQ stanzas based on JID, group, or subscription type (or globally).

JID、基​​、または(グローバルまたは)サブスクリプション・タイプに基づいて、IQスタンザを許可または遮断O。

o Allowing or blocking all communications based on JID, group, or subscription type (or globally).

JIDに基づいて全ての通信を許可または遮断O、グループ、またはサブスクリプション・タイプ(またはグローバル)。

Note: Presence notifications do not include presence subscriptions, only presence information that is broadcasted to entities that are subscribed to a user's presence information. Thus this includes presence stanzas with no 'type' attribute or of type='unavailable' only.

注意:プレゼンス通知がプレゼンスサブスクリプション、ユーザーのプレゼンス情報を購読しているエンティティに放送された唯一のプレゼンス情報が含まれていません。したがって、このプレゼンスのみ=いいえ「タイプ」属性またはタイプの「利用できない」スタンザ含みます。

10.1. Syntax and Semantics
10.1. 構文とセマンティクス

A user MAY define one or more privacy lists, which are stored by the user's server. Each <list/> element contains one or more rules in the form of <item/> elements, and each <item/> element uses attributes to define a privacy rule type, a specific value to which the rule applies, the relevant action, and the place of the item in the processing order.

ユーザーは、ユーザーのサーバーに格納されている1つのまたは複数のプライバシーのリストを定義するかもしれません。各<リスト/>要素は、<商品/>要素の形で1つまたは複数のルールを含み、それぞれの<item />要素は、特定の値は、どのルールが、関連するアクションを適用するために、プライバシールールタイプを定義する属性を使用してそして、処理順序内のアイテムの場所。

The syntax is as follows:

構文は次のとおりです。

<iq> <query xmlns='jabber:iq:privacy'> <list name='foo'> <item type='[jid|group|subscription]' value='bar' action='[allow|deny]' order='unsignedInt'> [<message/>] [<presence-in/>] [<presence-out/>] [<iq/>] </item> </list> </query> </iq>

<IQ> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'FOO'> <項目タイプ= '[JID |グループ|購読]' 値= 'バー' アクション= '[|拒否許可]'注文= 'unsignedInt型'> <メッセージ/>] [<プレゼンスイン/>] [<プレゼンスアウト/>] [<IQ /> </ item>を</リスト> </クエリ> </ IQ>

If the type is "jid", then the 'value' attribute MUST contain a valid Jabber ID. JIDs SHOULD be matched in the following order:

タイプが「JID」である場合には、「の値」属性が有効なのJabber IDを含まなければなりません。たJIDは、次の順序で一致する必要があります。

1. <user@domain/resource> (only that resource matches)
1. <ユーザー@ドメイン/リソース>(のみ、そのリソースが一致しました)
2. <user@domain> (any resource matches)
2. <ユーザー@ドメイン>(任意のリソースが一致しました)
3. <domain/resource> (only that resource matches)
3. <ドメイン/リソース>(のみ、そのリソースが一致しました)

4. <domain> (the domain itself matches, as does any user@domain, domain/resource, or address containing a subdomain)

4. <ドメイン>(ドメイン自体は、一致しないような任意のユーザ@ドメイン、サブドメインを含むドメイン/リソース、またはアドレス)

If the type is "group", then the 'value' attribute SHOULD contain the name of a group in the user's roster. (If a client attempts to update, create, or delete a list item with a group that is not in the user's roster, the server SHOULD return to the client an <item-not-found/> stanza error.)

タイプは「グループ」である場合には、「の値」属性は、ユーザーの名簿にグループの名前を含むべきです。 (クライアントは、更新、作成、またはユーザーの名簿にないグループとリスト項目を削除しようとすると、サーバはクライアントの<item--見つからない/>スタンザ誤りを返すべきです。)

If the type is "subscription", then the 'value' attribute MUST be one of "both", "to", "from", or "none" as defined under Roster Syntax and Semantics (Section 7.1), where "none" includes entities that are totally unknown to the user and therefore not in the user's roster at all.

タイプが「購読」であれば選手構文およびセマンティクス(セクション7.1)の下で定義されるように、次に「値」属性は、ここで「なし」、「両方」、「に」、「から」の、または「なし」でなければなりませんまったくユーザーの名簿で、ユーザので、ないとは全く不明であるエンティティを含んでいます。

If no 'type' attribute is included, the rule provides the "fall-through" case.

NO「type」属性が含まれていない場合、ルールは「フォールスルー」ケースを提供します。

The 'action' attribute MUST be included and its value MUST be either "allow" or "deny".

「アクション」属性が含まれなければならないし、その値が「許可」または「拒否」のいずれかでなければなりません。

The 'order' attribute MUST be included and its value MUST be a non-negative integer that is unique among all items in the list. (If a client attempts to create or update a list with non-unique order values, the server MUST return to the client a <bad-request/> stanza error.)

「注文」属性が含まれなければならないと、その値は、リスト内のすべての項目の中で一意である非負の整数でなければなりません。 (クライアントは、非ユニークなオーダーの値でリストを作成または更新しようとすると、サーバーは、クライアントに<悪い要求/>スタンザ誤りを返さなければなりません。)

The <item/> element MAY contain one or more child elements that enable an entity to specify more granular control over which kinds of stanzas are to be blocked (i.e., rather than blocking all stanzas). The allowable child elements are:

<項目/>要素は、スタンザの種類(すなわち、むしろすべてのスタンザをブロックより)ブロックされるその上より細かい制御を指定するエンティティを可能にする1人の以上の子要素を含んでいてもよいです。許容子要素は以下のとおりです。

o <message/> -- blocks incoming message stanzas o <iq/> -- blocks incoming IQ stanzas o <presence-in/> -- blocks incoming presence notifications o <presence-out/> -- blocks outgoing presence notifications

O <メッセージ/> - ブロック受信IQスタンザO <プレゼンスイン/> - - ブロック着信プレゼンス通知O <プレゼンスアウト/> - ブロック発信プレゼンス通知ブロック着信メッセージは、O <IQ />をスタンザ

Within the 'jabber:iq:privacy' namespace, the <query/> child of an IQ stanza of type "set" MUST NOT include more than one child element (i.e., the stanza MUST contain only one <active/> element, one <default/> element, or one <list/> element); if a sending entity violates this rule, the receiving entity MUST return a <bad-request/> stanza error.

':IQ:ジャバープライバシー]の中で、名前空間、<問合せは、/>タイプのIQスタンザの子供は「設定」つまりは、スタンザは一つだけ<アクティブ/>要素、1が含まれなければならない(複数の子要素を含んではいけません<デフォルト/>要素、または1 <リスト/>要素)。送信エンティティは、この規則に違反している場合、受信エンティティは、<悪い要求/>スタンザ誤りを返さなければなりません。

When a client adds or updates a privacy list, the <list/> element SHOULD contain at least one <item/> child element; when a client removes a privacy list, the <list/> element MUST NOT contain any <item/> child elements.

クライアントは、プライバシーのリストを追加または更新すると、<リスト/>要素は、少なくとも一つの<item />子要素を入れておく必要があります。クライアントは、プライバシーのリストを削除するとき、<リスト/>要素は、任意の<アイテム/>子要素を含めることはできません。

When a client updates a privacy list, it must include all of the desired items (i.e., not a "delta").

クライアントは、プライバシーのリストを更新する場合は、目的のアイテム(すなわち、ない「デルタ」)の全てを含める必要があります。

10.2. Business Rules
10.2. ビジネスルール

1. If there is an active list set for a session, it affects only the session(s) for which it is activated, and only for the duration of the session(s); the server MUST apply the active list only and MUST NOT apply the default list (i.e., there is no "layering" of lists).

1セッションに設定アクティブリストが存在する場合、それが活性化されているだけセッション(複数可)に影響を与える、とのみセッション(複数可)の持続時間;サーバが唯一のアクティブリストを適用しなければなりませんし、デフォルトのリストを適用してはならない(つまり、何がリストの「重ね着」はありません)。

2. The default list applies to the user as a whole, and is processed if there is no active list set for the target session/resource to which a stanza is addressed, or if there are no current sessions for the user.

2.デフォルトのリストには、全体として、ユーザーに適用され、ターゲット・セッション/リソーススタンザがアドレス指定、またはユーザーには、現在のセッションが存在しない場合さにするためのアクティブリストが設定されていない場合に処理されます。

3. If there is no active list set for a session (or there are no current sessions for the user), and there is no default list, then all stanzas SHOULD BE accepted or appropriately processed by the server on behalf of the user in accordance with the Server Rules for Handling XML Stanzas (Section 11).

3.セッションに設定アクティブなリストがない(またはユーザーには、現在のセッションが存在しない)場合、およびデフォルトのリストが存在しない場合、すべてのスタンザが受け入れられたか、適切に基づいてユーザーに代わってサーバーによって処理されなければなりませんXMLスタンザ(セクション11)を処理するためのサーバルールを持ちます。

4. Privacy lists MUST be the first delivery rule applied by a server, superseding (1) the routing and delivery rules specified in Server Rules for Handling XML Stanzas (Section 11), and (2) the handling of subscription-related presence stanzas (and corresponding generation of roster pushes) specified in Integration of Roster Items and Presence Subscriptions (Section 8).

4.プライバシーリストは、サーバによって適用される最初の配信ルール、取って代わる必要があります(1)XMLスタンザ(セクション11)、およびサブスクリプションに関連するプレゼンススタンザの(2)の取り扱いを処理するためのサーバルールで指定されたルーティングと配信ルール(そして、名簿の対応する世代はプッシュ)名簿項目の統合とプレゼンスサブスクリプション(セクション8)で指定されました。

5. The order in which privacy list items are processed by the server is important. List items MUST be processed in ascending order determined by the integer values of the 'order' attribute for each <item/>.

5.プライバシーのリスト項目がサーバーによって処理される順序は重要です。リスト項目は、各</ item>を選択するための「順序」属性の整数値によって決定昇順で処理されなければなりません。

6. As soon as a stanza is matched against a privacy list rule, the server MUST appropriately handle the stanza in accordance with the rule and cease processing.

6.とすぐスタンザは、プライバシーリストルールと照合されると、サーバが適切にルールに従ってスタンザを処理し、処理を中止しなければなりません。

7. If no fall-through item is provided in a list, the fall-through action is assumed to be "allow".

7.何のフォールスルーの項目がリストで提供されていない場合は、フォールスルーアクションが「許可」であると想定されます。

8. If a user updates the definition for an active list, subsequent processing based on that active list MUST use the updated definition (for all resources to which that active list currently applies).

8.ユーザがアクティブリストの定義を更新する場合は、そのアクティブ・リストに基づいて、その後の処理は、(アクティブリストに現在適用されることれるすべてのリソースのために)更新された定義を使用しなければなりません。

9. If a change to the subscription state or roster group of a roster item defined in an active or default list occurs during a user's session, subsequent processing based on that list MUST take into account the changed state or group (for all resources to which that list currently applies).

すべてのリソースの9.アクティブまたはデフォルトリストに定義された名簿項目のサブスクリプションの状態や名簿のグループへの変更は、ユーザーのセッション中に発生した場合は、そのリストに基づいて、その後の処理は、アカウントに変更された状態またはグループを取る必要があります(これにそのリストには、現在)が適用されます。

10. When the definition for a rule is modified, the server MUST send an IQ stanza of type "set" to all connected resources, containing a <query/> element with only one <list/> child element, where the 'name' attribute is set to the name of the modified privacy list. These "privacy list pushes" adhere to the same semantics as the "roster pushes" used in roster management, except that only the list name itself (not the full list definition or the "delta") is pushed to the connected resources. It is up to the receiving resource to determine whether to retrieve the modified list definition, although a connected resource SHOULD do so if the list currently applies to it.

10.ルールの定義が変更されると、サーバは一つだけ<リスト/>子要素、「名前」を持つ<クエリ/>要素を含む、接続されたすべてのリソースにタイプのIQスタンザ「セット」を送らなければなりません属性が変更され、プライバシーリストの名前に設定されています。これらの唯一のリスト名自体は(ない完全なリスト定義または「デルタ」)接続のリソースにプッシュされていることを除いて、名簿の管理に使用される「名簿がプッシュ」と同じ意味に準拠し、「プライバシーのリストがプッシュ」。リストには、現在、それに適用される場合、接続のリソースがそうすべきであるが、それは、修正リスト定義を取得するかどうかを判断するために受信リソース次第です。

11. When a resource attempts to remove a list or specify a new default list while that list applies to a connected resource other than the sending resource, the server MUST return a <conflict/> error to the sending resource and MUST NOT make the requested change.

そのリストが送信リソース以外の接続のリソースに適用されている間、リソースがリストを削除するか、新しいデフォルトのリストを指定しようとすると、サーバが送信リソースに<競合/>エラーを返さなければならないと要求してはならない11。変化する。

10.3. Retrieving One's Privacy Lists
10.3. Oneのプライバシーリストを取得

Example: Client requests names of privacy lists from server:

例:クライアントがサーバからのプライバシーリストの名前を要求します。

<iq from='romeo@example.net/orchard' type='get' id='getlist1'> <query xmlns='jabber:iq:privacy'/> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'get' がID = 'getlist1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー' /> </ IQ>

Example: Server sends names of privacy lists to client, preceded by active list and default list:

例:サーバーがアクティブリスト、およびデフォルトのリストが先行し、クライアントにプライバシリストの名前を送信します。

<iq type='result' id='getlist1' to='romeo@example.net/orchard'> <query xmlns='jabber:iq:privacy'> <active name='private'/> <default name='public'/> <list name='public'/> <list name='private'/> <list name='special'/> </query> </iq>

<IQタイプ= '結果' ID = 'getlist1' to='romeo@example.net/orchard '> <クエリのxmlns =' ジャバー:IQ:プライバシー '> <アクティブ名=' プライベート '/> <デフォルト名='公共 '/> <リスト名=' 公共 '/> <リスト名=' プライベート '/> <リスト名=' 特別な '/> </クエリ> </ IQ>

Example: Client requests a privacy list from server:

例:クライアントがサーバからプライバシーのリストを要求します。

<iq from='romeo@example.net/orchard' type='get' id='getlist2'> <query xmlns='jabber:iq:privacy'> <list name='public'/> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'get' がID = 'getlist2'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '公共' /> </クエリ> < / IQ>

Example: Server sends a privacy list to client:

例:サーバーがクライアントにプライバシーのリストを送信します。

<iq type='result' id='getlist2' to='romeo@example.net/orchard'> <query xmlns='jabber:iq:privacy'> <list name='public'> <item type='jid' value='tybalt@example.com' action='deny' order='1'/> <item action='allow' order='2'/> </list> </query> </iq>

<IQタイプ= '結果' ID = 'getlist2' to='romeo@example.net/orchard '> <クエリのxmlns =' ジャバー:IQ:プライバシー '> <リスト名=' 公共 '> <項目タイプ=' JID 'value='tybalt@example.com' アクション= '拒否' オーダー= '1' /> <項目アクション= '許可' 順= '2' /> </リスト> </クエリ> </ IQ>

Example: Client requests another privacy list from server:

例:クライアントがサーバから別のプライバシーのリストを要求します。

<iq from='romeo@example.net/orchard' type='get' id='getlist3'> <query xmlns='jabber:iq:privacy'> <list name='private'/> </query> </iq>

<IQのfrom='romeo@example.net/orchard」タイプ= 'get' がID = 'getlist3'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'プライベート' /> </クエリ> < / IQ>

Example: Server sends another privacy list to client:

例:サーバーは、クライアントに別のプライバシーのリストを送信します。

<iq type='result' id='getlist3' to='romeo@example.net/orchard'> <query xmlns='jabber:iq:privacy'> <list name='private'> <item type='subscription' value='both' action='allow' order='10'/> <item action='deny' order='15'/> </list> </query> </iq>

<IQタイプ= '結果' ID = 'getlist3' to='romeo@example.net/orchard '> <クエリのxmlns =' ジャバー:IQ:プライバシー '> <リスト名=' プライベート '> <項目タイプ=' サブスクリプション'値=' 両方 'アクション= '許可' オーダー= '10 '/> <項目アクション=オーダー= '15' /> </リスト> </クエリ> </ IQを' 拒否'>

Example: Client requests yet another privacy list from server:

例:サーバーからクライアントのリクエストさらに別のプライバシーリスト:

<iq from='romeo@example.net/orchard' type='get' id='getlist4'> <query xmlns='jabber:iq:privacy'> <list name='special'/> </query> </iq>

<IQのfrom='romeo@example.net/orchard」タイプ= 'get' がID = 'getlist4'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '特別な' /> </クエリ> < / IQ>

Example: Server sends yet another privacy list to client:

例:サーバーは、クライアントにさらに別のプライバシーのリストを送信します。

<iq type='result' id='getlist4' to='romeo@example.net/orchard'> <query xmlns='jabber:iq:privacy'> <list name='special'> <item type='jid' value='juliet@example.com' action='allow' order='6'/> <item type='jid' value='benvolio@example.org' action='allow' order='7'/> <item type='jid' value='mercutio@example.org' action='allow' order='42'/> <item action='deny' order='666'/> </list> </query> </iq>

<IQタイプ= '結果' ID = 'getlist4' to='romeo@example.net/orchard '> <クエリのxmlns =' ジャバー:IQ:プライバシー '> <リスト名=' 特別な '> <項目タイプ=' JID 'value='juliet@example.com' アクション= =オーダー '許可' '6' /> <項目タイプ= 'JID' value='benvolio@example.org」アクション= '' =順番 'を可能にする7' /> <アイテムタイプ= 'JID' value='mercutio@example.org 'アクション= '/' の順序= '42 'を許可> <=オーダー' 拒否' =項目アクション '666' /> </リスト> </クエリ> </ IQ>

In this example, the user has three lists: (1) 'public', which allows communications from everyone except one specific entity (this is the default list); (2) 'private', which allows communications only with contacts who have a bidirectional subscription with the user (this is the active list); and (3) 'special', which allows communications only with three specific entities.

この例では、ユーザーは、3つのリストがあります:(1)「国民、ある特定のエンティティを除いて皆からの通信を可能にする(これはデフォルトのリストです)。 (2)ユーザーのみ(これはアクティブなリストである)との双方向のサブスクリプションを持っている連絡先との通信を可能にする、「プライベート」; (3)「特別」、唯一の3つの特定のエンティティとの通信を可能にします。

If the user attempts to retrieve a list but a list by that name does not exist, the server MUST return an <item-not-found/> stanza error to the user:

ユーザーがリストを取得しようとしたが、その名前のリストが存在しない場合、サーバーは、ユーザーに<項目-見つからない/>スタンザエラーを返す必要があります。

Example: Client attempts to retrieve non-existent list:

例:クライアントが存在しないリストを取得しようとします。

<iq to='romeo@example.net/orchard' type='error' id='getlist5'> <query xmlns='jabber:iq:privacy'> <list name='The Empty Set'/> </query> <error type='cancel'> <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQ to='romeo@example.net/orchard」タイプ= 'エラー' のid = 'getlist5'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '空のセット' /> </クエリ> <エラーの種類= 'キャンセル'>の<item-見つからないのxmlns = 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

The user is allowed to retrieve only one list at a time. If the user attempts to retrieve more than one list in the same request, the server MUST return a <bad request/> stanza error to the user:

ユーザーは、一度に一つだけのリストを取得するために許可されています。ユーザーが同じ要求に複数のリストを取得しようとすると、サーバーは、ユーザーに<悪い要求/>スタンザエラーを返す必要があります。

Example: Client attempts to retrieve more than one list:

例:クライアントが複数のリストを取得しようとします。

<iq to='romeo@example.net/orchard' type='error' id='getlist6'> <query xmlns='jabber:iq:privacy'> <list name='public'/> <list name='private'/> <list name='special'/> </query> <error type='modify'> <bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQのto='romeo@example.net/orchard 'タイプ= 'エラー' のid = 'getlist6'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '公共'/> <リスト名='プライベート '/> <リスト名=' 特別な '/> </クエリ> <エラーの種類=' 変更 '> <悪い要求のxmlns =' 壷:IETF:のparams:XML:NS:XMPP-スタンザ/> </エラー> </ IQ>

10.4. Managing Active Lists
10.4. アクティブリストの管理

In order to set or change the active list currently being applied by the server, the user MUST send an IQ stanza of type "set" with a <query/> element qualified by the 'jabber:iq:privacy' namespace that contains an empty <active/> child element possessing a 'name' attribute whose value is set to the desired list name.

空が含まれている名前空間サーバーによって現在適用されているアクティブなリストを設定または変更するためには、ユーザーは、「:IQプライバシージャバー」によって修飾<クエリ/>要素でタイプ「セット」のIQスタンザを送らなければなりません<アクティブ/>値希望リスト名に設定されている「名前」属性を持つ子要素。

Example: Client requests change of active list:

例:クライアントがアクティブリストの変更を要求します。

<iq from='romeo@example.net/orchard' type='set' id='active1'> <query xmlns='jabber:iq:privacy'> <active name='special'/> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'active1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <アクティブ名= '特別な' /> </クエリ> < / IQ>

The server MUST activate and apply the requested list before sending the result back to the client.

サーバが起動すると、クライアントに結果を送信する前に要求されたリストを適用しなければなりません。

Example: Server acknowledges success of active list change:

例:サーバーがアクティブリストの変更の成功を認めます:

<iq type='result' id='active1' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'active1' to='romeo@example.net/orchard '/>

If the user attempts to set an active list but a list by that name does not exist, the server MUST return an <item-not-found/> stanza error to the user:

ユーザーがアクティブリストを設定しようとしましたが、その名前のリストが存在しない場合、サーバはユーザへの<item--見つからない/>スタンザ誤りを返さなければなりません:

Example: Client attempts to set a non-existent list as active:

例:クライアントがアクティブとして、存在しないリストを設定しようとします。

<iq to='romeo@example.net/orchard' type='error' id='active2'> <query xmlns='jabber:iq:privacy'> <active name='The Empty Set'/> </query> <error type='cancel'> <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQ to='romeo@example.net/orchard」タイプ= 'エラー' のid = 'active2'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <アクティブ名= '空のセット' /> </クエリ> <エラーの種類= 'キャンセル'>の<item-見つからないのxmlns = 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

In order to decline the use of any active list, the connected resource MUST send an empty <active/> element with no 'name' attribute.

任意のアクティブなリストの使用を拒否するためには、接続リソースが無いの「name」属性と空の<アクティブ/>要素を送らなければなりません。

Example: Client declines the use of active lists:

例:クライアントがアクティブリストの使用を拒否します:

<iq from='romeo@example.net/orchard' type='set' id='active3'> <query xmlns='jabber:iq:privacy'> <active/> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'active3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <アクティブ/> </クエリ> </ IQ>

Example: Server acknowledges success of declining any active list:

例:サーバーは、任意のアクティブなリストの減少の成功を認めます:

<iq type='result' id='active3' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'active3' to='romeo@example.net/orchard '/>

10.5. Managing the Default List
10.5. デフォルトのリストを管理します

In order to change its default list (which applies to the user as a whole, not only the sending resource), the user MUST send an IQ stanza of type "set" with a <query/> element qualified by the 'jabber:iq:privacy' namespace that contains an empty <default/> child element possessing a 'name' attribute whose value is set to the desired list name.

(全体としてユーザーだけでなく、送信リソースに適用されます)、デフォルトのリストを変更するために、ユーザは「ジャバーによって資格<クエリ/>要素でタイプ「セット」のIQスタンザを送らなければなりません:IQを:値希望リスト名に設定されている名前 『属性プライバシー」所持空の<デフォルト/>子要素が含まれている名前空間』。

Example: User requests change of default list:

例:ユーザーは、デフォルトのリストの変更を要求します。

<iq from='romeo@example.net/orchard' type='set' id='default1'> <query xmlns='jabber:iq:privacy'> <default name='special'/> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'デフォルト1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <デフォルト名= '特別な' /> </クエリ> < / IQ>

Example: Server acknowledges success of default list change:

例:Serverは、デフォルトのリスト変更の成功を認めます:

<iq type='result' id='default1' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'デフォルト1' to='romeo@example.net/orchard '/>

If the user attempts to change which list is the default list but the default list is in use by at least one connected resource other than the sending resource, the server MUST return a <conflict/> stanza error to the sending resource:

ユーザーは、デフォルトのリストがあるリストに変更しようとしますが、デフォルトのリストが送信リソース以外の少なくとも1つの接続リソースによって使用されている場合は、サーバが送信リソースを<競合/>スタンザエラーを返す必要があります。

Example: Client attempts to change the default list but that list is in use by another resource:

例:クライアントがデフォルトのリストを変更しようとするが、そのリストは、別のリソースで使用されています。

<iq to='romeo@example.net/orchard' type='error' id='default1'> <query xmlns='jabber:iq:privacy'> <default name='special'/> </query> <error type='cancel'> <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQ to='romeo@example.net/orchard」タイプ= 'エラー' のid = 'デフォルト1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <デフォルト名= '特別な' /> </クエリ> <エラータイプ= 'キャンセル'> <コンフリクトのxmlns = 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

If the user attempts to set a default list but a list by that name does not exist, the server MUST return an <item-not-found/> stanza error to the user:

ユーザーがデフォルトのリストを設定しようとしたが、その名前のリストが存在しない場合、サーバはユーザへの<item--見つからない/>スタンザ誤りを返さなければなりません:

Example: Client attempts to set a non-existent list as default:

例:クライアントはデフォルトとして、存在しないリストを設定しようとします。

<iq to='romeo@example.net/orchard' type='error' id='default1'> <query xmlns='jabber:iq:privacy'> <default name='The Empty Set'/> </query> <error type='cancel'> <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQ to='romeo@example.net/orchard」タイプ= 'エラー' のid = 'デフォルト1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <デフォルト名= '空のセット' /> </クエリ> <エラーの種類= 'キャンセル'>の<item-見つからないのxmlns = 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

In order to decline the use of a default list (i.e., to use the domain's stanza routing rules at all times), the user MUST send an empty <default/> element with no 'name' attribute.

デフォルトのリストの使用を拒否するために、ユーザは無いの「name」属性と空の<デフォルト/>要素を送らなければなりません(すなわち、すべての回で、ドメインのスタンザルーティングルールを使用します)。

Example: Client declines the use of the default list:

例:クライアントは、デフォルトのリストの使用を拒否します:

<iq from='romeo@example.net/orchard' type='set' id='default2'> <query xmlns='jabber:iq:privacy'> <default/> </query> </iq>

<IQのfrom='romeo@example.net/orchard」タイプ= 'セット' のid = 'default2'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <デフォルト/> </クエリ> </ IQ>

Example: Server acknowledges success of declining any default list:

例:Serverは、デフォルトのリストを減少の成功を認めます:

<iq type='result' id='default2' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'default2' to='romeo@example.net/orchard '/>

If one connected resource attempts to decline the use of a default list for the user as a whole but the default list currently applies to at least one other connected resource, the server MUST return a <conflict/> error to the sending resource:

1つの接続のリソースは、全体として、ユーザが、現在は少なくとも一つの他の接続のリソースに適用されるデフォルトのリストについては、デフォルトのリストの使用を拒否しようとすると、サーバーは、送信リソースに<競合/>エラーを返す必要があります。

Example: Client attempts to decline a default list but that list is in use by another resource:

例:クライアントがデフォルトのリストを辞退しようとしたが、そのリストは、別のリソースで使用されています。

<iq to='romeo@example.net/orchard' type='error' id='default3'> <query xmlns='jabber:iq:privacy'> <default/> </query> <error type='cancel'> <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQのto='romeo@example.net/orchard 'タイプは、= 'エラー' のid = 'default3'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <デフォルト/> </クエリ> <エラーの種類=' キャンセル'> <競合のxmlns =' URN:IETF:paramsは:XML:NS:XMPP-スタンザ/> </エラー> </ IQ>

10.6. Editing a Privacy List
10.6. プライバシーリストの編集

In order to edit a privacy list, the user MUST send an IQ stanza of type "set" with a <query/> element qualified by the 'jabber:iq:privacy' namespace that contains one <list/> child element possessing a 'name' attribute whose value is set to the list name the user would like to edit. The <list/> element MUST contain one or more <item/> elements, which specify the user's desired changes to the list by including all elements in the list (not the "delta").

1 "を有する<リスト/>子要素が含まれた名前空間のプライバシーリストを編集するためには、ユーザーは、「:IQプライバシージャバー」によって修飾<クエリ/>要素とタイプのIQスタンザ「セット」を送らなければなりませんその値は、ユーザが編集したいリスト名に設定されている」属性に名前を付けます。 <リスト/>要素は、リスト内のすべての要素(ない「デルタ」)を含むことにより、リストにユーザの所望の変更を指定する1つまたは複数の<item />要素を含まなければなりません。

Example: Client edits a privacy list:

例:クライアントはプライバシーのリストを編集:

<iq from='romeo@example.net/orchard' type='set' id='edit1'> <query xmlns='jabber:iq:privacy'> <list name='public'> <item type='jid' value='tybalt@example.com' action='deny' order='3'/> <item type='jid' value='paris@example.org' action='deny' order='5'/> <item action='allow' order='68'/> </list> </query> </iq>

<IQのfrom='romeo@example.net/orchard 'タイプ= 'セット' のid = 'EDIT1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '公共'> <項目タイプ=' JID 'value='tybalt@example.com' アクション= '拒否' 順= '3' /> <アイテムタイプ= 'JID' value='paris@example.org」アクション= '' =注文を '拒否5' /> <項目アクション= '許可' の順序= '68' /> </リスト> </クエリ> </ IQ>

Example: Server acknowledges success of list edit:

例:サーバーは、リスト編集の成功を認めます:

<iq type='result' id='edit1' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'EDIT1' to='romeo@example.net/orchard '/>

Note: The value of the 'order' attribute for any given item is not fixed. Thus in the foregoing example if the user would like to add 4 items between the "tybalt@example.com" item and the "paris@example.org" item, the user's client MUST renumber the relevant items before submitting the list to the server.

注意:任意の項目の「注文」属性の値が固定されていません。ユーザが「tybalt@example.com」項目と「paris@example.org」項目間の4つの項目を追加したい場合はこのように、上記の例では、ユーザーのクライアントがサーバにリストを提出する前に、関連する項目の番号を変更しなければなりません。

The server MUST now send a "privacy list push" to all connected resources:

サーバーは現在接続されているすべてのリソースへの「プライバシーリストプッシュ」を送らなければなりません:

Example: Privacy list push on list edit:

例:リスト編集上のプライバシーリストプッシュ:

<iq to='romeo@example.net/orchard' type='set' id='push1'> <query xmlns='jabber:iq:privacy'> <list name='public'/> </query> </iq>

<IQ to='romeo@example.net/orchard」タイプ= 'セット' のid = 'PUSH1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '公共' /> </クエリ> < / IQ>

<iq to='romeo@example.net/home' type='set' id='push2'> <query xmlns='jabber:iq:privacy'> <list name='public'/> </query> </iq>

<IQ to='romeo@example.net/home」タイプ= 'セット' のid = 'PUSH2'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= '公共' /> </クエリ> < / IQ>

In accordance with the semantics of IQ stanzas defined in [XMPP-CORE], each connected resource MUST return an IQ result to the server as well:

[XMPP-CORE]で定義されたIQスタンザの意味に応じて、各接続リソースは、同様にサーバにIQ結果を返さなければなりません。

Example: Acknowledging receipt of privacy list pushes:

例:プライバシーリストを認識し領収書をプッシュ:

<iq from='romeo@example.net/orchard' type='result' id='push1'/>

<IQ from='romeo@example.net/orchard」TYPE = '結果' のid = 'PUSH1' />

<iq from='romeo@example.net/home' type='result' id='push2'/>

<IQ from='romeo@example.net/home」TYPE = '結果' のid = 'PUSH2' />

10.7. Adding a New Privacy List
10.7. 新しいプライバシー・リストの追加

The same protocol used to edit an existing list is used to create a new list. If the list name matches that of an existing list, the request to add a new list will overwrite the old one. As with list edits, the server MUST also send a "privacy list push" to all connected resources.

既存のリストを編集するために使用したのと同じプロトコルは、新しいリストを作成するために使用されます。リスト名は、既存のリストのそれと一致した場合は、新しいリストを追加する要求は、古いものを上書きします。リストの編集と同じように、サーバーにも接続されたすべてのリソースに「プライバシーリストプッシュ」を送らなければなりません。

10.8. Removing a Privacy List
10.8. プライバシーリストを削除します

In order to remove a privacy list, the user MUST send an IQ stanza of type "set" with a <query/> element qualified by the 'jabber:iq:privacy' namespace that contains one empty <list/> child element possessing a 'name' attribute whose value is set to the list name the user would like to remove.

保有する1つの空の<リスト/>子要素が含まれている名前空間のプライバシーリストを削除するために、ユーザは「プライバシー::IQジャバー」によって修飾<クエリ/>要素でタイプ「セット」のIQスタンザを送らなければなりませんその値は、ユーザーが削除したいリスト名に設定されている「名前」属性。

Example: Client removes a privacy list:

例:クライアントはプライバシーのリストを削除します。

<iq from='romeo@example.net/orchard' type='set' id='remove1'> <query xmlns='jabber:iq:privacy'> <list name='private'/> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'remove1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'プライベート' /> </クエリ> < / IQ>

Example: Server acknowledges success of list removal:

例:サーバーは、リストの除去の成功を認めます:

<iq type='result' id='remove1' to='romeo@example.net/orchard'/>

<IQタイプ= '結果' のid = 'remove1' to='romeo@example.net/orchard '/>

If a user attempts to remove a list that is currently being applied to at least one resource other than the sending resource, the server MUST return a <conflict/> stanza error to the user; i.e., the user MUST first set another list to active or default before attempting to remove it. If the user attempts to remove a list but a list by that name does not exist, the server MUST return an <item-not-found/> stanza error to the user. If the user attempts to remove more than one list in the same request, the server MUST return a <bad request/> stanza error to the user.

ユーザが現在送信リソース以外の少なくとも1つのリソースに適用されているリストを削除しようとすると、サーバは、ユーザに<コンフリクト/>スタンザエラーを返さなければなりません。つまり、ユーザーが最初にそれを削除しようとする前に、アクティブまたはデフォルトに別のリストを設定しなければなりません。ユーザーがリストを削除しようとしたが、その名前のリストが存在しない場合、サーバーは、ユーザーに<項目-見つからない/>スタンザ誤りを返さなければなりません。ユーザーが同じ要求に複数のリストを削除しようとすると、サーバーは、ユーザーに<悪い要求/>スタンザ誤りを返さなければなりません。

10.9. Blocking Messages
10.9. メッセージをブロックします

Server-side privacy lists enable a user to block incoming messages from other entities based on the entity's JID, roster group, or subscription status (or globally). The following examples illustrate the protocol. (Note: For the sake of brevity, IQ stanzas of type "result" are not shown in the following examples, nor are "privacy list pushes".)

サーバー側のプライバシーリストは、他のエンティティのJIDに基づいて、エンティティ、名簿グループ、またはサブスクリプション・ステータス(またはグローバル)からの着信メッセージをブロックすることを可能に。以下の実施例は、プロトコルを示します。 (:簡潔にするために、タイプ「結果」のIQスタンザは、以下の実施例に示されていない、また「プライバシーリストプッシュ」であることに注意してください。)

Example: User blocks based on JID:

例:JIDに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='msg1'> <query xmlns='jabber:iq:privacy'> <list name='message-jid-example'> <item type='jid' value='tybalt@example.com' action='deny' order='3'> <message/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'MSG1'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'メッセージJID-例えば'> <項目拒否「=アクション '= 'JID' value='tybalt@example.comを入力' 注文= '3'> <メッセージ/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive messages from the entity with the specified JID.

前述のリストを作成し、適用した結果として、ユーザは、指定されたJIDとエンティティからメッセージを受信しないであろう。

Example: User blocks based on roster group:

例:名簿グループに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='msg2'> <query xmlns='jabber:iq:privacy'> <list name='message-group-example'> <item type='group' value='Enemies' action='deny' order='4'> <message/> </item>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'MSG2'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'メッセージ基の例'> <項目TYPE = 'グループ' 値= '敵' アクション= '拒否' オーダー= '4'> <メッセージ/> </商品>

</list> </query> </iq>

</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive messages from any entities in the specified roster group.

前述のリストを作成し、適用した結果として、ユーザは、指定された名簿グループ内の任意のエンティティからメッセージを受信しないであろう。

Example: User blocks based on subscription type:

例:サブスクリプション・タイプに基づいて、ユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='msg3'> <query xmlns='jabber:iq:privacy'> <list name='message-sub-example'> <item type='subscription' value='none' action='deny' order='5'> <message/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'メッセージ3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'メッセージサブ例えば'> <項目注文 '拒否' = = 'サブスクリプション' 値= 'なし' アクションを入力= '5'> <メッセージ/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive messages from any entities with the specified subscription type.

上記のリストを作成し、適用した結果、ユーザーが指定したサブスクリプション型のいずれかのエンティティからのメッセージを受信しません。

Example: User blocks globally:

例:ユーザーのブロックをグローバル:

<iq from='romeo@example.net/orchard' type='set' id='msg4'> <query xmlns='jabber:iq:privacy'> <list name='message-global-example'> <item action='deny' order='6'> <message/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'MSG4'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'メッセージグローバル例えば'> <項目アクション=注文を '拒否' = '6'> <メッセージ/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive messages from any other users.

前述のリストを作成し、適用した結果として、ユーザは他のユーザからのメッセージを受信しないであろう。

10.10. Blocking Inbound Presence Notifications
10.10. インバウンドプレゼンス通知をブロック

Server-side privacy lists enable a user to block incoming presence notifications from other entities based on the entity's JID, roster group, or subscription status (or globally). The following examples illustrate the protocol.

サーバー側のプライバシーリストは、他のエンティティのJIDに基づいて、エンティティ、名簿グループ、またはサブスクリプション・ステータス(またはグローバル)からの着信プレゼンス通知をブロックすることを可能に。以下の実施例は、プロトコルを示します。

Note: Presence notifications do not include presence subscriptions, only presence information that is broadcasted to the user because the user is currently subscribed to a contact's presence information. Thus this includes presence stanzas with no 'type' attribute or of type='unavailable' only.

注意:プレゼンス通知がプレゼンスサブスクリプション、ユーザが現在連絡先のプレゼンス情報を購読しているため、ユーザーに放送された唯一のプレゼンス情報が含まれていません。したがって、このプレゼンスのみ=いいえ「タイプ」属性またはタイプの「利用できない」スタンザ含みます。

Example: User blocks based on JID:

例:JIDに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presin1'> <query xmlns='jabber:iq:privacy'> <list name='presin-jid-example'> <item type='jid' value='tybalt@example.com' action='deny' order='7'> <presence-in/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'presin1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'presin-JID-例'> <項目拒否「=アクション '= 'JID' value='tybalt@example.comを入力' 注文= '7'> <プレゼンスイン/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive presence notifications from the entity with the specified JID.

前述のリストを作成し、適用した結果として、ユーザは、指定されたJIDとエンティティからプレゼンス通知を受信しないであろう。

Example: User blocks based on roster group:

例:名簿グループに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presin2'> <query xmlns='jabber:iq:privacy'> <list name='presin-group-example'> <item type='group' value='Enemies' action='deny' order='8'> <presence-in/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'presin2'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'presin基の例'> <項目注文 '拒否' = = 'グループ' 値= '敵' アクションをTYPE = '8'> <プレゼンスイン/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive presence notifications from any entities in the specified roster group.

前述のリストを作成し、適用した結果として、ユーザは、指定された名簿グループ内の任意のエンティティからプレゼンス通知を受信しないであろう。

Example: User blocks based on subscription type:

例:サブスクリプション・タイプに基づいて、ユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presin3'> <query xmlns='jabber:iq:privacy'> <list name='presin-sub-example'> <item type='subscription' value='to' action='deny' order='9'> <presence-in/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'presin3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'presinサブ例えば'> <項目注文 '拒否' =アクション 'に' = = 'サブスクリプション' の値を入力= '9'> <プレゼンスイン/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive presence notifications from any entities with the specified subscription type.

上記のリストを作成し、適用した結果、ユーザーが指定したサブスクリプション型のいずれかのエンティティからプレゼンス通知を受信しません。

Example: User blocks globally:

例:ユーザーのブロックをグローバル:

<iq from='romeo@example.net/orchard' type='set' id='presin4'> <query xmlns='jabber:iq:privacy'> <list name='presin-global-example'> <item action='deny' order='11'> <presence-in/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'presin4'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'presin-グローバル-例'> <項目アクション= '拒否' オーダー= '11' > <存在-で/> </ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive presence notifications from any other users.

前述のリストを作成し、適用した結果として、ユーザは他のユーザからのプレゼンス通知を受信しないであろう。

10.11. Blocking Outbound Presence Notifications
10.11. アウトバウンドプレゼンス通知をブロック

Server-side privacy lists enable a user to block outgoing presence notifications to other entities based on the entity's JID, roster group, or subscription status (or globally). The following examples illustrate the protocol.

サーバー側のプライバシーリストは、他のエンティティのJIDに基づいて、エンティティ、名簿グループ、またはサブスクリプション・ステータス(またはグローバル)への発信プレゼンス通知をブロックすることを可能に。以下の実施例は、プロトコルを示します。

Note: Presence notifications do not include presence subscriptions, only presence information that is broadcasted to contacts because those contacts are currently subscribed to the user's presence information. Thus this includes presence stanzas with no 'type' attribute or of type='unavailable' only.

注意:プレゼンス通知がプレゼンスサブスクリプション、それらの連絡先が現在のユーザーのプレゼンス情報を購読しているので、連絡先に放送された唯一のプレゼンス情報が含まれていません。したがって、このプレゼンスのみ=いいえ「タイプ」属性またはタイプの「利用できない」スタンザ含みます。

Example: User blocks based on JID:

例:JIDに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presout1'> <query xmlns='jabber:iq:privacy'> <list name='presout-jid-example'> <item type='jid' value='tybalt@example.com' action='deny' order='13'> <presence-out/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'presout1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'presout-JID-例'> <項目拒否「=アクション '= 'JID' value='tybalt@example.comを入力し' オーダー= '13' > <存在アウト/> </ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not send presence notifications to the entity with the specified JID.

上記のリストを作成し、適用した結果、ユーザーが指定したJIDとエンティティにプレゼンス通知を送信しません。

Example: User blocks based on roster group:

例:名簿グループに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presout2'> <query xmlns='jabber:iq:privacy'> <list name='presout-group-example'> <item type='group' value='Enemies' action='deny' order='15'> <presence-out/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'presout2'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'presout基の例'> <項目'拒否' = = 'グループ' 値= '敵' アクションを入力するため= '15' > <プレゼンスアウト/> </ item>を</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not send presence notifications to any entities in the specified roster group.

上記のリストを作成し、適用した結果、ユーザーが指定した名簿グループ内の任意のエンティティにプレゼンス通知を送信しません。

Example: User blocks based on subscription type:

例:サブスクリプション・タイプに基づいて、ユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='presout3'> <query xmlns='jabber:iq:privacy'> <list name='presout-sub-example'> <item type='subscription' value='from' action='deny' order='17'> <presence-out/>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'presout3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'presoutサブ例えば'> <項目アクション=>順序= '17' 「を否定する」<存在アウト/>「から」= =「サブスクリプション」の値を入力します

</item> </list> </query> </iq>

</ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not send presence notifications to any entities with the specified subscription type.

上記のリストを作成し、適用した結果、ユーザーが指定したサブスクリプション型の任意のエンティティにプレゼンス通知を送信しません。

Example: User blocks globally:

例:ユーザーのブロックをグローバル:

<iq from='romeo@example.net/orchard' type='set' id='presout4'> <query xmlns='jabber:iq:privacy'> <list name='presout-global-example'> <item action='deny' order='23'> <presence-out/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'presout4'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'presout-グローバル-例'> <項目アクション= '拒否' オーダー= '23' > <存在アウト/> </ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not send presence notifications to any other users.

上記のリストを作成し、適用した結果、ユーザーは他のユーザーにプレゼンス通知を送信しません。

10.12. Blocking IQ Stanzas
10.12. IQスタンザをブロック

Server-side privacy lists enable a user to block incoming IQ stanzas from other entities based on the entity's JID, roster group, or subscription status (or globally). The following examples illustrate the protocol.

サーバー側のプライバシーリストは、他のエンティティのJIDに基づいて、エンティティ、名簿グループ、またはサブスクリプション・ステータス(またはグローバル)からの着信IQスタンザをブロックすることを可能に。以下の実施例は、プロトコルを示します。

Example: User blocks based on JID:

例:JIDに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='iq1'> <query xmlns='jabber:iq:privacy'> <list name='iq-jid-example'> <item type='jid' value='tybalt@example.com' action='deny' order='29'> <iq/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'IQ1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'IQ-JID-例'> <項目タイプ= 'JID' value='tybalt@example.com」アクションは= '' 順序= '29' > <IQ /> </ item>の</リスト> </クエリ> </ IQ>拒否

As a result of creating and applying the foregoing list, the user will not receive IQ stanzas from the entity with the specified JID.

前述のリストを作成し、適用した結果として、ユーザは、指定されたJIDとエンティティからIQスタンザを受信しません。

Example: User blocks based on roster group:

例:名簿グループに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='iq2'> <query xmlns='jabber:iq:privacy'> <list name='iq-group-example'> <item type='group' value='Enemies' action='deny' order='31'> <iq/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'IQ2'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'IQ基の例'> <項目TYPE = 'グループ' 値= '敵' アクションは=オーダー= '31' > <IQ /> </ item>を</リスト> </クエリ> </ IQ> '拒否します'

As a result of creating and applying the foregoing list, the user will not receive IQ stanzas from any entities in the specified roster group.

前述のリストを作成し、適用した結果として、ユーザは、指定された名簿グループ内の任意のエンティティからIQスタンザを受信しません。

Example: User blocks based on subscription type:

例:サブスクリプション・タイプに基づいて、ユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='iq3'> <query xmlns='jabber:iq:privacy'> <list name='iq-sub-example'> <item type='subscription' value='none' action='deny' order='17'> <iq/> </item> </list> </query> </iq>

<IQのfrom='romeo@example.net/orchard」TYPE = 'セット' のid = 'IQ3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= 'IQサブ例えば'> <項目タイプ= 'サブスクリプション' の値= 'なし' アクション= '拒否' オーダー= '17' > <IQ /> </ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive IQ stanzas from any entities with the specified subscription type.

上記のリストを作成し、適用した結果、ユーザーが指定したサブスクリプション型のいずれかのエンティティからのIQスタンザを受信しません。

Example: User blocks globally:

例:ユーザーのブロックをグローバル:

<iq from='romeo@example.net/orchard' type='set' id='iq4'> <query xmlns='jabber:iq:privacy'> <list name='iq-global-example'> <item action='deny' order='1'> <iq/> </item> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'IQ4'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'IQ-グローバル-例'> <項目アクション= '拒否' オーダー= '1'> <IQ /> </ item>の</リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive IQ stanzas from any other users.

前述のリストを作成し、適用した結果として、ユーザは他のユーザからのIQスタンザを受信しません。

10.13. Blocking All Communication
10.13. すべての通信をブロックします

Server-side privacy lists enable a user to block all stanzas from and to other entities based on the entity's JID, roster group, or subscription status (or globally). Note that this includes subscription-related presence stanzas, which are excluded by Blocking Inbound Presence Notifications (Section 10.10). The following examples illustrate the protocol.

サーバー側のプライバシーリストは、他のエンティティのJIDに基づいて、エンティティ、名簿グループ、またはサブスクリプション・ステータス(またはグローバル)からとするすべてのスタンザをブロックすることを可能に。これはインバウンドプレゼンス通知(セクション10.10)をブロックすることによって排除されるサブスクリプションに関連するプレゼンススタンザを含むことに留意されたいです。以下の実施例は、プロトコルを示します。

Example: User blocks based on JID:

例:JIDに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='all1'> <query xmlns='jabber:iq:privacy'> <list name='all-jid-example'> <item type='jid' value='tybalt@example.com' action='deny' order='23'/> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'ALL1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'すべての-JID-例'> <項目タイプ= 'JID' value='tybalt@example.com」アクションは= '>' オーダー= '23' /> </リスト> </クエリ> </ IQを拒否

As a result of creating and applying the foregoing list, the user will not receive any communications from, nor send any stanzas to, the entity with the specified JID.

前述のリストを作成し、適用した結果として、ユーザから任意の通信を受信しないであろう、また指定されたJIDと、にエンティティを任意スタンザを送ります。

Example: User blocks based on roster group:

例:名簿グループに基づいてユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='all2'> <query xmlns='jabber:iq:privacy'> <list name='all-group-example'> <item type='group' value='Enemies' action='deny' order='13'/> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'ALL2'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'すべてのグループ-例'> <項目注文 '拒否' = = 'グループ' 値= '敵' アクションを入力= '13' /> </リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive any communications from, nor send any stanzas to, any entities in the specified roster group.

前述のリストを作成し、適用した結果として、ユーザから任意の通信を受信しないであろう、また指定された名簿グループ内の任意のエンティティに任意のスタンザを送ります。

Example: User blocks based on subscription type:

例:サブスクリプション・タイプに基づいて、ユーザーのブロック:

<iq from='romeo@example.net/orchard' type='set' id='all3'> <query xmlns='jabber:iq:privacy'> <list name='all-sub-example'> <item type='subscription' value='none' action='deny' order='11'/> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」TYPE = 'セット' のid = 'ALL3'> <クエリのxmlns = 'おしゃべり:IQ:プライバシー'> <リスト名= '全てのサブ例'> <項目オーダー '拒否' = = 'サブスクリプション' の値= 'なし' アクションを入力= '11' /> </リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive any communications from, nor send any stanzas to, any entities with the specified subscription type.

上記のリストを作成し、適用した結果、利用者から任意の通信を受信しません、また指定したサブスクリプション型の任意のエンティティに任意のスタンザを送ります。

Example: User blocks globally:

例:ユーザーのブロックをグローバル:

<iq from='romeo@example.net/orchard' type='set' id='all4'> <query xmlns='jabber:iq:privacy'> <list name='all-global-example'> <item action='deny' order='7'/> </list> </query> </iq>

<IQ from='romeo@example.net/orchard」タイプ= 'セット' のid = 'all4'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'すべてのグローバル-例'> <項目アクション=順番 'を拒否する' = '7' /> </リスト> </クエリ> </ IQ>

As a result of creating and applying the foregoing list, the user will not receive any communications from, nor send any stanzas to, any other users.

前述のリストを作成し、適用した結果として、ユーザから任意の通信を受信しないであろう、また、他のユーザーに任意のスタンザを送ります。

10.14. Blocked Entity Attempts to Communicate with User
10.14. ブロックされたエンティティは、ユーザと通信しようとすると、

If a blocked entity attempts to send message or presence stanzas to the user, the user's server SHOULD silently drop the stanza and MUST NOT return an error to the sending entity.

ブロックされたエンティティは、ユーザーにメッセージやプレゼンススタンザを送信しようとした場合、ユーザーのサーバーは静かにスタンザをドロップする必要があり、送信エンティティにエラーを返してはなりません。

If a blocked entity attempts to send an IQ stanza of type "get" or "set" to the user, the user's server MUST return to the sending entity a <service-unavailable/> stanza error, since this is the standard error code sent from a client that does not understand the namespace of an IQ get or set. IQ stanzas of other types SHOULD be silently dropped by the server.

ブロックされたエンティティは、「取得」またはユーザーに「設定」タイプのIQスタンザを送信しようとすると、これは送信され、標準のエラーコードであるため、ユーザーのサーバーは、送信エンティティに<サービス利用できません/>スタンザ誤りを返さなければなりませんIQの名前空間を理解していないクライアントからの取得または設定します。他の種類のIQスタンザは静かにサーバーによって削除されるべきである(SHOULD)。

Example: Blocked entity attempts to send IQ get:

例:ブロックされたエンティティは、IQのGETを送信しようとします。

<iq type='get' to='romeo@example.net' from='tybalt@example.com/pda' id='probing1'> <query xmlns='jabber:iq:version'/> </iq>

<IQタイプ= 'get' がto='romeo@example.net 'from='tybalt@example.com/pda' ID = 'probing1'> <クエリのxmlns = 'ジャバー:IQ:バージョン' /> </ IQ>

Example: Server returns error to blocked entity:

例:サーバーがブロックされたエンティティにエラーを返します。

<iq type='error' from='romeo@example.net' to='tybalt@example.com/pda' id='probing1'> <query xmlns='jabber:iq:version'/> <error type='cancel'> <service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/> </error> </iq>

<IQタイプ= 'エラー' from='romeo@example.net 'to='tybalt@example.com/pda' ID = 'probing1'> <クエリのxmlns = 'おしゃべり:IQ:バージョン' /> <エラーの種類= 'キャンセル'> <サービス利用不可のxmlns = 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ' /> </エラー> </ IQ>

10.15. Higher-Level Heuristics
10.15. より高いレベルのヒューリスティック

When building a representation of a higher-level privacy heuristic, a client SHOULD use the simplest possible representation.

より高いレベルのプライバシーヒューリスティックの表現を構築する場合、クライアントは、できるだけ簡単な表現を使用すべきです。

For example, the heuristic "block all communications with any user not in my roster" could be constructed in any of the following ways:

たとえば、ヒューリスティック「ブロックは、私の名簿内の任意のユーザーではないとのすべての通信は、」次のいずれかの方法で構築することができます。

o allow communications from all JIDs in my roster (i.e., listing each JID as a separate list item), but block communications with everyone else

O皆で私の名簿内のすべての子供たちからの通信(すなわち、別のリスト項目として各KIDをリスト)が、ブロックの通信を許可します

o allow communications from any user who is in one of the groups that make up my roster (i.e., listing each group as a separate list item), but block communications from everyone else

O皆から私の名簿を作るグループの一つである任意のユーザからの通信(すなわち、別のリスト項目として、各グループをリスト)が、ブロックの通信を許可します

o allow communications from any user with whom I have a subscription of 'both' or 'to' or 'from' (i.e., listing each subscription value separately), but block communications from everyone else

O私は「両方」または「に」または(すなわち、個別のサブスクリプション値をリスト)が、ブロック通信「から」他の皆からのサブスクリプションを持っている人と、任意のユーザからの通信を許可します

o block communications from anyone whose subscription state is 'none'

サブスクリプションの状態「none」です誰からOブロック通信

The final representation is the simplest and SHOULD be used; here is the XML that would be sent in this case:

最終的な表現は、最も簡単であり、使用されるべきです。ここで、この場合に送信されるXMLは、次のとおりです。

<iq type='set' id='heuristic1'> <query xmlns='jabber:iq:privacy'> <list name='heuristic-example'> <item type='subscription' value='none' action='deny' order='437'/> </list> </query> </iq>

<IQタイプ= 'セット' のid = 'heuristic1'> <クエリのxmlns = 'ジャバー:IQ:プライバシー'> <リスト名= 'ヒューリスティック-例'> <項目タイプは、= 'サブスクリプション' の値= 'なし' アクション=」否定する」オーダー= '437' /> </リスト> </クエリ> </ IQ>

11. Server Rules for Handling XML Stanzas
XMLスタンザを処理するための11サーバルール

Basic routing and delivery rules for servers are defined in [XMPP-CORE]. This section defines additional rules for XMPP-compliant instant messaging and presence servers.

サーバのための基本的なルーティングと配信ルールは[XMPP-CORE]で定義されています。このセクションでは、XMPPに準拠したインスタントメッセージングとプレゼンスサーバのための追加の規則を定義します。

11.1. Inbound Stanzas
11.1. インバウンドスタンザ

If the hostname of the domain identifier portion of the JID contained in the 'to' attribute of an inbound stanza matches a hostname of the server itself and the JID contained in the 'to' attribute is of the form <user@example.com> or <user@example.com/resource>, the server MUST first apply any privacy lists (Section 10) that are in force, then follow the rules defined below:

含まれるJIDのドメイン識別子部分のホスト名がインバウンドスタンザの属性「から」に含まれるサーバ自体とJIDのホスト名と一致した場合、属性の形式は「に」<user@example.com>または<user@example.com/resource>、サーバーは、まず以下に定義されたルールに従って、施行されている任意のプライバシーリスト(第10節)を適用する必要があります。

1. If the JID is of the form <user@domain/resource> and an available resource matches the full JID, the recipient's server MUST deliver the stanza to that resource.

JIDはフォーム<ユーザー@ドメイン/リソース>であり、利用できるリソースがフルJIDと一致した場合1.受信者のサーバーは、そのリソースへのスタンザを提供しなければなりません。

2. Else if the JID is of the form <user@domain> or <user@domain/ resource> and the associated user account does not exist, the recipient's server (a) SHOULD silently ignore the stanza (i.e., neither deliver it nor return an error) if it is a presence stanza, (b) MUST return a <service-unavailable/> stanza error to the sender if it is an IQ stanza, and (c) SHOULD return a <service-unavailable/> stanza error to the sender if it is a message stanza.

エルス2. JIDはフォーム<ユーザー@ドメイン>または<ユーザー@ドメイン/リソース>であり、関連するユーザーアカウントが存在しない場合、受信者のサーバーは、(a)は黙っすなわち(スタンザを無視しない、どちらもそれを実現する必要がある場合もそれはIQスタンザであり、(C)<サービス利用不可/>スタンザエラーを返す必要がある場合、それは存在スタンザの場合)エラーを返す、(b)は、送信者に<サービス利用不可/>スタンザエラーを返さなければなりません送信者には、メッセージのスタンザである場合。

3. Else if the JID is of the form <user@domain/resource> and no available resource matches the full JID, the recipient's server (a) SHOULD silently ignore the stanza (i.e., neither deliver it nor return an error) if it is a presence stanza, (b) MUST return a <service-unavailable/> stanza error to the sender if it is an IQ stanza, and (c) SHOULD treat the stanza as if it were addressed to <user@domain> if it is a message stanza.

そうでない場合3. JIDはフォーム<ユーザー@ドメイン/リソース>であり、使用可能なリソースがいっぱいJID、受信者のサーバーは、(a)は黙っスタンザを無視すべきで一致しない場合(すなわち、それを実現しなかったり、エラーを返すどちらも)それならばそれならば、それはIQスタンザで、それが<ユーザー@ドメイン>に宛てたかのように(c)のスタンザを扱う必要がある場合(b)の送信者に、<サービス利用できません/>スタンザ誤りを返さなければならない、プレゼンススタンザでありますメッセージスタンザです。

4. Else if the JID is of the form <user@domain> and there is at least one available resource available for the user, the recipient's server MUST follow these rules:

4.そうでJIDはフォーム<ユーザー@ドメイン>であり、ユーザーに利用可能な、少なくとも1つの利用可能なリソースがある場合、これらのルールに従わなければならない受信者のサーバー:

       1.  For message stanzas, the server SHOULD deliver the stanza to
           the highest-priority available resource (if the resource did
           not provide a value for the <priority/> element, the server
           SHOULD consider it to have provided a value of zero).  If two
           or more available resources have the same priority, the
           server MAY use some other rule (e.g., most recent connect
           time, most recent activity time, or highest availability as
           determined by some hierarchy of <show/> values) to choose
           between them or MAY deliver the message to all such
           resources.  However, the server MUST NOT deliver the stanza
           to an available resource with a negative priority; if the
           only available resource has a negative priority, the server
           SHOULD handle the message as if there were no available
           resources (defined below).  In addition, the server MUST NOT
           rewrite the 'to' attribute (i.e., it MUST leave it as
           <user@domain> rather than change it to <user@domain/
           resource>).
        

2. For presence stanzas other than those of type "probe", the server MUST deliver the stanza to all available resources; for presence probes, the server SHOULD reply based on the rules defined in Presence Probes (Section 5.1.3). In addition, the server MUST NOT rewrite the 'to' attribute (i.e., it MUST leave it as <user@domain> rather than change it to <user@domain/resource>).

「プローブ」タイプのもの以外の存在スタンザ2.、サーバーは使用可能なすべてのリソースへのスタンザを提供しなければなりません。プレゼンスプローブのため、サーバは、プレゼンスプローブ(5.1.3項)で定義された規則に基づいて返信すべきです。また、サーバは(すなわち、それは<ユーザー@ドメイン>としてそれを残すのではなく、<ユーザー@ドメイン/リソース>に変更する必要があります)属性「に」に書き換えてはなりません。

3. For IQ stanzas, the server itself MUST reply on behalf of the user with either an IQ result or an IQ error, and MUST NOT deliver the IQ stanza to any of the available resources. Specifically, if the semantics of the qualifying namespace define a reply that the server can provide, the server MUST reply to the stanza on behalf of the user; if not, the server MUST reply with a <service-unavailable/> stanza error.

3. IQスタンザの場合は、サーバー自体はIQ結果やIQエラーのいずれかを持つユーザーに代わって返信しなければならない、と利用可能なリソースのいずれかにIQスタンザを提供してはなりません。予選名前空間のセマンティクスは、サーバが提供できるという返信を定義した場合具体的に、サーバは、ユーザに代わってスタンザに返信しなければなりません。ない場合は、サーバーは、<サービス利用できません/>スタンザ誤りで返答しなければなりません。

5. Else if the JID is of the form <user@domain> and there are no available resources associated with the user, how the stanza is handled depends on the stanza type:

エルス5.スタンザの処理方法、JIDはフォーム<ユーザー@ドメイン>のものであり、ユーザーに関連付けられた利用可能なリソースがない場合には、スタンザの種類によって異なります。

       1.  For presence stanzas of type "subscribe", "subscribed",
           "unsubscribe", and "unsubscribed", the server MUST maintain a
           record of the stanza and deliver the stanza at least once
           (i.e., when the user next creates an available resource); in
           addition, the server MUST continue to deliver presence
           stanzas of type "subscribe" until the user either approves or
           denies the subscription request (see also Presence
           Subscriptions (Section 5.1.6)).
        

2. For all other presence stanzas, the server SHOULD silently ignore the stanza by not storing it for later delivery or replying to it on behalf of the user.

2.他のすべての存在スタンザの場合、サーバは黙って後で配信のためにそれを保存したり、ユーザーに代わってそれに返信しないことによってスタンザを無視する必要があります。

3. For message stanzas, the server MAY choose to store the stanza on behalf of the user and deliver it when the user next becomes available, or forward the message to the user via some other means (e.g., to the user's email account). However, if offline message storage or message forwarding is not enabled, the server MUST return to the sender a <service-unavailable/> stanza error. (Note: Offline message storage and message forwarding are not defined in XMPP, since they are strictly a matter of implementation and service provisioning.)

3.メッセージスタンザの場合、サーバは、ユーザに代わってスタンザを格納し、ユーザーが次の利用可能になったときにそれを提供、または(ユーザーの電子メールアカウントに、例えば)いくつかの他の手段を介してユーザーにメッセージを転送することを選択するかもしれません。オフラインメッセージの保存やメッセージの転送が有効でない場合は、サーバが送信者に、<サービス利用できません/>スタンザ誤りを返さなければなりません。 (注:オフラインメッセージの保存とメッセージ転送がXMPPに定義されていない、彼らは厳密に実装し、サービスプロビジョニングの問題なので。)

4. For IQ stanzas, the server itself MUST reply on behalf of the user with either an IQ result or an IQ error. Specifically, if the semantics of the qualifying namespace define a reply that the server can provide, the server MUST reply to the stanza on behalf of the user; if not, the server MUST reply with a <service-unavailable/> stanza error.

IQスタンザ4.は、サーバ自体は、IQ結果またはIQエラーのいずれかをユーザに代わって応答しなければなりません。予選名前空間のセマンティクスは、サーバが提供できるという返信を定義した場合具体的に、サーバは、ユーザに代わってスタンザに返信しなければなりません。ない場合は、サーバーは、<サービス利用できません/>スタンザ誤りで返答しなければなりません。

11.2. Outbound Stanzas
11.2. アウトバウンドスタンザ

If the hostname of the domain identifier portion of the address contained in the 'to' attribute of an outbound stanza matches a hostname of the server itself, the server MUST deliver the stanza to a local entity according the rules for Inbound Stanzas (Section 11.1).

含まれるアドレスのドメイン識別子部分のホスト名がアウトバウンドスタンザの属性「に」サーバー自体のホスト名と一致する場合、サーバはインバウンドスタンザのための規則に従ってローカルエンティティにスタンザを提供しなければならない(11.1節) 。

If the hostname of the domain identifier portion of the address contained in the 'to' attribute of an outbound stanza does not match a hostname of the server itself, the server MUST attempt to route the stanza to the foreign domain. The recommended order of actions is as follows:

アドレスのドメイン識別子部分のホスト名がアウトバウンドスタンザの「から」属性は、サーバー自体のホスト名と一致しないに含まれている場合は、サーバーは外部ドメインへのルートスタンザをすることを試みなければなりません。次のようにアクションの推奨順序は次のとおりです。

1. First attempt to resolve the foreign hostname using an [SRV] Service of "xmpp-server" and Proto of "tcp", resulting in resource records such as "_xmpp-server._tcp.example.com.", as specified in [XMPP-CORE].

に指定されている、のような「_xmpp-server._tcp.example.com。」リソースレコードで、その結果、「XMPPサーバ」および「TCP」のプロトの[SRV]サービスを使用して外部ホスト名を解決する1.最初の試み[XMPP-CORE]。

2. If the "xmpp-server" address record resolution fails, attempt to resolve the "_im" or "_pres" [SRV] Service as specified in [IMP-SRV], using the "_im" Service for <message/> stanzas and the "_pres" Service for <presence/> stanzas (it is up to the implementation how to handle <iq/> stanzas). This will result in one or more resolutions of the form "_im.<proto>.example.com." or "_pres.<proto>.example.com.", where "<proto>" would be a label registered in the Instant Messaging SRV Protocol Label registry or the Presence SRV Protocol Label registry: either "_xmpp" for an XMPP-aware domain or some other IANA-registered label (e.g., "_simple") for a non-XMPP-aware domain.

<メッセージ/>スタンザのための「_im」サービスを利用して、「XMPPサーバー」アドレスレコードの解決に失敗した場合は2、「_im」または「_pres」[IMP-SRV]に指定されている[SRV]サービスを解決しようとすると、そして、<存在/>スタンザ(それは<IQ />スタンザを処理するために、どのように実装次第である)のための「_pres」サービス。これは、フォームの一の以上の解像度になります「_im。<プロト> .example.comと。」または「_pres <プロト> .example.comと。。」、ここで「<プロト>」インスタントメッセージングSRVプロトコルラベルレジストリやプレゼンスSRVプロトコルラベルレジストリに登録されたラベルのようになります。のための「_xmpp」のいずれかXMPP対応の非XMPP対応のドメインのドメインまたはいくつかの他のIANA登録ラベル(例えば、「_simple」)。

3. If both SRV address record resolutions fail, attempt to perform a normal IPv4/IPv6 address record resolution to determine the IP address using the "xmpp-server" port of 5269 registered with the IANA, as specified in [XMPP-CORE].

3.両方のSRVアドレス記録解像度が失敗した場合、[XMPP-CORE]で指定されるように、IANAに登録された5269の「XMPPサーバ」ポートを使用してIPアドレスを決定するために、通常のIPv4 / IPv6アドレスレコード解決を実行しようとします。

Administrators of server deployments are strongly encouraged to keep the _im._xmpp, _pres._xmpp, and _xmpp._tcp SRV records properly synchronized, since different implementations might perform the "_im" and "_pres" lookups before the "xmpp-server" lookup.

別の実装は、「XMPPサーバ」のルックアップの前に「_im」と「_pres」ルックアップを実行可能性があるため、サーバー展開の管理者は、強く、正しく同期_im._xmpp、_pres._xmpp、および_xmpp._tcp SRVレコードを維持することをお勧めします。

12. IM and Presence Compliance Requirements
12. IMとプレゼンスコンプライアンス要件

This section summarizes the specific aspects of the Extensible Messaging and Presence Protocol that MUST be supported by instant messaging and presence servers and clients in order to be considered compliant implementations. All such applications MUST comply with the requirements specified in [XMPP-CORE]. The text in this section specifies additional compliance requirements for instant messaging and presence servers and clients; note well that the requirements described here supplement but do not supersede the core requirements. Note also that a server or client MAY support only presence or instant messaging, and is not required to support both if only a presence service or an instant messaging service is desired.

このセクションでは、準拠した実装と見なされるために、インスタントメッセージングとプレゼンスサーバとクライアントでサポートしなければならない拡張メッセージングとプレゼンスプロトコルの特定の側面をまとめました。すべてのそのようなアプリケーションは、[XMPP-CORE]で指定された要件を遵守しなければなりません。このセクション内のテキストは、インスタントメッセージングとプレゼンスサーバとクライアントのための追加的なコンプライアンス要件を指定します。要件は、ここで補足を説明したが、コア要件に優先していないことにも注意してください。注また、サーバーまたはクライアントが唯一の存在またはインスタントメッセージングをサポートすることができ、唯一のプレゼンスサービスやインスタント・メッセージング・サービスを希望する場合は、両方をサポートするために必要とされていないこと。

12.1. Servers
12.1. サーバー

In addition to core server compliance requirements, an instant messaging and presence server MUST additionally support the following protocols: o All server-related instant messaging and presence syntax and semantics defined in this document, including presence broadcast on behalf of clients, presence subscriptions, roster storage and manipulation, privacy lists, and IM-specific routing and delivery rules

コアサーバーのコンプライアンス要件に加えて、インスタントメッセージングとプレゼンスサーバーは、さらに次のプロトコルをサポートしなければならない:この文書で定義されているすべてのサーバー関連のインスタントメッセージングとプレゼンスの構文とセマンティクスoを、クライアントに代わって存在放送、プレゼンスサブスクリプション、名簿を含みますストレージと操作、プライバシーリスト、およびIM固有のルーティングと配信ルール

12.2. Clients
12.2. クライアント

In addition to core client compliance requirements, an instant messaging and presence client MUST additionally support the following protocols:

コアクライアントのコンプライアンス要件に加えて、インスタントメッセージングとプレゼンスクライアントは、さらに次のプロトコルをサポートしなければなりません:

o Generation and handling of the IM-specific semantics of XML stanzas as defined by the XML schemas, including the 'type' attribute of message and presence stanzas as well as their child elements

O生成とメッセージおよびプレゼンスの「タイプ」属性を含むXMLスキーマで定義されたXMLスタンザのIM固有のセマンティクスの取り扱いはスタンザだけでなく、その子要素

o All client-related instant messaging syntax and semantics defined in this document, including presence subscriptions, roster management, and privacy lists

Oすべてのクライアント関連のインスタントメッセージングの構文およびセマンティクスは、プレゼンスサブスクリプション、名簿管理、およびプライバシーのリストを含む、この文書で定義されました

o End-to-end object encryption as defined in End-to-End Object Encryption in the Extensible Messaging and Presence Protocol (XMPP) [XMPP-E2E]

Oエンドツーエンドのオブジェクトの暗号化拡張メッセージングおよびプレゼンスプロトコル(XMPP)XMPP-E2E]でエンドツーエンドの暗号化オブジェクトに定義されています

A client MUST also handle addresses that are encoded as "im:" URIs as specified in [CPIM], and MAY do so by removing the "im:" scheme and entrusting address resolution to the server as specified under Outbound Stanzas (Section 11.2).

[CPIM]で指定されたURI、および「イム:」削除することによってそれを行うことがあります。「イム」クライアントもとしてエンコードされているアドレスを処理しなければならないアウトバウンドスタンザの下に指定されたスキームを、サーバにアドレス解決を委ねる(11.2節) 。

13. Internationalization Considerations
13.国際化に関する注意事項

For internationalization considerations, refer to the relevant section of [XMPP-CORE].

国際化を考慮して、[XMPP-CORE]の関連するセクションを参照。

14. Security Considerations
14.セキュリティの考慮事項

Core security considerations for XMPP are defined in the relevant section of [XMPP-CORE].

XMPP用のコアセキュリティ問題は[XMPP-CORE]の関連セクションで定義されています。

Additional considerations that apply only to instant messaging and presence applications of XMPP are defined in several places within this memo; specifically: o When a server processes an inbound stanza of any kind whose intended recipient is a user associated with one of the server's hostnames, the server MUST first apply any privacy lists (Section 10) that are in force (see Server Rules for Handling XML Stanzas (Section 11)).

XMPPのインスタントメッセージングとプレゼンスアプリケーションにのみ適用されますその他の考慮事項は、このメモの中のいくつかの場所で定義されています。特に:サーバが意図した受信者、あらゆる種類のインバウンドスタンザを処理するときは、サーバのホスト名のうちの1つに関連付けられたユーザは、O、サーバが最初に施行されている任意のプライバシーリスト(第10節)を適用する必要があります(XMLを処理するためのサーバルールを参照してくださいスタンザ(セクション11))。

o When a server processes an inbound presence stanza of type "probe" whose intended recipient is a user associated with one of the server's hostnames, the server MUST NOT reveal the user's presence information if the sender is an entity that is not authorized to receive that information as determined by presence subscriptions (see Client and Server Presence Responsibilities (Section 5.1)).

サーバが意図した受信者のサーバーのホスト名のうちの1つに関連付けられたユーザであるタイプ「プローブ」のインバウンドプレゼンススタンザを処理するとき、送信者はそれを受け取ることを許可されていないエンティティの場合にO、サーバーはユーザーのプレゼンス情報を明らかにしてはなりませんプレゼンスサブスクリプションによって決定された情報(クライアントとサーバーのプレゼンス責任(セクション5.1)を参照してください)。

o When a server processes an outbound presence stanza with no type or of type "unavailable", it MUST follow the rules defined under Client and Server Presence Responsibilities (Section 5.1) in order to ensure that such presence information is not broadcasted to entities that are not authorized to know such information.

サーバがないタイプ又は種類のアウトバウンド存在スタンザを処理するとき○「利用不可」、それはそのようなプレゼンス情報を確保するためにクライアントとサーバプレゼンスの責任(セクション5.1)の下で定義された規則に従わなければならないが、あるエンティティにブロードキャストされていませんそのような情報を知ることが許可されていません。

o When a server generates an error stanza in response to receiving a stanza for a user who does not exist, the use of the <service-unavailable/> error condition helps protect against well-known dictionary attacks, since this is the same error condition that is returned if, for instance, the namespace of an IQ child element is not understood, or if offline message storage or message forwarding is not enabled for a domain.

Oサーバが存在していないユーザーのためのスタンザの受信に応答して、エラースタンザ、これは同じエラー状態であることから、<サービス利用できません/>エラー条件は、よく知られた辞書攻撃から保護するのに役立つの使用を生成するときオフラインメッセージの保存やメッセージの転送がドメインに対して有効になっていない場合には、例えば、IQの子要素の名前空間が理解されていない、場合に返されるか、または。

15. IANA Considerations
15. IANAの考慮事項

For a number of related IANA considerations, refer to the relevant section of [XMPP-CORE].

関連IANA問題の数を、[XMPP-CORE]の関連するセクションを参照。

15.1. XML Namespace Name for Session Data
15.1. セッションデータのXML名前空間名

A URN sub-namespace for session-related data in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in The IETF XML Registry [XML-REG].)

次のように拡張メッセージングおよびプレゼンスプロトコル(XMPP)、セッション関連のデータのためのURNサブ名前空間が定義されています。 (この名前空間名は、IETF XMLレジストリ[XML-REG]で定義されたフォーマットに準拠します)。

URI: urn:ietf:params:xml:ns:xmpp-session Specification: RFC 3921 Description: This is the XML namespace name for session-related data in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3921. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

URI:URN:IETF:のparams:XML:NS:XMPPセッション仕様:RFC 3921の説明:RFC 3921.登録者の接触によって定義されている。これは、拡張可能なメッセージングおよびプレゼンスプロトコル(XMPP)でのセッション関連データのXML名前空間名です。 :IETF、XMPPワーキンググループ、<xmppwg@jabber.org>

15.2. Instant Messaging SRV Protocol Label Registration
15.2. インスタントメッセージングSRVプロトコルラベル登録

Address Resolution for Instant Messaging and Presence [IMP-SRV] defines an Instant Messaging SRV Protocol Label registry for protocols that can provide services that conform to the "_im" SRV Service label. Because XMPP is one such protocol, the IANA registers the "_xmpp" protocol label in the appropriate registry, as follows:

インスタントメッセージングとプレゼンス[IMP-SRV]のためのアドレス解決は「_im」SRVサービスラベルに準拠したサービスを提供できるプロトコルのためのインスタントメッセージングSRVプロトコルラベルレジストリを定義します。 XMPPは、そのようなプロトコルの1つであるので、以下のように、IANAは、適切なレジストリに「_xmpp」プロトコルラベルを登録します。

Protocol label: _xmpp Specification: RFC 3921 Description: Instant messaging protocol label for the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3921. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

プロトコルラベル:_xmpp仕様:RFC 3921の説明:拡張メッセージングおよびプレゼンスプロトコル(XMPP)RFC 3921.登録者の接触によって定義されているインスタントメッセージングプロトコルラベル:IETF、XMPPワーキンググループ、<xmppwg@jabber.org>

15.3. Presence SRV Protocol Label Registration
15.3. プレゼンスSRVプロトコルラベル登録

Address Resolution for Instant Messaging and Presence [IMP-SRV] defines a Presence SRV Protocol Label registry for protocols that can provide services that conform to the "_pres" SRV Service label. Because XMPP is one such protocol, the IANA registers the "_xmpp" protocol label in the appropriate registry, as follows:

インスタントメッセージングとプレゼンスのためのアドレス解決[IMP-SRV]は「_pres」SRVサービスラベルに準拠したサービスを提供できるプロトコルのためのプレゼンスSRVプロトコルラベルレジストリを定義します。 XMPPは、そのようなプロトコルの1つであるので、以下のように、IANAは、適切なレジストリに「_xmpp」プロトコルラベルを登録します。

Protocol label: _xmpp Specification: RFC 3921 Description: Presence protocol label for the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3921. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

プロトコルラベル:_xmpp仕様:RFC 3921の説明:RFC 3921.登録者の接触によって定義されている拡張メッセージングおよびプレゼンスプロトコル(XMPP)のプレゼンスプロトコルラベル:IETF、XMPPワーキンググループ、<xmppwg@jabber.org>

16. References
16.参考文献
16.1. Normative References
16.1. 引用規格

[CPIM] Peterson, J., "Common Profile for Instant Messaging (CPIM)", RFC 3860, August 2004.

[CPIM]ピーターソン、J.、 "インスタントメッセージングのための共通プロファイル(CPIM)"、RFC 3860、2004年8月。

[IMP-REQS] Day, M., Aggarwal, S., Mohr, G., and J. Vincent, "Instant Messaging/Presence Protocol Requirements", RFC 2779, February 2000.

[IMP-REQS日目、M.、アガルワル、S.、モール、G.、およびJ.ヴィンセント、 "インスタントメッセージング/プレゼンスプロトコル要件"、RFC 2779、2000年2月。

[IMP-SRV] Peterson, J., "Address Resolution for Instant Messaging and Presence", RFC 3861, August 2004.

[IMP-SRV]ピーターソン、J.、 "インスタントメッセージングとプレゼンスのためのアドレス解決"、RFC 3861、2004年8月。

[SRV] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.

[SRV] Gulbrandsenの、A.、いるVixie、P.、およびL. Esibov、 "サービスの場所を特定するためのDNS RR(DNSのSRV)"、RFC 2782、2000年2月。

[TERMS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[用語]ブラドナーの、S.は、BCP 14、RFC 2119、1997年3月の "RFCsにおける使用のためのレベルを示すために"。

[XML] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler, "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC-xml, October 2000, <http://www.w3.org/TR/REC-xml>.

[XML]ブレイ、T.、パオリ、J.、Sperberg-マックィーン、C.、およびE. MALER、 "拡張マークアップ言語(XML)1.0(第2版)"、W3C REC-xmlの、2000年10月、<HTTP: //www.w3.org/TR/REC-xml>。

[XML-NAMES] Bray, T., Hollander, D., and A. Layman, "Namespaces in XML", W3C REC-xml-names, January 1999, <http://www.w3.org/TR/REC-xml-names>.

[XML-NAMES]ブレイ、T.、オランダ、D.、およびA.素人、 "XMLで名前空間"、W3C REC-XML-名、1999年1月、<http://www.w3.org/TR/REC -xml-名>。

[XMPP-CORE] Saint-Andre, P., "Extensible Messaging and Presence Protocol (XMPP): Core", RFC 3920, October 2004.

[XMPP-CORE]サンアンドレ、P.、 "拡張メッセージングおよびプレゼンスプロトコル(XMPP):コア"、RFC 3920、2004年10月。

[XMPP-E2E] Saint-Andre, P., "End-to-End Object Encryption in the Extensible Messaging and Presence Protocol (XMPP)", RFC 3923, October 2004.

[XMPP-E2E]サンアンドレ、P.、 "拡張メッセージングおよびプレゼンスプロトコル(XMPP)でのエンドツーエンドのオブジェクトの暗号化"、RFC 3923、2004年10月。

16.2. Informative References
16.2. 参考文献

[IMP-MODEL] Day, M., Rosenberg, J., and H. Sugano, "A Model for Presence and Instant Messaging", RFC 2778, February 2000.

[IMP-MODEL]日、M.、ローゼンバーグ、J.、およびH.菅野、 "プレゼンスとインスタントメッセージングのためのモデル"、RFC 2778、2000年2月。

[IRC] Oikarinen, J. and D. Reed, "Internet Relay Chat Protocol", RFC 1459, May 1993.

[IRC] Oikarinen、J.とD.リード、 "インターネットリレーチャットプロトコル"、RFC 1459、1993年5月。

[JEP-0054] Saint-Andre, P., "vcard-temp", JSF JEP 0054, March 2003.

[JEP-0054]サンアンドレ、P.、 "vCardの-TEMP"、JSF JEP 0054、2003年3月。

[JEP-0077] Saint-Andre, P., "In-Band Registration", JSF JEP 0077, August 2004.

[JEP-0077]サンアンドレ、P.、 "インバンド登録"、JSF JEP 0077、2004年8月。

[JEP-0078] Saint-Andre, P., "Non-SASL Authentication", JSF JEP 0078, July 2004.

[JEP-0078]サンアンドレ、P.、 "非SASL認証"、JSF JEP 0078、2004年7月。

[JSF] Jabber Software Foundation, "Jabber Software Foundation", <http://www.jabber.org/>.

[JSF]のJabber Software Foundationが、 "Jabberのソフトウェア財団"、<http://www.jabber.org/>。

[VCARD] Dawson, F. and T. Howes, "vCard MIME Directory Profile", RFC 2426, September 1998.

[VCARD]ドーソン、F.とT.ハウズ、 "vCardのMIMEディレクトリプロフィール"、RFC 2426、1998年9月。

[XML-REG] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.

[XML-REG] Mealling、M.、 "IETF XMLレジストリ"、BCP 81、RFC 3688、2004年1月。

Appendix A. vCards

付録A. vCardを

Sections 3.1.3 and 4.1.4 of [IMP-REQS] require that it be possible to retrieve out-of-band contact information for other users (e.g., telephone number or email address). An XML representation of the vCard specification defined in RFC 2426 [VCARD] is in common use within the Jabber community to provide such information but is out of scope for XMPP (documentation of this protocol is contained in [JEP-0054], published by the Jabber Software Foundation [JSF]).

セクション[IMP-REQS]の3.1.3および4.1.4は、他のユーザ(例えば、電話番号または電子メールアドレス)のために、帯域外の連絡先情報を取得することが可能であることを必要とします。 RFC 2426 [VCARD]で定義されたvCard仕様のXML表現は、そのような情報を提供するために、Jabberのコミュニティ内で一般的に使用しているが、(このプロトコルのドキュメントはによって出版、[JEP-0054]に含まれているXMPPの範囲外でありますJabberのソフトウェア財団[JSF])。

Appendix B. XML Schemas

付録B. XMLスキーマ

The following XML schemas are descriptive, not normative. For schemas defining the core features of XMPP, refer to [XMPP-CORE].

次のXMLスキーマは規範的、記述的ではありません。 XMPPのコア機能を定義するスキーマは、[XMPP-CORE]を指します。

B.1 jabber:client

クライアント:ジャバーB.1

<?xml version='1.0' encoding='UTF-8'?>

<?xmlのバージョン= '1.0' エンコーディング= 'UTF-8'?>

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='jabber:client' xmlns='jabber:client' elementFormDefault='qualified'>

<XS:スキーマのxmlns:XSの= 'のhttp://www.w3.org/2001/XMLSchema' のtargetNamespace = 'おしゃべり:クライアントののxmlns ='おしゃべり:クライアントのelementFormDefault要素= '資格'>

<xs:import namespace='urn:ietf:params:xml:ns:xmpp-stanzas'/>

<XS:インポート名前空間= 'URN:IETF:のparams:XML:NS:XMPP-スタンザ' />

<xs:element name='message'> <xs:complexType> <xs:sequence> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='subject'/> <xs:element ref='body'/> <xs:element ref='thread'/> </xs:choice> <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> <xs:element ref='error' minOccurs='0'/>

<XS:要素名= 'メッセージ'> <XS:complexTypeの> <XS:配列> <XS:選択のminOccurs = '0' のmaxOccurs = '無制限'> <XS:要素REF = '主題' /> <XS:要素REF = '体' /> <XS:要素REF = 'スレッド' /> </ XS:選択> <XS:任意の名前空間= '##他の' minOccurs属性= '0' がのmaxOccurs = '無制限' /> <XS:要素REF = 'エラー' のminOccurs = '0' />

</xs:sequence> <xs:attribute name='from' type='xs:string' use='optional'/> <xs:attribute name='id' type='xs:NMTOKEN' use='optional'/> <xs:attribute name='to' type='xs:string' use='optional'/> <xs:attribute name='type' use='optional' default='normal'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='chat'/> <xs:enumeration value='error'/> <xs:enumeration value='groupchat'/> <xs:enumeration value='headline'/> <xs:enumeration value='normal'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

</ XS:シーケンス> <XS:属性名=タイプ= 'XS:文字列' 'から' 使用= 'オプション' /> <XS:属性名= 'ID' タイプ= 'XS:NMTOKEN' 使用= 'オプション' /> <XS:タイプ= 'XS:文字列' 'に' 属性名=使用= 'オプション' /> <XS:属性名= 'type' を使用= 'オプションの' デフォルト= '通常'> <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= 'チャット' /> <XS:列挙値= 'エラー' /> <XS:列挙値= 'グループチャット' /> <XS:列挙値= '見出し' /> <XS:列挙値= '正常' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性REF = 'のxml:langの' 使用= 'オプション「/> </ XS:complexTypeの> </ XS:要素>

<xs:element name='body'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '体'> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= 'XS:文字列'> <XS:属性REF = 'のxml:langの' 使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='subject'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '被験者'> <XS:complexTypeの> <XS:simpleContentを> <XS:拡張ベース= 'のxs:string' は> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='thread' type='xs:NMTOKEN'/>

<XS:要素名= 'スレッドのタイプ= 'XS:NMTOKEN'/>

<xs:element name='presence'>

<XS:要素名= '存在'>

<xs:complexType> <xs:sequence> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='show'/> <xs:element ref='status'/> <xs:element ref='priority'/> </xs:choice> <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> <xs:element ref='error' minOccurs='0'/> </xs:sequence> <xs:attribute name='from' type='xs:string' use='optional'/> <xs:attribute name='id' type='xs:NMTOKEN' use='optional'/> <xs:attribute name='to' type='xs:string' use='optional'/> <xs:attribute name='type' use='optional'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='error'/> <xs:enumeration value='probe'/> <xs:enumeration value='subscribe'/> <xs:enumeration value='subscribed'/> <xs:enumeration value='unavailable'/> <xs:enumeration value='unsubscribe'/> <xs:enumeration value='unsubscribed'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

<XS:complexTypeの> <XS:シーケンス> <XS:選択肢のminOccurs = '0' のmaxOccurs = '無制限'> <XS:要素REF = 'ショー' /> <XS:要素REF = '状態' /> <XS:要素REF = '優先' /> </ XS:選択> <XS:任意の名前空間= '##他の' のminOccurs = '0' ののmaxOccurs = '無制限' /> <XS:要素REF = 'エラー' のminOccurs = '0 '/> </ XS:シーケンス> <XS:属性名='「タイプ= 'XSから:文字列' 使用= 'オプション' /> <XS:属性名は= 'ID' タイプ= 'のxs:NMTOKEN' 使用= XS </> 'オプション':属性名=タイプ= 'のxs:文字列' 'から' 使用= 'オプション' /> <XS:属性名= 'type' を使用= 'オプション'> <XS:単純> <XS :制限基地= 'のxs:NCNameで'> <XS:列挙値= 'エラー' /> <XS:列挙値= 'プローブ' /> <XS:列挙値= '購読' /> <XS:列挙値=」加入 '/> <XS:列挙値=' 利用できない '/> <XS:列挙値=' 解除 '/> <XS:列挙値=' 解除 '/> </ XS:制限> </ XS:simpleTypeの> < / XS:属性> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS:complexTypeの> </ XS:要素>

<xs:element name='show'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='away'/> <xs:enumeration value='chat'/> <xs:enumeration value='dnd'/> <xs:enumeration value='xa'/> </xs:restriction> </xs:simpleType>

<XS:要素名= '表示'> <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= '離れる' /> <XS:列挙値= 'チャット' /> < XS:列挙値= 'DND' /> <XS:列挙値= 'XA' /> </ XS:制限> </ XS:simpleTypeの>

</xs:element>

</ XS:要素>

<xs:element name='status'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '状態'> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= 'のxs:文字列'> <XS:属性REF = 'のxml:langの' 使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='priority' type='xs:byte'/>

<XS:要素名= '優先' タイプの= 'XS:バイト' />

<xs:element name='iq'> <xs:complexType> <xs:sequence> <xs:any namespace='##other' minOccurs='0'/> <xs:element ref='error' minOccurs='0'/> </xs:sequence> <xs:attribute name='from' type='xs:string' use='optional'/> <xs:attribute name='id' type='xs:NMTOKEN' use='required'/> <xs:attribute name='to' type='xs:string' use='optional'/> <xs:attribute name='type' use='required'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='error'/> <xs:enumeration value='get'/> <xs:enumeration value='result'/> <xs:enumeration value='set'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

<XS:要素名= 'IQ'> <XS:complexTypeの> <XS:配列> <XS:任意の名前空間= '##その他' のminOccurs = '0' /> <XS:要素REF = 'エラー' のminOccurs =」 0 '/> </ XS:配列> <XS:属性名='「TYPE = 'XSから:文字列' 使用= '任意' /> <XS:属性名= 'ID' TYPE = 'のxs:NMTOKEN' 使用使用= 'オプション' /> <XS:属性名= 'type' を使用= '必要'> <XS:単純> <= '必要' /> <XS::=タイプ= '文字列XS' 'に' 属性名XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= 'エラー' /> <XS:列挙値= '入手' /> <XS:列挙値= '結果' /> <XS:列挙値= 'セット' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS:complexTypeの> </ XS :要素>

<xs:element name='error'> <xs:complexType> <xs:sequence xmlns:err='urn:ietf:params:xml:ns:xmpp-stanzas'>

<XS:要素名= 'エラー'> <XS:complexTypeの> <XS:配列のxmlns:=誤る 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ'>

<xs:group ref='err:stanzaErrorGroup'/> <xs:element ref='err:text' minOccurs='0'/> </xs:sequence> <xs:attribute name='code' type='xs:byte' use='optional'/> <xs:attribute name='type' use='required'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='auth'/> <xs:enumeration value='cancel'/> <xs:enumeration value='continue'/> <xs:enumeration value='modify'/> <xs:enumeration value='wait'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element>

<XS:グループREF = 'ERR:stanzaErrorGroup' /> <XS:要素REF = 'ERR:テキスト' のminOccurs = '0' /> </ XS:配列> <XS:属性名= 'コード' TYPE = 'XS :バイト '使用= '任意'/> <XS:属性名= '必要なタイプ' 使用= ''> <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値=' AUTHを'/> <XS:列挙値=' キャンセル '/> <XS:列挙値を=' 継続 '/> <XS:列挙値を=' 変更 '/> <XS:列挙値=' 待つ '/> </ XS :制限> </ XS:単純> </ XS:属性> </ XS:complexTypeの> </ XS:要素>

</xs:schema>

</ XS:スキーマ>

B.2 jabber:server

B.2ジャバー:サーバー

<?xml version='1.0' encoding='UTF-8'?>

<?xmlのバージョン= '1.0' エンコーディング= 'UTF-8'?>

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='jabber:server' xmlns='jabber:server' elementFormDefault='qualified'>

<XS:スキーマのxmlns:XSの= 'のhttp://www.w3.org/2001/XMLSchema' のtargetNamespace = 'おしゃべり:サーバののxmlns ='おしゃべり:サーバのelementFormDefault要素= '資格'>

<xs:import namespace='urn:ietf:params:xml:ns:xmpp-stanzas'/>

<XS:インポート名前空間= 'URN:IETF:のparams:XML:NS:XMPP-スタンザ' />

<xs:element name='message'> <xs:complexType> <xs:sequence> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='subject'/> <xs:element ref='body'/> <xs:element ref='thread'/> </xs:choice> <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> <xs:element ref='error' minOccurs='0'/> </xs:sequence>

<XS:要素名= 'メッセージ'> <XS:complexTypeの> <XS:配列> <XS:選択のminOccurs = '0' のmaxOccurs = '無制限'> <XS:要素REF = '主題' /> <XS:要素REF = '体' /> <XS:要素REF = 'スレッド' /> </ XS:選択> <XS:任意の名前空間= '##他の' minOccurs属性= '0' がのmaxOccurs = '無制限' /> <XS:要素REF = 'エラー' のminOccurs = '0' /> </ XS:配列>

<xs:attribute name='from' type='xs:string' use='required'/> <xs:attribute name='id' type='xs:NMTOKEN' use='optional'/> <xs:attribute name='to' type='xs:string' use='required'/> <xs:attribute name='type' use='optional' default='normal'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='chat'/> <xs:enumeration value='error'/> <xs:enumeration value='groupchat'/> <xs:enumeration value='headline'/> <xs:enumeration value='normal'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

<XS:属性名= 'ID' タイプ= 'のxs:NMTOKEN' 使用= 'オプション' /> <XS:属性<使用= '必要' / XS::タイプ= '文字列XS' 'から' 属性名=>は名前=タイプ= 'XS:文字列' 'から' 使用= '必要' /> <XS:属性名= 'type' を使用= 'オプションの' デフォルト= '通常'> <XS:単純> <XS:制限ベース= 'XS:NCNameで'> <XS:列挙値= 'チャット' /> <XS:列挙値= 'エラー' /> <XS:列挙値= 'グループチャット' /> <XS:列挙値= '見出し' /> <XS:列挙値= '正常' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS :complexTypeの> </ XS:要素>

<xs:element name='body'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '体'> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= 'XS:文字列'> <XS:属性REF = 'のxml:langの' 使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='subject'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '被験者'> <XS:complexTypeの> <XS:simpleContentを> <XS:拡張ベース= 'のxs:string' は> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='thread' type='xs:NMTOKEN'/>

<XS:要素名= 'スレッドのタイプ= 'XS:NMTOKEN'/>

<xs:element name='presence'> <xs:complexType>

<XS:要素名= '存在'> <XS:complexTypeの>

<xs:sequence> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='show'/> <xs:element ref='status'/> <xs:element ref='priority'/> </xs:choice> <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> <xs:element ref='error' minOccurs='0'/> </xs:sequence> <xs:attribute name='from' type='xs:string' use='required'/> <xs:attribute name='id' type='xs:NMTOKEN' use='optional'/> <xs:attribute name='to' type='xs:string' use='required'/> <xs:attribute name='type' use='optional'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='error'/> <xs:enumeration value='probe'/> <xs:enumeration value='subscribe'/> <xs:enumeration value='subscribed'/> <xs:enumeration value='unavailable'/> <xs:enumeration value='unsubscribe'/> <xs:enumeration value='unsubscribed'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

<XS:シーケンス> <XS:選択肢のminOccurs = '0' のmaxOccurs = '無制限'> <XS:要素REF = 'ショー' /> <XS:要素REF = '状態' /> <XS:要素REF = '優先'/> </ XS:選択> <XS:任意の名前空間=' ##他の」のminOccurs = '0' のmaxOccurs = '無制限' /> <XS:要素REF = 'エラー' のminOccurs = '0' /> </ XS:使用= '必要' /> <XS:属性名= 'ID' タイプ= 'のxs:NMTOKEN':タイプ= '文字列XS' 'から' 属性名=:シーケンス> <XS使用= 'オプション' /> <XS:属性名=タイプ= 'XS:文字列' '' の使用= '必要' /> <XS:属性名= 'タイプ' 使用= '任意'> <XS:単純> <XS:制限塩基=」 XS:NCNameで '> <XS:列挙値=' エラー '/> <XS:列挙値=' プローブ '/> <XS:列挙値=' 購読 '/> <XS:列挙値=' 加入 '/> < XS:列挙値= '利用できない' /> <XS:列挙値= '解除' /> <XS:列挙値= '解除' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性REF = 'のxml:langの' 使用= 'オプション' /> </ XS:complexTypeの> </ XS:要素>

<xs:element name='show'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='away'/> <xs:enumeration value='chat'/> <xs:enumeration value='dnd'/> <xs:enumeration value='xa'/> </xs:restriction> </xs:simpleType> </xs:element>

<XS:要素名= '表示'> <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= '離れる' /> <XS:列挙値= 'チャット' /> < XS:列挙値= 'DND' /> <XS:列挙値= 'XA' /> </ XS:制限> </ XS:単純> </ XS:要素>

<xs:element name='status'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:string'> <xs:attribute ref='xml:lang' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= '状態'> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= 'のxs:文字列'> <XS:属性REF = 'のxml:langの' 使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='priority' type='xs:byte'/>

<XS:要素名= '優先' タイプの= 'XS:バイト' />

<xs:element name='iq'> <xs:complexType> <xs:sequence> <xs:any namespace='##other' minOccurs='0'/> <xs:element ref='error' minOccurs='0'/> </xs:sequence> <xs:attribute name='from' type='xs:string' use='required'/> <xs:attribute name='id' type='xs:NMTOKEN' use='required'/> <xs:attribute name='to' type='xs:string' use='required'/> <xs:attribute name='type' use='required'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='error'/> <xs:enumeration value='get'/> <xs:enumeration value='result'/> <xs:enumeration value='set'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute ref='xml:lang' use='optional'/> </xs:complexType> </xs:element>

<XS:要素名= 'IQ'> <XS:complexTypeの> <XS:配列> <XS:任意の名前空間= '##その他' のminOccurs = '0' /> <XS:要素REF = 'エラー' のminOccurs =」 0 '/> </ XS:シーケンス> <XS:属性名='「タイプ= 'XSから:文字列' 使用= '必要' /> <XS:属性名= 'ID' タイプ= 'のxs:NMTOKEN' 使用= '必要' /> <XS:属性名=タイプ= 'と' 'のxs:文字列' 使用= '必要' /> <XS: '必要' 属性名= 'type' を使用=> <XS:単純> < XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= 'エラー' /> <XS:列挙値= '入手' /> <XS:列挙値= '結果' /> <XS:列挙値= 'セット' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性REF = 'のxml:langの' 使用= '任意' /> </ XS:complexTypeの> </ XS :要素>

<xs:element name='error'> <xs:complexType> <xs:sequence xmlns:err='urn:ietf:params:xml:ns:xmpp-stanzas'> <xs:group ref='err:stanzaErrorGroup'/> <xs:element ref='err:text'

<XS:要素名= 'エラー'> <XS:complexTypeの> <XS:配列のxmlns:誤る= 'URN:IETF:paramsは:XML:NS:XMPP-スタンザ'> <XS:グループREF = 'ERR:stanzaErrorGroup' /> <XS:要素REF = 'ERR:テキスト'

minOccurs='0'/> </xs:sequence> <xs:attribute name='code' type='xs:byte' use='optional'/> <xs:attribute name='type' use='required'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='auth'/> <xs:enumeration value='cancel'/> <xs:enumeration value='continue'/> <xs:enumeration value='modify'/> <xs:enumeration value='wait'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element>

minOccurs = '0' /> </ XS:シーケンス> <XS:属性名= 'コード' タイプ= 'のxs:バイト' 使用= 'オプション' /> <XS:属性名= 'type' を使用= '必要' > <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= 'AUTH' /> <XS:列挙値= 'キャンセル' /> <XS:列挙値= '続けます' / > <XS:列挙値が= '変更' /> <XS:列挙値= '待ち' /> </ XS:制限> </ XS:単純> </ XS:属性> </ XS:complexTypeの> </ XS :要素>

</xs:schema>

</ XS:スキーマ>

B.3 session

B.3セッション

<?xml version='1.0' encoding='UTF-8'?>

<?xmlのバージョン= '1.0' エンコーディング= 'UTF-8'?>

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='urn:ietf:params:xml:ns:xmpp-session' xmlns='urn:ietf:params:xml:ns:xmpp-session' elementFormDefault='qualified'>

<XS:スキーマのxmlns:XS = 'のhttp://www.w3.org/2001/XMLSchema' のtargetNamespace = 'URN:IETF:のparams:XML:NS:XMPPセッション' のxmlns = "壷:IETF:のparams:XML :NS:XMPPセッション」のelementFormDefault = '資格'>

<xs:element name='session' type='empty'/>

<XS:要素名= 'セッション' タイプ= '空' />

<xs:simpleType name='empty'> <xs:restriction base='xs:string'> <xs:enumeration value=''/> </xs:restriction> </xs:simpleType>

<XS:単純名= '空'> <XS:制限基地= 'XS:文字列'> <XS:列挙値= '' /> </ XS:制限> </ XS:simpleTypeの>

</xs:schema>

</ XS:スキーマ>

B.4 jabber:iq:privacy

B.4のジャバー:IQ:プライバシー

<?xml version='1.0' encoding='UTF-8'?>

<?xmlのバージョン= '1.0' エンコーディング= 'UTF-8'?>

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='jabber:iq:privacy' xmlns='jabber:iq:privacy' elementFormDefault='qualified'>

<XS:スキーマのxmlns:XSの= 'のhttp://www.w3.org/2001/XMLSchema' のtargetNamespace = 'ジャバー:IQ:プライバシー]のxmlns ='ジャバー:IQ:プライバシー]のelementFormDefault = '資格'>

<xs:element name='query'> <xs:complexType> <xs:sequence> <xs:element ref='active' minOccurs='0'/> <xs:element ref='default' minOccurs='0'/> <xs:element ref='list' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> </xs:complexType> </xs:element>

<XS:要素名= 'クエリ'> <XS:complexTypeの> <XS:シーケンス> <XS:要素REF = 'アクティブ' のminOccurs = '0' /> <XS:要素REF = 'デフォルト' のminOccurs =の '0' /> <XS:要素REF = 'リスト' のminOccurs = '0' のmaxOccurs = '無限' /> </ XS:配列> </ XS:complexTypeの> </ XS:要素>

<xs:element name='active'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:NMTOKEN'> <xs:attribute name='name' type='xs:string' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= 'アクティブ'> <XS:complexTypeの> <XS:simpleContentを> <XS:拡張ベース= 'のxs:NMTOKEN'> <XS:属性名= '名前' TYPE = 'のxs:string' は使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='default'> <xs:complexType> <xs:simpleContent> <xs:extension base='xs:NMTOKEN'> <xs:attribute name='name' type='xs:string' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>

<XS:要素名= 'デフォルト'> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= 'XS:NMTOKEN'> <XS:属性名= 'name' をタイプ= 'XS:文字列' 使用= 'オプション' /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素>

<xs:element name='list'> <xs:complexType> <xs:sequence> <xs:element ref='item' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence>

<XS:要素名= 'リスト'> <XS:complexTypeの> <XS:配列> <XS:要素REF = 'アイテム' のminOccurs = '0' のmaxOccurs = '無限' /> </ XS:配列>

<xs:attribute name='name' type='xs:string' use='required'/> </xs:complexType> </xs:element>

<XS:属性名= 'name' をタイプ= 'XS:文字列' 使用= '必要' /> </ XS:complexTypeの> </ XS:要素>

<xs:element name='item'> <xs:complexType> <xs:sequence> <xs:element name='iq' minOccurs='0' type='empty'/> <xs:element name='message' minOccurs='0' type='empty'/> <xs:element name='presence-in' minOccurs='0' type='empty'/> <xs:element name='presence-out' minOccurs='0' type='empty'/> </xs:sequence> <xs:attribute name='action' use='required'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='allow'/> <xs:enumeration value='deny'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='order' type='xs:unsignedInt' use='required'/> <xs:attribute name='type' use='optional'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='group'/> <xs:enumeration value='jid'/> <xs:enumeration value='subscription'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='value' type='xs:string' use='optional'/> </xs:complexType> </xs:element>

<XS:要素名= 'アイテム'> <XS:complexTypeの> <XS:配列> <XS:要素名= 'IQ' のminOccurs = '0' TYPE = '空' /> <XS:要素名= 'メッセージ' minOccurs = '0' TYPE = '空' /> <XS:要素名= '存在イン' のminOccurs = '0' TYPE = '空' /> <XS:要素名= '存在アウト' のminOccurs = "0 'TYPE =' 空 '/> </ XS:配列> <XS:属性名=' 必要なアクション」使用= '' は> <XS:単純> <XS:制限基地= 'のxs:NCNameで'> <XS:列挙値= /> <XS '許可': '拒否' =列挙値を/> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性名= '注文' タイプ= 'XS: unsignedInt型」使用= '必要' /> <XS:属性名= 'タイプ' 使用= '任意'> <XS:単純> <XS:制限基地= 'XS:NCNameで'> <XS:列挙値= 'グループ' /> <XS:列挙値= 'JID' /> <XS:列挙値= 'サブスクリプション' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性名= '値'TYPE =' のxs:string」は使用= '任意' /> </ XS:complexTypeの> </ XS:要素>

<xs:simpleType name='empty'> <xs:restriction base='xs:string'> <xs:enumeration value=''/> </xs:restriction> </xs:simpleType>

<XS:単純名= '空'> <XS:制限基地= 'XS:文字列'> <XS:列挙値= '' /> </ XS:制限> </ XS:simpleTypeの>

</xs:schema>

</ XS:スキーマ>

B.5 jabber:iq:roster

B.5のジャバー:IQ:名簿

<?xml version='1.0' encoding='UTF-8'?>

<?xmlのバージョン= '1.0' エンコーディング= 'UTF-8'?>

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='jabber:iq:roster' xmlns='jabber:iq:roster' elementFormDefault='qualified'>

<XS:スキーマのxmlns:XSの= 'のhttp://www.w3.org/2001/XMLSchema' のtargetNamespace = 'ジャバー:IQ:名簿' のxmlns = 'ジャバー:IQ:名簿' のelementFormDefault = '資格'>

<xs:element name='query'> <xs:complexType> <xs:sequence> <xs:element ref='item' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> </xs:complexType> </xs:element>

<XS:要素名= 'クエリ'> <XS:complexTypeの> <XS:配列> <XS:要素REF = 'アイテム' のminOccurs = '0' のmaxOccurs = '無限' /> </ XS:配列> </ XS :complexTypeの> </ XS:要素>

<xs:element name='item'> <xs:complexType> <xs:sequence> <xs:element ref='group' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> <xs:attribute name='ask' use='optional'> <xs:simpleType> <xs:restriction base='xs:NCName'> <xs:enumeration value='subscribe'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='jid' type='xs:string' use='required'/> <xs:attribute name='name' type='xs:string' use='optional'/> <xs:attribute name='subscription' use='optional'> <xs:simpleType> <xs:restriction base='xs:NCName'>

<XS:要素名= 'アイテム'> <XS:complexTypeの> <XS:配列> <XS:要素REF = 'グループ' のminOccurs = '0' のmaxOccurs = '無限' /> </ XS:配列> <XS: '頼む' =属性名を使用= 'オプション'> <XS:単純> <XS:制限ベース= 'XS:NCNameで'> <XS:列挙値= '購読' /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性名= 'JID' タイプ= 'のxs:文字列' 使用= '必要' /> <XS:属性名= '名' のタイプ= 'のxs:文字列' 使用=」オプション '/> <XS:属性名=' サブスクリプション」使用= 'オプション'> <XS:単純> <XS:制限ベース= 'のxs:NCNameで'>

<xs:enumeration value='both'/> <xs:enumeration value='from'/> <xs:enumeration value='none'/> <xs:enumeration value='remove'/> <xs:enumeration value='to'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element>

<XS:列挙値= '両方' /> <XS:列挙値= 'から' /> <XS:列挙値= 'なし' /> <XS:列挙値= / '削除'> <XS:列挙値= 'から' /> </ XS:制限> </ XS:単純> </ XS:属性> </ XS:complexTypeの> </ XS:要素>

<xs:element name='group' type='xs:string'/>

<XS:要素名= 'グループ' タイプ= 'XS:文字列' />

</xs:schema>

</ XS:スキーマ>

Appendix C. Differences Between Jabber IM/Presence Protocols and XMPP

JabberのIM /プレゼンスプロトコルおよびXMPPの間の付録C.違い

This section is non-normative.

このセクションでは、非規範的です。

XMPP has been adapted from the protocols originally developed in the Jabber open-source community, which can be thought of as "XMPP 0.9". Because there exists a large installed base of Jabber implementations and deployments, it may be helpful to specify the key differences between the relevant Jabber protocols and XMPP in order to expedite and encourage upgrades of those implementations and deployments to XMPP. This section summarizes the differences that relate specifically to instant messaging and presence applications, while the corresponding section of [XMPP-CORE] summarizes the differences that relate to all XMPP applications.

XMPPは、「XMPP 0.9」と考えることができ、もともとJabberのオープンソースコミュニティで開発されたプロトコルから適応されています。 Jabberの実装と展開の大規模なインストールベースが存在するので、迅速かつXMPPにそれらの実装と展開のアップグレードを促進するために、関連のJabberプロトコルとXMPPの主な違いを指定すると便利かもしれません。 [XMPP-CORE]の対応するセクションは、すべてのXMPPアプリケーションに関連する差異を要約しながら、このセクションでは、インスタントメッセージングとプレゼンスアプリケーションに特異的に関連する差異をまとめたものです。

C.1 Session Establishment

C.1セッション確立

The client-to-server authentication protocol developed in the Jabber community assumed that every client is an IM client and therefore initiated an IM session upon successful authentication and resource binding, which are performed simultaneously (documentation of this protocol is contained in [JEP-0078], published by the Jabber Software Foundation [JSF]). XMPP maintains a stricter separation between core functionality and IM functionality; therefore, an IM session is not created until the client specifically requests one using the protocol defined under Session Establishment (Section 3).

Jabberのコミュニティで開発されたクライアントからサーバーへの認証プロトコルは、すべてのクライアントは、IMクライアントであると仮定し、したがって、認証が成功し、リソースの結合時にIMセッションを開始し、同時に実行される(このプロトコルのドキュメントは[JEP-0078に含まれています]、Jabberのソフトウェア財団[JSF])で発表しました。 XMPPは、コア機能とIM機能との間の厳格な分離を維持します。クライアントは、具体的セッションの確立(第3節)の下で定義されたプロトコルを使用して1を要求するまでそのため、IMセッションが作成されていません。

C.2 Privacy Lists

C.2プライバシーリスト

The Jabber community began to define a protocol for communications blocking (privacy lists) in late 2001, but that effort was deprecated once the XMPP Working Group was formed. Therefore the protocol defined under Blocking Communication (Section 10) is the only such protocol defined for use in the Jabber community.

Jabberのコミュニティは、2001年後半に(プライバシーのリスト)を遮断する通信用プロトコルを定義するために始めたが、XMPPワーキンググループを形成した後、その努力が廃止されました。したがって、通信(セクション10)をブロックの下に定義されたプロトコルは、Jabberのコミュニティで使用するために定義された唯一のようなプロトコルです。

Contributors

協力者

Most of the core aspects of the Extensible Messaging and Presence Protocol were developed originally within the Jabber open-source community in 1999. This community was founded by Jeremie Miller, who released source code for the initial version of the jabberd server in January 1999. Major early contributors to the base protocol also included Ryan Eatmon, Peter Millard, Thomas Muldowney, and Dave Smith. Work specific to instant messaging and presence by the XMPP Working Group has concentrated especially on IM session establishment and communication blocking (privacy lists); the session establishment protocol was mainly developed by Rob Norris and Joe Hildebrand, and the privacy lists protocol was originally contributed by Peter Millard.

拡張メッセージングとプレゼンスプロトコルのコア側面のほとんどは、このコミュニティは、1999年1月の主要でのjabberdサーバーの初期バージョンのソースコードをリリースしたジェレミー・ミラー、によって設立された当初、1999年にJabberのオープンソース・コミュニティ内で開発されました基本プロトコルへの早期貢献もライアンEatmon、ピーター・ミラード、トーマスMuldowney、とデイブ・スミスが含まれています。 XMPPワーキンググループでのインスタントメッセージングとプレゼンスに特定の作業は、特にIMセッションの確立および通信のブロッキング(プライバシーのリスト)に集中しています。セッション確立プロトコルは、主にロブ・ノリスとジョー・ヒルデブラントによって開発された、とプライバシーリストプロトコルは、もともとピーター・ミラードによって寄贈されました。

Acknowledgements

謝辞

Thanks are due to a number of individuals in addition to the contributors listed. Although it is difficult to provide a complete list, the following individuals were particularly helpful in defining the protocols or in commenting on the specifications in this memo: Thomas Charron, Richard Dobson, Schuyler Heath, Jonathan Hogg, Craig Kaes, Jacek Konieczny, Lisa Dusseault, Alexey Melnikov, Keith Minkler, Julian Missig, Pete Resnick, Marshall Rose, Jean-Louis Seguineau, Alexey Shchepin, Iain Shigeoka, and David Waite. Thanks also to members of the XMPP Working Group and the IETF community for comments and feedback provided throughout the life of this memo.

おかげで記載された貢献に加えて、個人の数に起因するものです。トーマス・シャロン、リチャード・ドブソン、スカイラー・ヒース、ジョナサン・ホッグ、クレイグKaes、ヤツェクKonieczny、リサDusseault:それは完全なリストを提供することは困難であるが、以下の個人は、プロトコルを定義してか、このメモでは仕様上のコメントで特に有用でした、アレクセイ・メルニコフ、キースMinkler、ジュリアンMissig、ピート・レズニック、マーシャルローズ、ジャン=ルイ・Seguineau、アレクセイShchepin、イアンShigeoka、そしてデイビット・ウェイト。また、XMPPワーキンググループのメンバーとこのメモの人生を通じて提供コメントやフィードバックのためのIETFコミュニティに感謝します。

Author's Address

著者のアドレス

Peter Saint-Andre (editor) Jabber Software Foundation

ピーター・サン・アンドレ(エディタ)のJabber Software Foundationの

EMail: stpeter@jabber.org

メールアドレス:stpeter@jabber.org

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2004).

著作権(C)インターネット協会(2004)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

この文書では、BCP 78に含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/S HE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書とここに含まれている情報は、基礎とHEが表すCONTRIBUTOR、ORGANIZATION HE / S OR(もしあれば)後援されており、インターネットソサエティおよびインターネット・エンジニアリング・タスク・フォース放棄すべての保証、明示、「そのまま」で提供されていますOR情報の利用は、特定の目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証を含むがこれらに限定されないで、黙示。

Intellectual Property

知的財産

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the IETF's procedures with respect to rights in IETF Documents can be found in BCP 78 and BCP 79.

IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 IETF文書の権利に関するIETFの手続きの情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

IPRの開示のコピーが利用できるようにIETF事務局とライセンスの保証に行われた、または本仕様の実装者または利用者がそのような所有権の使用のための一般的なライセンスまたは許可を取得するために作られた試みの結果を得ることができますhttp://www.ietf.org/iprのIETFのオンラインIPRリポジトリから。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。