Network Working Group                                       J. Rosenberg
Request for Comments: 3858                                   dynamicsoft
Category: Standards Track                                    August 2004
        
Network Working Group                                       J. Rosenberg
Request for Comments: 3858                                   dynamicsoft
Category: Standards Track                                    August 2004
        

An Extensible Markup Language (XML) Based Format for Watcher Information

基于可扩展标记语言(XML)的观察者信息格式

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

摘要

Watchers are defined as entities that request (i.e., subscribe to) information about a resource. There is fairly complex state associated with these subscriptions. The union of the state for all subscriptions to a particular resource is called the watcher information for that resource. This state is dynamic, changing as subscribers come and go. As a result, it is possible, and indeed useful, to subscribe to the watcher information for a particular resource. In order to enable this, a format is needed to describe the state of watchers on a resource. This specification describes an Extensible Markup Language (XML) document format for such state.

观察者被定义为请求(即订阅)资源信息的实体。与这些订阅关联的状态相当复杂。特定资源的所有订阅的状态联合称为该资源的观察者信息。这种状态是动态的,随着订阅者的来来去去而变化。因此,订阅特定资源的观察者信息是可能的,而且确实有用。为了实现这一点,需要一种格式来描述资源上观察者的状态。本规范描述了这种状态的可扩展标记语言(XML)文档格式。

Table of Contents

目录

   1.  Introduction ................................................   2
   2.  Terminology ...............................................     2
   3.  Structure of Watcher Information ...........................    2
   4.  Computing Watcher Lists from the Document ..................    5
   5.  Example ....................................................    6
   6.  XML Schema .................................................    6
   7.  Security Considerations ....................................    8
   8.  IANA Considerations ........................................    9
       8.1. application/watcherinfo+xml MIME Registration .........    9
       8.2. URN Sub-Namespace Registration for
            urn:ietf:params:xml:ns:watcherinfo ....................   10
   9.  Normative References .......................................   10
   10. Informative References .....................................   11
        
   1.  Introduction ................................................   2
   2.  Terminology ...............................................     2
   3.  Structure of Watcher Information ...........................    2
   4.  Computing Watcher Lists from the Document ..................    5
   5.  Example ....................................................    6
   6.  XML Schema .................................................    6
   7.  Security Considerations ....................................    8
   8.  IANA Considerations ........................................    9
       8.1. application/watcherinfo+xml MIME Registration .........    9
       8.2. URN Sub-Namespace Registration for
            urn:ietf:params:xml:ns:watcherinfo ....................   10
   9.  Normative References .......................................   10
   10. Informative References .....................................   11
        
   11. Acknowledgements ...........................................   11
   12. Contributors ...............................................   12
   13. Author's Address ...........................................   13
   14. Full Copyright Statement ...................................   14
        
   11. Acknowledgements ...........................................   11
   12. Contributors ...............................................   12
   13. Author's Address ...........................................   13
   14. Full Copyright Statement ...................................   14
        
1. Introduction
1. 介绍

Watchers are defined as entities that request (i.e., subscribe to) information about a resource, using the SIP event framework, RFC 3265 [1]. There is fairly complex state associated with these subscriptions. This state includes the identity of the subscriber, the state of the subscription, and so on. The union of the state for all subscriptions to a particular resource is called the watcher information for that resource. This state is dynamic, changing as subscribers come and go. As a result, it is possible, and indeed useful, to subscribe to the watcher information for a particular resource. An important application of this is the ability for a user to find out the set of subscribers to their presentity [11]. This would allow the user to provide an authorization decision for the subscription.

观察者被定义为使用SIP事件框架RFC 3265[1]请求(即订阅)资源信息的实体。与这些订阅关联的状态相当复杂。此状态包括订阅服务器的标识、订阅的状态等。特定资源的所有订阅的状态联合称为该资源的观察者信息。这种状态是动态的,随着订阅者的来来去去而变化。因此,订阅特定资源的观察者信息是可能的,而且确实有用。这一功能的一个重要应用是用户能够找到其实体的订户集[11]。这将允许用户为订阅提供授权决策。

To support subscriptions to watcher information, two components are needed. The first is the definition of a SIP event template-package for watcher information. The other is the definition of a data format to represent watcher information. The former is specified in [2], and the latter is specified here.

为了支持对观察者信息的订阅,需要两个组件。第一个是为观察者信息定义SIP事件模板包。另一种是定义一种数据格式来表示观察者信息。前者在[2]中规定,后者在此处规定。

2. Terminology
2. 术语

In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 [3] and indicate requirement levels for compliant implementations.

在本文件中,关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照BCP 14、RFC 2119[3]中的描述进行解释,并指出合规实施的要求级别。

This document also uses the terms subscriber, watcher, subscription, notification, watcherinfo subscription, watcherinfo subscriber, and watcherinfo notification with the meanings described in [2].

本文件还使用了术语订阅者、观察者、订阅、通知、watcherinfo订阅、watcherinfo订阅者和watcherinfo通知,其含义如[2]所述。

3. Structure of Watcher Information
3. 观察者信息结构

Watcher information is an XML document [4] that MUST be well-formed and SHOULD be valid. Watcher information documents MUST be based on XML 1.0 and MUST be encoded using UTF-8. This specification makes use of XML namespaces for identifying watcherinfo documents and document fragments. The namespace URI for elements defined by this specification is a URN [5], using the namespace identifier 'ietf' defined by [6] and extended by [7]. This URN is:

观察者信息是一个XML文档[4],它必须是格式良好且有效的。观察者信息文档必须基于XML 1.0,并且必须使用UTF-8编码。本规范使用XML名称空间来标识watcherinfo文档和文档片段。本规范定义的元素的名称空间URI是URN[5],使用[6]定义的名称空间标识符“ietf”,并由[7]扩展。这个骨灰盒是:

      urn:ietf:params:xml:ns:watcherinfo
        
      urn:ietf:params:xml:ns:watcherinfo
        

A watcher information document begins with the root element tag "watcherinfo". It consists of any number of "watcher-list" sub-elements, each of which is a list of watchers for a particular resource. Other elements from different namespaces MAY be present for the purposes of extensibility; elements or attributes from unknown namespaces MUST be ignored. There are two attributes associated with the "watcherinfo" element, both of which MUST be present:

观察者信息文档以根元素标记“watcherinfo”开头。它由任意数量的“观察者列表”子元素组成,每个子元素都是特定资源的观察者列表。出于可扩展性的目的,可能存在来自不同名称空间的其他元素;必须忽略未知名称空间中的元素或属性。有两个属性与“watcherinfo”元素关联,这两个属性都必须存在:

version: This attribute allows the recipient of watcherinfo documents to properly order them. Versions start at 0, and increment by one for each new document sent to a watcherinfo subscriber. Versions are scoped within a watcherinfo subscription. Versions MUST be representable using a 32 bit integer. However, versions do not wrap.

版本:此属性允许watcherinfo文档的收件人正确排序。版本从0开始,对于发送到watcherinfo订阅服务器的每个新文档,版本增量为1。版本在watcherinfo订阅范围内。版本必须使用32位整数表示。但是,版本不会换行。

state: This attribute indicates whether the document contains the full watcherinfo state, or whether it contains only information on those watchers which have changed since the previous document (partial).

状态:此属性指示文档是否包含完整的watcherinfo状态,或者它是否仅包含自上一个文档(部分)以来已更改的观察者的信息。

Each "watcher-list" element contains a list of "watcher" elements, each of which describes a watcher on a particular resource. Other elements from different namespaces MAY be present for the purposes of extensibility; elements or attributes from unknown namespaces MUST be ignored. There are two attributes associated with the "watcher-list" element, both of which MUST be present:

每个“观察者列表”元素包含一个“观察者”元素列表,每个元素描述特定资源上的观察者。出于可扩展性的目的,可能存在来自不同名称空间的其他元素;必须忽略未知名称空间中的元素或属性。“观察者列表”元素有两个相关属性,这两个属性都必须存在:

resource: This attribute contains a URI for the resource being watched by that list of watchers. It is mandatory.

资源:该属性包含该观察者列表所观察的资源的URI。这是强制性的。

package: This attribute contains a token indicating the event package for which watcher information on that resource is being provided. It is mandatory.

package:此属性包含一个令牌,指示为其提供有关该资源的观察者信息的事件包。这是强制性的。

The "watcher" element describes a watcher in the watcher list. The value of the "watcher" element is a URI for the watcher. This URI SHOULD be the authenticated identity of the watcher as determined by the server processing the subscription. As such, this URI will usually be an address-of-record (for example, sip:joe@example.com) as opposed to a device address (for example, sip:joe@192.0.2.3). There are three mandatory attributes which MUST be present:

“观察者”元素描述观察者列表中的观察者。“watcher”元素的值是watcher的URI。此URI应该是由处理订阅的服务器确定的观察者的经过身份验证的标识。因此,此URI通常是记录地址(例如,sip:joe@example.com)与设备地址相反(例如,sip:joe@192.0.2.3). 必须具备三个强制性属性:

id: A unique identifier for the subscription described by the watcher element. The id MUST be representable using the grammar for token as specified by RFC 3261 [8]. It MUST be unique across all other watchers reported in documents sent in notifications for a particular watcherinfo subscription.

id:由watcher元素描述的订阅的唯一标识符。id必须使用RFC 3261[8]指定的令牌语法表示。它在特定watcherinfo订阅的通知中发送的文档中报告的所有其他观察者中必须是唯一的。

status: The status of the subscription. The meaning of the various statuses are defined in the watcher information event package [2].

状态:订阅的状态。观察者信息事件包[2]中定义了各种状态的含义。

event: The event which caused the transition to the current status. The events are defined in the watcher information event package [2].

事件:导致转换到当前状态的事件。这些事件在观察者信息事件包[2]中定义。

There are also some optional, informative attributes of the watcher element. These are:

watcher元素还有一些可选的信息属性。这些是:

display-name: A textual representation of the name of the subscriber.

显示名称:订阅服务器名称的文本表示形式。

expiration: The amount of time, in seconds from the current time, that the subscription will expire.

过期:订阅将过期的时间量,从当前时间算起,以秒为单位。

duration-subscribed: The amount of time, expressed in seconds, between the time the SUBSCRIBE which created the subscription was received, and the current time.

订阅持续时间:从创建订阅的订阅收到到当前时间之间的时间量,以秒为单位。

The xml:lang attribute MAY be used with the "watcher" element to specify the language of the "display-name".

lang属性可以与“watcher”元素一起使用,以指定“display name”的语言。

The number of watchers present for each resource, and the set of resources listed, depends on the type of data being provided, and to whom.

每个资源的观察者数量以及列出的资源集取决于提供的数据类型和对象。

For example, consider a presence system using watcher information. In one scenario, a user, A, subscribes to the presence of another user, B. A would like to find out about the status of their subscription. To do so, A subscribes to the watcher information for B's presence. A does not have authorization to learn the status of all watchers for B's presence. As a result, the watcher information sent to A will contain only one watcher - A themself.

例如,考虑使用观察者信息的存在系统。在一个场景中,一个用户a订阅另一个用户B的存在。a希望了解他们订阅的状态。要做到这一点,A订阅了B在场的观察者信息。A无权了解B在场的所有观察者的状态。因此,发送给a的观察者信息将只包含一个观察者—a自身。

In another scenario, a user, B, wishes to learn the set of people who have subscribed to B's presence. To do this, B subscribes to the watcher information for B's presence. Here, B is authorized to see all the watchers of B's presence. As a result, the watcher information sent to B will contain all watchers of B's presence.

在另一个场景中,用户B希望了解已订阅B状态的一组人。为了做到这一点,B订阅了B的存在的观察者信息。在这里,B有权看到B在场的所有观察者。因此,发送给B的观察者信息将包含B存在的所有观察者。

In the case where an administrator wishes to learn the current status in the system, the watcher information could contain all watchers for all resources.

如果管理员希望了解系统中的当前状态,则观察者信息可以包含所有资源的所有观察者。

4. Computing Watcher Lists from the Document
4. 从文档中计算观察者列表

Typically, the watcherinfo NOTIFY will only contain information about those watchers whose state has changed. To construct a coherent view of the total state of all watchers, a watcherinfo subscriber will need to combine NOTIFYs received over time. The watcherinfo subscriber maintains a table for each watcher list it receives information about. Each watcher list is uniquely identified by the URI in the "resource" attribute of the "watcher-list" element. Each table contains a row for each watcher in that watcher list. Each row is indexed by the unique ID for that watcher. It is conveyed in the "id" attribute of the "watcher" element. The contents of each row contain the state of that watcher as conveyed in the "watcher" element. The tables are also associated with a version number. The version number MUST be initialized with the value of the "version" attribute from the "watcherinfo" element in the first document received. Each time a new document is received, the value of the local version number, and the "version" attribute in the new document, are compared. If the value in the new document is one higher than the local version number, the local version number is increased by one, and the document is processed. If the value in the document is more than one higher than the local version number, the local version number is set to the value in the new document, the document is processed, and the watcherinfo subscriber SHOULD generate a refresh request to trigger a full state notification. If the value in the document is less than the local version, the document is discarded without processing.

通常,watcherinfo NOTIFY只包含状态已更改的观察者的信息。为了构建所有观察者的总状态的一致视图,watcherinfo订阅者需要合并随时间接收的NOTIFY。watcherinfo订阅者为其接收到的每个观察者列表维护一个表。每个观察者列表由“观察者列表”元素的“资源”属性中的URI唯一标识。每个表包含该观察者列表中每个观察者的一行。每一行都由该观察者的唯一ID索引。它在“watcher”元素的“id”属性中传递。每行的内容都包含在“watcher”元素中传递的该观察者的状态。这些表还与版本号关联。必须使用接收到的第一个文档中的“watcherinfo”元素的“version”属性值初始化版本号。每次收到新文档时,都会比较本地版本号的值和新文档中的“版本”属性。如果新文档中的值比本地版本号高一个,则本地版本号将增加一个,并处理文档。如果文档中的值比本地版本号高出一个以上,则本地版本号将设置为新文档中的值,文档将被处理,并且watcherinfo订阅服务器应生成刷新请求以触发完全状态通知。如果文档中的值小于本地版本,则文档将在不进行处理的情况下丢弃。

The processing of the watcherinfo document depends on whether it contains full or partial state. If it contains full state, indicated by the value of the "state" attribute in the "watcherinfo" element, the contents of all tables associated with this watcherinfo subscription are flushed. They are re-populated from the document. A new table is created for each "watcher-list" element, and a new row in each table is created for each "watcher" element. If the watcherinfo contains partial state, as indicated by the value of the "state" attribute in the "watcherinfo" element, the document is used to update the existing tables. For each "watcher-list" element, the watcherinfo subscriber checks to see if a table exists for that list. This check is done by comparing the URI in the "resource" attribute of the "watcher-list" element with the URI associated with the table. If a table doesn't exist for that list, one is created. For each "watcher" element in the list, the watcherinfo subscriber checks to see whether a row exists for that watcher. This check is done by

watcherinfo文档的处理取决于它是包含完全状态还是部分状态。如果它包含完整状态(由“watcherinfo”元素中的“state”属性的值指示),则刷新与此watcherinfo订阅关联的所有表的内容。它们将从文档中重新填充。为每个“观察者列表”元素创建一个新表,并为每个“观察者列表”元素在每个表中创建一个新行。如果watcherinfo包含部分状态,如“watcherinfo”元素中“state”属性的值所示,则该文档用于更新现有表。对于每个“观察者列表”元素,watcherinfo订阅者检查该列表是否存在一个表。此检查通过比较“观察者列表”元素的“资源”属性中的URI与与表关联的URI来完成。如果该列表不存在表,则创建一个表。对于列表中的每个“观察者”元素,watcherinfo订阅者都会检查该观察者是否存在一行。这项检查由

comparing the ID in the "id" attribute of the "watcher" element with the ID associated with the row. If the watcher doesn't exist in the table, a row is added, and its state is set to the information from that "watcher" element. If the watcher does exist, its state is updated to be the information from that "watcher" element. If a row is updated or created, such that its state is now terminated, that entry MAY be removed from the table at any time.

将“watcher”元素的“ID”属性中的ID与与行关联的ID进行比较。如果表中不存在观察者,则添加一行,并将其状态设置为来自该“观察者”元素的信息。如果观察者确实存在,其状态将更新为来自该“观察者”元素的信息。如果行被更新或创建,以致其状态现在已终止,则可以随时从表中删除该条目。

5. Example
5. 实例

The following is an example of watcher information for a presentity, who is a professor. There are two watchers, userA and userB.

以下是一位教授的观察者信息示例。有两个观察者,userA和userB。

<?xml version="1.0"?>
<watcherinfo xmlns="urn:ietf:params:xml:ns:watcherinfo"
             version="0" state="full">
  <watcher-list resource="sip:professor@example.net" package="presence">
    <watcher status="active"
             id="8ajksjda7s"
             duration-subscribed="509"
             event="approved" >sip:userA@example.net</watcher>
    <watcher status="pending"
             id="hh8juja87s997-ass7"
             display-name="Mr. Subscriber"
             event="subscribe">sip:userB@example.org</watcher>
  </watcher-list>
</watcherinfo>
        
<?xml version="1.0"?>
<watcherinfo xmlns="urn:ietf:params:xml:ns:watcherinfo"
             version="0" state="full">
  <watcher-list resource="sip:professor@example.net" package="presence">
    <watcher status="active"
             id="8ajksjda7s"
             duration-subscribed="509"
             event="approved" >sip:userA@example.net</watcher>
    <watcher status="pending"
             id="hh8juja87s997-ass7"
             display-name="Mr. Subscriber"
             event="subscribe">sip:userB@example.org</watcher>
  </watcher-list>
</watcherinfo>
        
6. XML Schema
6. XML模式

The following is the schema definition of the watcherinfo document format:

以下是watcherinfo文档格式的架构定义:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       targetNamespace="urn:ietf:params:xml:ns:watcherinfo"
       xmlns:tns="urn:ietf:params:xml:ns:watcherinfo" >
<!-- This import brings in the XML language attribute xml:lang-->
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
             schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
  <xs:element name="watcherinfo">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:watcher-list" minOccurs="0"
                    maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0"
                maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="version" type="xs:nonNegativeInteger"
        
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       targetNamespace="urn:ietf:params:xml:ns:watcherinfo"
       xmlns:tns="urn:ietf:params:xml:ns:watcherinfo" >
<!-- This import brings in the XML language attribute xml:lang-->
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
             schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
  <xs:element name="watcherinfo">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:watcher-list" minOccurs="0"
                    maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0"
                maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="version" type="xs:nonNegativeInteger"
        
                    use="required"/>
      <xs:attribute name="state" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="full"/>
            <xs:enumeration value="partial"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="watcher-list">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:watcher" minOccurs="0" maxOccurs=
         "unbounded"/>
          <xs:any namespace="##other" processContents="lax"
                  minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="resource" type="xs:anyURI" use="required"/>
      <xs:attribute name="package" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="watcher">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:anyURI">
          <xs:attribute name="display-name" type="xs:string"/>
          <xs:attribute name="status" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="pending"/>
                <xs:enumeration value="active"/>
                <xs:enumeration value="waiting"/>
                <xs:enumeration value="terminated"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="event" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="subscribe"/>
                <xs:enumeration value="approved"/>
                <xs:enumeration value="deactivated"/>
                <xs:enumeration value="probation"/>
                <xs:enumeration value="rejected"/>
                <xs:enumeration value="timeout"/>
                <xs:enumeration value="giveup"/>
        
                    use="required"/>
      <xs:attribute name="state" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="full"/>
            <xs:enumeration value="partial"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="watcher-list">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:watcher" minOccurs="0" maxOccurs=
         "unbounded"/>
          <xs:any namespace="##other" processContents="lax"
                  minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="resource" type="xs:anyURI" use="required"/>
      <xs:attribute name="package" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="watcher">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:anyURI">
          <xs:attribute name="display-name" type="xs:string"/>
          <xs:attribute name="status" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="pending"/>
                <xs:enumeration value="active"/>
                <xs:enumeration value="waiting"/>
                <xs:enumeration value="terminated"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="event" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="subscribe"/>
                <xs:enumeration value="approved"/>
                <xs:enumeration value="deactivated"/>
                <xs:enumeration value="probation"/>
                <xs:enumeration value="rejected"/>
                <xs:enumeration value="timeout"/>
                <xs:enumeration value="giveup"/>
        
                <xs:enumeration value="noresource"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="expiration" type="xs:unsignedLong"/>
          <xs:attribute name="id" type="xs:string" use="required"/>
          <xs:attribute name="duration-subscribed"
              type="xs:unsignedLong"/>
          <xs:attribute ref="xml:lang"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>
        
                <xs:enumeration value="noresource"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="expiration" type="xs:unsignedLong"/>
          <xs:attribute name="id" type="xs:string" use="required"/>
          <xs:attribute name="duration-subscribed"
              type="xs:unsignedLong"/>
          <xs:attribute ref="xml:lang"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>
        
7. Security Considerations
7. 安全考虑

Watcher information is sensitive information. The protocol used to distribute it SHOULD ensure privacy, message integrity, and authentication. Furthermore, the protocol should provide access controls which restrict who can see who elses watcher information.

观察者信息是敏感信息。用于分发的协议应确保隐私、消息完整性和身份验证。此外,协议应提供访问控制,以限制谁可以查看谁的其他观察者信息。

8. IANA Considerations
8. IANA考虑

This document registers a new MIME type, application/watcherinfo+xml, and registers a new XML namespace.

此文档注册一个新的MIME类型application/watcherinfo+xml,并注册一个新的xml命名空间。

8.1. application/watcherinfo+xml MIME Registration
8.1. 应用程序/监视者信息+xml MIME注册

MIME media type name: application

MIME媒体类型名称:应用程序

MIME subtype name: watcherinfo+xml

MIME子类型名称:watcherinfo+xml

Mandatory parameters: none

强制参数:无

Optional parameters: Same as charset parameter application/xml as specified in RFC 3023 [9].

可选参数:与RFC 3023[9]中指定的字符集参数application/xml相同。

Encoding considerations: Same as encoding considerations of application/xml as specified in RFC 3023 [9].

编码注意事项:与RFC 3023[9]中指定的应用程序/xml的编码注意事项相同。

Security considerations: See Section 10 of RFC 3023 [9] and Section 7 of this specification.

安全注意事项:参见RFC 3023[9]第10节和本规范第7节。

Interoperability considerations: none.

互操作性考虑:无。

Published specification: This document.

已发布规范:本文件。

Applications which use this media type: This document type has been used to support subscriber authorization functions for SIP-based presence [10] [2].

使用此媒体类型的应用程序:此文档类型已用于支持基于SIP的状态的订户授权功能[10][2]。

Additional Information: Magic Number: None

附加信息:幻数:无

File Extension: .wif or .xml

文件扩展名:.wif或.xml

Macintosh file type code: "TEXT"

Macintosh文件类型代码:“文本”

   Personal and email address for further information: Jonathan
        Rosenberg, <jdrosen@jdrosen.net>
        
   Personal and email address for further information: Jonathan
        Rosenberg, <jdrosen@jdrosen.net>
        

Intended usage: COMMON

预期用途:普通

Author/Change controller: The IETF.

作者/变更控制者:IETF。

8.2. URN Sub-Namespace Registration for
     urn:ietf:params:xml:ns:watcherinfo
        
8.2. URN Sub-Namespace Registration for
     urn:ietf:params:xml:ns:watcherinfo
        

This section registers a new XML namespace, as per the guidelines in [7].

本节根据[7]中的指导原则注册一个新的XML名称空间。

URI: The URI for this namespace is urn:ietf:params:xml:ns:watcherinfo.

URI:此命名空间的URI为urn:ietf:params:xml:ns:watcherinfo。

Registrant Contact: IETF, SIMPLE working group, <simple@ietf.org>, Jonathan Rosenberg <jdrosen@jdrosen.net>.

注册人联系人:IETF,简单工作组<simple@ietf.org>,乔纳森·罗森伯格<jdrosen@jdrosen.net>.

XML:

XML:

       BEGIN
       <?xml version="1.0"?>
       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
       <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
         <meta http-equiv="content-type"
            content="text/html;charset=iso-8859-1"/>
         <title>Watcher Information Namespace</title>
       </head>
       <body>
         <h1>Namespace for Watcher Information</h1>
         <h2>urn:ietf:params:xml:ns:watcherinfo</h2>
         <p>See <a href="ftp://ftp.rfc-editor.org/in-notes/rfc3858.txt">
            RFC3858</a>.</p>
        
       BEGIN
       <?xml version="1.0"?>
       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
       <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
         <meta http-equiv="content-type"
            content="text/html;charset=iso-8859-1"/>
         <title>Watcher Information Namespace</title>
       </head>
       <body>
         <h1>Namespace for Watcher Information</h1>
         <h2>urn:ietf:params:xml:ns:watcherinfo</h2>
         <p>See <a href="ftp://ftp.rfc-editor.org/in-notes/rfc3858.txt">
            RFC3858</a>.</p>
        
       </body>
       </html>
       END
        
       </body>
       </html>
       END
        
9. Normative References
9. 规范性引用文件

[1] Roach, A. B., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002.

[1] Roach,A.B.,“会话启动协议(SIP)-特定事件通知”,RFC3265,2002年6月。

[2] Rosenberg, J., "A Watcher Information Event Template-Package for the Session Initiation Protocol (SIP)", RFC 3857, August 2004.

[2] Rosenberg,J.,“会话启动协议(SIP)的观察者信息事件模板包”,RFC3857,2004年8月。

[3] Bradner, S., "Key Words for Use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[3] Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[4] T. Bray, J. Paoli, and C. M. Sperberg-McQueen, "Extensible Markup language (XML) 1.0 (second edition)," W3C Recommendation REC-xml-20001006, World Wide Web Consortium (W3C), Oct. 2000. Available at http://www.w3.org/XML/.

[4] T.Bray,J.Paoli和C.M.Sperberg McQueen,“可扩展标记语言(XML)1.0(第二版)”,W3C建议REC-XML-20001006,万维网联盟(W3C),2000年10月。可在http://www.w3.org/XML/.

[5] Moats, R., "URN Syntax", RFC 2141, May 1997.

[5] 护城河,R.,“瓮语法”,RFC 21411997年5月。

[6] Moats, R., "A URN Namespace for IETF Documents", RFC 2648, August 1999.

[6] Moats,R.,“IETF文档的URN名称空间”,RFC 2648,1999年8月。

[7] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.

[7] Mealling,M.,“IETF XML注册表”,BCP 81,RFC 3688,2004年1月。

[8] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.

[8] Rosenberg,J.,Schulzrinne,H.,Camarillo,G.,Johnston,A.,Peterson,J.,Sparks,R.,Handley,M.,和E.Schooler,“SIP:会话启动协议”,RFC 3261,2002年6月。

[9] Murata, M., Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[9] Murata,M.,Laurent,S.,和D.Kohn,“XML媒体类型”,RFC 3023,2001年1月。

[10] Rosenberg, J., "A Presence Event Package for the Session Initiation Protocol (SIP)", RFC 3856, August 2004.

[10] Rosenberg,J.,“会话启动协议(SIP)的状态事件包”,RFC3856,2004年8月。

10. Informative References
10. 资料性引用

[11] Day, M., Rosenberg, J., and H. Sugano, "A Model for Presence and Instant Messaging", RFC 2778, February 2000.

[11] Day,M.,Rosenberg,J.,和H.Sugano,“状态和即时信息模型”,RFC 27782000年2月。

11. Acknowledgements
11. 致谢

The authors would like to thank Sean Olson, Steve Donovan, and Cullen Jennings for their detailed comments and assistance with the XML schema.

作者要感谢Sean Olson、Steve Donovan和Cullen Jennings对XML模式的详细评论和帮助。

12. Contributors
12. 贡献者

The following people were part of the original design team that developed the first version of this specification:

以下人员是开发本规范第一版的原始设计团队的一部分:

Dean Willis dynamicsoft 5100 Tennyson Parkway, Suite 1200 Plano, Texas 75024

德克萨斯州普莱诺市丁尼生大道5100号1200室迪安·威利斯动力软件公司75024

   EMail: dwillis@dynamicsoft.com
        
   EMail: dwillis@dynamicsoft.com
        

Robert Sparks dynamicsoft 5100 Tennyson Parkway, Suite 1200 Plano, Texas 75024

Robert Sparks dynamicsoft 5100丁尼生大道1200号套房,德克萨斯州普莱诺75024

   EMail: rsparks@dynamicsoft.com
        
   EMail: rsparks@dynamicsoft.com
        

Ben Campbell

班·坎贝尔

   EMail: ben@nostrum.com
        
   EMail: ben@nostrum.com
        

Henning Schulzrinne Columbia University M/S 0401 1214 Amsterdam Ave. New York, NY 10027-7003

亨宁·舒尔兹林内哥伦比亚大学M/S 0401 1214纽约州纽约市阿姆斯特丹大道10027-7003

   EMail: schulzrinne@cs.columbia.edu
        
   EMail: schulzrinne@cs.columbia.edu
        

Jonathan Lennox Columbia University M/S 0401 1214 Amsterdam Ave. New York, NY 10027-7003

乔纳森·伦诺克斯哥伦比亚大学M/S 0401 1214,纽约州纽约市阿姆斯特丹大道,邮编10027-7003

   EMail: lennox@cs.columbia.edu
        
   EMail: lennox@cs.columbia.edu
        

Christian Huitema Microsoft Corporation One Microsoft Way Redmond, WA 98052-6399

Christian Huitema微软公司华盛顿州雷德蒙微软大道一号,邮编:98052-6399

   EMail: huitema@microsoft.com
        
   EMail: huitema@microsoft.com
        

Bernard Aboba Microsoft Corporation One Microsoft Way Redmond, WA 98052-6399

伯纳德·阿博巴(Bernard Aboba)微软公司华盛顿州雷德蒙微软大道一号,邮编:98052-6399

   EMail: bernarda@microsoft.com
        
   EMail: bernarda@microsoft.com
        

David Gurle Reuters Corporation

大卫·古尔路透社公司

   EMail: David.Gurle@reuters.com
        
   EMail: David.Gurle@reuters.com
        

Jonathan Lennox contributed the text for the DTD and its usage that were part of earlier versions of this specification.

Jonathan Lennox为DTD及其使用提供了文本,这是本规范早期版本的一部分。

13. Author's Address
13. 作者地址

Jonathan Rosenberg dynamicsoft 600 Lanidex Plaza Parsippany, NJ 07054

Jonathan Rosenberg dynamicsoft 600新泽西州帕西帕尼拉尼德斯广场07054

   EMail: jdrosen@dynamicsoft.com
        
   EMail: jdrosen@dynamicsoft.com
        
14. Full Copyright Statement
14. 完整版权声明

Copyright (C) The Internet Society (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.

版权所有(C)互联网协会(2004年)。本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 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.

本文件及其包含的信息是按“原样”提供的,贡献者、他/她所代表或赞助的组织(如有)、互联网协会和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

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 procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见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.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/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的IETF-ipr@ietf.org.

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。