Network Working Group H. Schulzrinne Request for Comments: 4480 Columbia U. Category: Standards Track V. Gurbani Lucent P. Kyzivat J. Rosenberg Cisco July 2006
Network Working Group H. Schulzrinne Request for Comments: 4480 Columbia U. Category: Standards Track V. Gurbani Lucent P. Kyzivat J. Rosenberg Cisco July 2006
RPID: Rich Presence Extensions to the Presence Information Data Format (PIDF)
RPID:状态信息数据格式(PIDF)的丰富状态扩展
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 (2006).
版权所有(C)互联网协会(2006年)。
Abstract
摘要
The Presence Information Data Format (PIDF) defines a basic format for representing presence information for a presentity. This format defines a textual note, an indication of availability (open or closed) and a Uniform Resource Identifier (URI) for communication. The Rich Presence Information Data format (RPID) described here is an extension that adds optional elements to the Presence Information Data Format (PIDF). These extensions provide additional information about the presentity and its contacts. The information is designed so that much of it can be derived automatically, e.g., from calendar files or user activity.
存在信息数据格式(PIDF)定义了用于表示存在实体的存在信息的基本格式。该格式定义了文本注释、可用性指示(打开或关闭)和用于通信的统一资源标识符(URI)。这里描述的富状态信息数据格式(RPID)是一个扩展,它将可选元素添加到状态信息数据格式(PIDF)中。这些扩展提供了有关实体及其联系人的附加信息。信息的设计使得大部分信息可以自动派生,例如,从日历文件或用户活动中派生。
This extension includes information about what the person is doing, a grouping identifier for a tuple, when a service or device was last used, the type of place a person is in, what media communications might remain private, the relationship of a service tuple to another presentity, the person's mood, the time zone it is located in, the type of service it offers, an icon reflecting the presentity's status, and the overall role of the presentity.
此扩展包括有关此人正在做什么、元组的分组标识符、上次使用服务或设备的时间、此人所在的位置类型、可能保持隐私的媒体通信、服务元组与另一存在实体的关系、此人的情绪、其所在的时区、,它提供的服务类型、反映实体状态的图标以及实体的整体角色。
These extensions include presence information for persons, services (tuples), and devices.
这些扩展包括人员、服务(元组)和设备的状态信息。
Table of Contents
目录
1. Introduction ....................................................2 2. Terminology and Conventions .....................................4 3. RPID Elements ...................................................4 3.1. Overview ...................................................4 3.2. Activities Element .........................................7 3.3. Class Element .............................................10 3.4. Device Identifier .........................................10 3.5. Mood Element ..............................................10 3.6. Place-is Element ..........................................12 3.7. Place-type Element ........................................13 3.8. Privacy Element ...........................................14 3.9. Relationship Element ......................................15 3.10. Service Class ............................................15 3.11. Sphere Element ...........................................16 3.12. Status-Icon Element ......................................16 3.13. Time Offset ..............................................17 3.14. User-Input Element .......................................17 4. Example ........................................................18 5. XML Schema Definitions .........................................20 5.1. urn:ietf:params:xml:ns:pidf:rpid ..........................20 6. Extending RPID .................................................30 7. IANA Considerations ............................................31 7.1. URN Sub-Namespace Registration for ........................31 'urn:ietf:params:xml:ns:pidf:rpid' 7.2. Schema Registration for Schema ............................32 'urn:ietf:params:xml:ns:pidf:status:rpid' 8. Internationalization Considerations ............................32 9. Security Considerations ........................................32 10. References ....................................................33 10.1. Normative References .....................................33 10.2. Informative References ...................................34 Appendix A. Acknowledgements .....................................35
1. Introduction ....................................................2 2. Terminology and Conventions .....................................4 3. RPID Elements ...................................................4 3.1. Overview ...................................................4 3.2. Activities Element .........................................7 3.3. Class Element .............................................10 3.4. Device Identifier .........................................10 3.5. Mood Element ..............................................10 3.6. Place-is Element ..........................................12 3.7. Place-type Element ........................................13 3.8. Privacy Element ...........................................14 3.9. Relationship Element ......................................15 3.10. Service Class ............................................15 3.11. Sphere Element ...........................................16 3.12. Status-Icon Element ......................................16 3.13. Time Offset ..............................................17 3.14. User-Input Element .......................................17 4. Example ........................................................18 5. XML Schema Definitions .........................................20 5.1. urn:ietf:params:xml:ns:pidf:rpid ..........................20 6. Extending RPID .................................................30 7. IANA Considerations ............................................31 7.1. URN Sub-Namespace Registration for ........................31 'urn:ietf:params:xml:ns:pidf:rpid' 7.2. Schema Registration for Schema ............................32 'urn:ietf:params:xml:ns:pidf:status:rpid' 8. Internationalization Considerations ............................32 9. Security Considerations ........................................32 10. References ....................................................33 10.1. Normative References .....................................33 10.2. Informative References ...................................34 Appendix A. Acknowledgements .....................................35
The Presence Information Data Format (PIDF) definition [8] describes a basic presence information data format, encoded as an Extensible Markup Language (XML) [9] (SCHEMA-1 [10]) (SCHEMA-2 [11]), for exchanging presence information in systems compliant with the common model for presence and instant messaging [5]. It consists of a <presence> root element, zero or more <tuple> elements carrying presence information including a Uniform Resource Identifier (URI) for communication, zero or more <note> elements, and zero or more extension elements from other name spaces. Each tuple defines a basic status of either "open" or "closed".
状态信息数据格式(PIDF)定义[8]描述了一种基本的状态信息数据格式,编码为可扩展标记语言(XML)[9](模式1[10])(模式2[11]),用于在符合状态和即时消息传递通用模型的系统中交换状态信息[5]。它由一个<presence>根元素、零个或多个携带状态信息的<tuple>元素(包括用于通信的统一资源标识符(URI))、零个或多个<note>元素以及来自其他名称空间的零个或多个扩展元素组成。每个元组定义“打开”或“关闭”的基本状态。
However, it is frequently useful to convey additional information about a user that needs to be interpreted by an automata, and is therefore not appropriate to be placed in the <note> element of the PIDF document, which is typically intended for the human observer. Therefore, this specification defines extensions to the PIDF document format for conveying richer presence information. Generally, the extensions have been chosen to provide features common in existing presence systems at the time of writing, in addition to elements that could readily be derived automatically from existing sources of presence, such as calendaring systems or communication devices, or sources describing the user's current physical environment.
然而,传达需要由自动机解释的关于用户的附加信息通常是有用的,因此不适合放置在PIDF文档的<note>元素中,该元素通常是针对人类观察者的。因此,本规范定义了PIDF文档格式的扩展,用于传递更丰富的状态信息。通常,除了可以容易地从现有存在源(例如日历系统或通信设备)或描述用户当前物理环境的源自动导出的元素之外,选择扩展以提供在撰写本文时现有存在系统中常见的特征。
The presence data model [16] defines the concepts of service, device, and person as the data elements that are used to model the state of a presentity. (The term "presentity" is defined in RFC 2778 [5] and abbreviates presence entity. A presentity provides presence information to a presence service.) Services are encoded using the <tuple> element, defined in PIDF; devices and persons are represented by the <device> and <person> XML elements, respectively, defined in the data model [16]. However, neither PIDF nor the data model defines presence attributes beyond the <basic> status element.
存在数据模型[16]将服务、设备和人员的概念定义为用于对存在实体的状态建模的数据元素。(术语“存在实体”在RFC 2778[5]中定义,并缩写为存在实体。存在实体向存在服务提供存在信息。)使用PIDF中定义的<tuple>元素对服务进行编码;设备和人员分别由数据模型[16]中定义的<device>和<person>XML元素表示。但是,PIDF和数据模型都没有定义状态元素之外的状态属性。
This specification defines additional presence attributes to describe person, service, and device data elements, summarized as "Rich Presence Information Data format for presence" (RPID). These attributes are specified by XML elements that extend the PIDF <tuple> element and the <device> and <person> elements defined in the data model.
本规范定义了用于描述人员、服务和设备数据元素的其他状态属性,总结为“状态的丰富状态信息数据格式”(RPID)。这些属性由扩展数据模型中定义的PIDF<tuple>元素和<device>和<person>元素的XML元素指定。
This extension has two main goals:
此扩展有两个主要目标:
1. Provide rich presence information that is at least as powerful as common commercial presence systems. Such feature-parity simplifies transition to systems complying with the Common Profile for Instant Messaging (CPIM) [14], both in terms of user acceptance and protocol conversion.
1. 提供丰富的状态信息,其功能至少与普通商业状态系统相同。在用户接受和协议转换方面,这种功能奇偶性简化了向符合即时消息(CPIM)[14]通用配置文件的系统的过渡。
2. Maintain backward-compatibility with PIDF, so that PIDF-only watchers and gateways can continue to function properly, naturally without access to the functionality described here.
2. 保持与PIDF的向后兼容性,以便只有PIDF的监视程序和网关可以继续正常工作,而不需要访问此处描述的功能。
We make no assumptions as to how the information in the RPID elements is generated. Experience has shown that users are not always diligent about updating their presence status. Thus, we want to make it as easy as possible to derive RPID information from other information sources, such as personal calendars, the status of communication devices such as telephones, typing activity, and
我们不假设RPID元素中的信息是如何生成的。经验表明,用户并不总是努力更新其状态。因此,我们希望尽可能容易地从其他信息源(如个人日历、通信设备(如电话)的状态、打字活动等)获取RPID信息
physical presence detectors as commonly found in energy-management systems.
能量管理系统中常见的物理存在检测器。
Many of the elements correspond to data commonly found in personal calendars. Thus, we attempted to align some of the extensions with the usage found in calendar formats such as iCal [13].
许多元素对应于个人日历中常见的数据。因此,我们尝试将一些扩展与日历格式(如iCal[13])中的用法相一致。
The information in a presence document can be generated by a single entity or can be composed from information published by multiple entities.
状态文档中的信息可以由单个实体生成,也可以由多个实体发布的信息组成。
Note that PIDF documents and this extension can be used in two different contexts, namely, by the presentity to publish its presence status and by the presence server to notify some set of watchers. The presence server MAY compose, translate, or filter the published presence state before delivering customized presence information to the watcher. For example, it may merge presence information from multiple presence user agents, remove whole elements, translate values in elements, or remove information from elements. Mechanisms that filter calls and other communications to the presentity can subscribe to this presence information just like a regular watcher and in turn generate automated rules, such as scripts [15], that govern the actual communications behavior of the presentity. Details are described in the data model document.
请注意,PIDF文档和此扩展可在两种不同的上下文中使用,即,由呈现实体发布其呈现状态和由呈现服务器通知某组观察者。呈现服务器可以在将定制的呈现信息交付给观察者之前合成、翻译或过滤发布的呈现状态。例如,它可以合并来自多个状态用户代理的状态信息、删除整个元素、转换元素中的值或删除元素中的信息。过滤对存在实体的呼叫和其他通信的机制可以像普通观察者一样订阅此存在信息,并反过来生成自动规则,如控制存在实体的实际通信行为的脚本[15]。有关详细信息,请参见数据模型文档。
Since RPID is a PIDF XML document, it also uses the content type application/pidf+xml.
由于RPID是一个PIDF XML文档,因此它还使用内容类型application/PIDF+XML。
This memo makes use of the vocabulary defined in the IMPP model document [5]. Terms such as CLOSED, INSTANT MESSAGE, OPEN, PRESENCE SERVICE, PRESENTITY, WATCHER, and WATCHER USER AGENT in the memo are used in the same meaning as defined therein.
本备忘录使用了IMPP模型文件[5]中定义的词汇表。备忘录中的术语(如关闭、即时消息、打开、状态服务、状态实体、观察者和观察者用户代理)的含义与备忘录中的定义相同。
The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14, RFC 2119 [1].
本文件中的关键词“必须”、“不得”、“必需”、“应该”、“不应该”、“建议”、“可能”和“可选”应按照BCP 14、RFC 2119[1]中的说明进行解释。
Some of the RPID elements describe services, some devices, and some the person. As such, they either extend <tuple>, <device>, or <person>, respectively. Below, we summarize the RPID elements. The next sections will then provide more detailed descriptions.
一些RPID元素描述服务、一些设备和一些人。因此,它们分别扩展<tuple>、<device>或<person>。下面,我们总结一下RPID元素。接下来的部分将提供更详细的描述。
activities: The <activities> status element enumerates what the person is doing.
活动:<activities>status元素枚举此人正在做什么。
class: An identifier that groups similar person elements, devices, or services.
类:对相似的人员元素、设备或服务进行分组的标识符。
deviceID: A device identifier in a tuple references a <device> element, indicating that this device contributes to the service described by the tuple.
deviceID:元组中的设备标识符引用<device>元素,表示该设备为元组描述的服务做出贡献。
mood: The <mood> status element indicates the mood of the person.
情绪:<mood>状态元素表示人的情绪。
place-is: The <place-is> status element reports on the properties of the place the presentity is currently at, such as the levels of light and noise.
place is:<place is>状态元素报告实体当前所在位置的属性,例如灯光和噪音级别。
place-type: The <place-type> status elements reports the type of place the person is located in, such as 'classroom' or 'home'.
地点类型:<地点类型>状态元素报告人员所在地点的类型,如“教室”或“家”。
privacy: The <privacy> element distinguishes whether the communication service is likely to be observable by other parties.
隐私:<privacy>元素区分通信服务是否可能被其他方观察到。
relationship: When a service is likely to reach a user besides the person associated with the presentity, the relationship indicates how that user relates to the person.
关系:当服务可能到达与实体相关联的人员之外的用户时,关系表示该用户与该人员的关系。
service-class: The <service-class> element describes whether the service is delivered electronically, is a postal or delivery service, or describes in-person communications.
服务类别:<service class>元素描述服务是以电子方式交付、是邮政服务还是交付服务,或者描述面对面通信。
sphere: The <sphere> element characterizes the overall current role of the presentity.
球体:<sphere>元素描述了存在实体当前的整体角色。
status-icon: The <status-icon> element depicts the current status of the person or service.
状态图标:<status icon>元素描述人员或服务的当前状态。
time-offset: The <time-offset> status element quantifies the time zone the person is in, expressed as the number of minutes away from UTC.
时间偏移量:<time offset>status元素量化人员所在的时区,表示为距UTC的分钟数。
user-input: The <user-input> element records the user-input or usage state of the service or device, based on human user input.
用户输入:<user input>元素根据用户输入记录服务或设备的用户输入或使用状态。
The 'From/until?' column in Table 1 indicates by an 'x' that the element can take 'from' and 'until' attributes. An 'x' in the 'Note?' column marks elements that can include a <note> element. The usage of these elements within the <person>, <tuple>, and <device> elements is shown in columns 4 through 6. An 'x' in the respective
The 'From/until?' column in Table 1 indicates by an 'x' that the element can take 'from' and 'until' attributes. An 'x' in the 'Note?' column marks elements that can include a <note> element. The usage of these elements within the <person>, <tuple>, and <device> elements is shown in columns 4 through 6. An 'x' in the respective
column indicates that the RPID element MAY appear as a child of that element.
列指示RPID元素可能显示为该元素的子元素。
+-----------------+------------+------+----------+---------+----------+ | Element | From/until | Note | <person> | <tuple> | <device> | | | ? | ? | | | | +-----------------+------------+------+----------+---------+----------+ | <activities> | x | x | x | | | | <class> | | | x | x | x | | <deviceID> | | | | x | | | <mood> | x | x | x | | | | <place-is> | x | x | x | | | | <place-type> | x | x | x | | | | <privacy> | x | x | x | x | | | <relationship> | | x | | x | | | <service-class> | | x | | x | | | <sphere> | x | | x | | | | <status-icon> | x | | x | x | | | <time-offset> | x | | x | | | | <user-input> | | | x | x | x | +-----------------+------------+------+----------+---------+----------+
+-----------------+------------+------+----------+---------+----------+ | Element | From/until | Note | <person> | <tuple> | <device> | | | ? | ? | | | | +-----------------+------------+------+----------+---------+----------+ | <activities> | x | x | x | | | | <class> | | | x | x | x | | <deviceID> | | | | x | | | <mood> | x | x | x | | | | <place-is> | x | x | x | | | | <place-type> | x | x | x | | | | <privacy> | x | x | x | x | | | <relationship> | | x | | x | | | <service-class> | | x | | x | | | <sphere> | x | | x | | | | <status-icon> | x | | x | x | | | <time-offset> | x | | x | | | | <user-input> | | | x | x | x | +-----------------+------------+------+----------+---------+----------+
Table 1
表1
In general, it is unlikely that a presentity will publish or announce all of these elements at the same time. Rather, these elements were chosen to give the presentity maximum flexibility in deriving this information from existing sources, such as calendaring tools, device activity sensors, or location trackers, as well as to manually configure this information. In either case, there is no guarantee that the information is accurate, as users forget to update calendars or may not always adjust the presence information manually.
一般来说,一个实体不大可能同时发布或宣布所有这些要素。相反,选择这些元素是为了让实体在从现有来源(如日历工具、设备活动传感器或位置跟踪器)获取此信息以及手动配置此信息时具有最大的灵活性。在这两种情况下,都无法保证信息的准确性,因为用户忘记了更新日历,或者可能并不总是手动调整状态信息。
The namespace URIs for these elements defined by this specification are URNs [2], using the namespace identifier 'ietf' defined by [4] and extended by [6]:
本规范定义的这些元素的命名空间URI为URN[2],使用由[4]定义并由[6]扩展的命名空间标识符“ietf”:
urn:ietf:params:xml:ns:pidf:rpid
urn:ietf:params:xml:ns:pidf:rpid
The elements marked with the value 'x' in column 2 of Table 1 MAY be qualified with the 'from' and 'until' attributes to describe the absolute time when the element assumed this value and the absolute time until which this element is expected to be valid. Note that there can be multiple elements of the same type, whose time ranges SHOULD NOT overlap.
表1第2列中标记有值“x”的元素可以使用“from”和“until”属性限定,以描述元素假设该值的绝对时间以及该元素预期有效的绝对时间。请注意,可以有多个相同类型的元素,其时间范围不应重叠。
Elements MAY contain an 'id' attribute that allows to uniquely reference the element.
元素可能包含允许唯一引用元素的“id”属性。
Enumerations can be extended by elements from other namespaces, as described in Section 6. The <activities>, <mood>, and <place-type> elements can also take <other> elements containing text, for custom free-text values specific to an application.
枚举可以通过来自其他名称空间的元素进行扩展,如第6节所述。<activities>、<mood>和<place type>元素也可以接受包含文本的<other>元素,以获得特定于应用程序的自定义自由文本值。
All elements described in this document are optional within PIDF documents.
本文档中描述的所有元素在PIDF文档中都是可选的。
The <activities> element describes what the person is currently doing, expressed as an enumeration of activity-describing elements. A person can be engaged in multiple activities at the same time, e.g., traveling and having a meal. The <activities> element can be quite helpful to the watcher in judging how appropriate a communication attempt is and which means of communications is most likely to succeed and not annoy the person. The activity indications correspond roughly to the category field in calendar entries, such as Section 4.8.1.2 of RFC 2445 [13].
<activities>元素描述人员当前正在做的事情,表示为描述元素的活动枚举。一个人可以同时从事多种活动,例如旅行和吃饭。<activities>元素对于观察者判断一次通信尝试是否合适以及哪种通信方式最有可能成功且不会惹恼此人非常有帮助。活动指示大致对应于日历条目中的类别字段,如RFC 2445[13]第4.8.1.2节。
An activities enumeration consists of one or more elements using elements drawn from the list below, a string enclosed in the <other> element, or IANA-registered values from other namespaces (Section 7).
activities枚举由一个或多个元素组成,这些元素使用以下列表中的元素、包含在<other>元素中的字符串或来自其他名称空间的IANA注册值(第7节)。
If a person publishes an activity of "permanent-absence", it is likely that all services will report a status of CLOSED. In general, services MAY advertise either service status for any activity value.
如果一个人发布了“永久缺勤”的活动,则很可能所有服务都会报告关闭状态。一般来说,服务可以为任何活动值发布服务状态。
Activities such as <appointment>, <breakfast>, <dinner>, <holiday>, <lunch>, <meal>, <meeting>, <performance>, <travel>, or <vacation> can often be derived from calendar information.
诸如<约会>,<早餐>,<晚餐>,<假日>,<午餐>,<用餐>,<会议>,<演出>,<旅行>,或<假期>等活动通常可以从日历信息中派生出来。
appointment: The person has a calendar appointment, without specifying exactly of what type. This activity is indicated if more detailed information is not available or the person chooses not to reveal more information.
约会:此人有日历约会,但没有指定具体的约会类型。如果无法获得更详细的信息或该人员选择不透露更多信息,则表示该活动。
away: The person is physically away from all interactive communication devices. This activity element was included since it can often be derived automatically from security systems, energy management systems, or entry badge systems. Although this activity would typically be associated with a status of CLOSED across all services, a person may declare himself or herself away
远离:该人身体远离所有交互式通信设备。此活动元素包括在内,因为它通常可以自动从安全系统、能源管理系统或入口徽章系统派生。尽管此活动通常与所有服务的关闭状态相关联,但一个人可能会声明他或她自己离开
to discourage communication, but indicate that he or she still can be reached if needed. However, communication attempts might reach an answering service, for example.
不鼓励沟通,但表示在需要时仍可以联系到他或她。然而,例如,通信尝试可能到达应答服务。
breakfast: The person is eating the first meal of the day, usually eaten in the morning.
早餐:一个人正在吃一天中的第一顿饭,通常在早上吃。
busy: The person is busy, without further details. Although this activity would typically be associated with a status of CLOSED across all services, a person may declare himself or herself busy to discourage communication, but indicate that he or she still can be reached if needed.
忙:此人很忙,没有进一步的细节。尽管此活动通常与所有服务的关闭状态相关联,但一个人可能会声明他或她自己很忙,以阻止通信,但表示如果需要,仍然可以联系到他或她。
dinner: The person is having his or her main meal of the day, eaten in the evening or at midday.
晚餐:一个人正在吃他或她一天的主食,在晚上或中午吃。
holiday: This is a scheduled national or local holiday.
假日:这是一个预定的国家或地方假日。
in-transit: The person is riding in a vehicle, such as a car, but not steering. The <place-type> element provides more specific information about the type of conveyance the person is using.
在途:该人乘坐车辆,如汽车,但不驾驶。<place type>元素提供了有关人员正在使用的交通工具类型的更具体信息。
looking-for-work: The presentity is looking for (paid) work.
寻找工作:实体正在寻找(有报酬的)工作。
lunch: The person is eating his or her midday meal.
午餐:该人正在吃他或她的午餐。
meal: The person is scheduled for a meal, without specifying whether it is breakfast, lunch, or dinner, or some other meal.
用餐:该人员被安排用餐,但不指定是早餐、午餐、晚餐还是其他用餐。
meeting: The person is in an assembly or gathering of people, as for a business, social, or religious purpose. A meeting is a sub-class of an appointment.
集会:为商业、社会或宗教目的而参加集会或聚会的人。会议是约会的一个子类。
on-the-phone: The person is talking on the telephone. This activity is included since it can often be derived automatically.
在电话上:这个人正在打电话。此活动包括在内,因为它通常可以自动派生。
other: The person is engaged in an activity with no defined representation as an <activities> element. The enclosed string describes the activity in plain text.
其他:该人员从事的活动没有定义为<activities>元素。所附字符串以纯文本形式描述活动。
performance: A performance is a sub-class of an appointment and includes musical, theatrical, and cinematic performances as well as lectures. It is distinguished from a meeting by the fact that the person may either be lecturing or be in the audience, with a potentially large number of other people, making interruptions particularly noticeable.
表演:表演是约会的一个子类,包括音乐、戏剧和电影表演以及讲座。它与会议的区别在于,该人可能正在演讲,也可能在听众中,与潜在的大量其他人在一起,这使得打断特别明显。
permanent-absence: The person will not return for the foreseeable future, e.g., because it is no longer working for the company. This activity is associated with a status of CLOSED across all services.
长期缺勤:该人员在可预见的未来不会返回,例如,因为他不再为公司工作。此活动与所有服务的关闭状态关联。
playing: The person is occupying himself or herself in amusement, sport, or other recreation.
玩:一个人正忙于娱乐、运动或其他娱乐活动。
presentation: The person is giving a presentation, lecture, or participating in a formal round-table discussion.
演示:该人员正在进行演示、演讲或参加正式圆桌讨论。
shopping: The person is visiting stores in search of goods or services.
购物:这个人正在商店里寻找商品或服务。
sleeping: This activity category can often be generated automatically from a calendar, local time information, or biometric data.
睡眠:此活动类别通常可以根据日历、本地时间信息或生物特征数据自动生成。
spectator: The person is observing an event, such as a sports event.
观众:观看某一事件的人,如体育赛事。
steering: The person is controlling a vehicle, watercraft, or plane.
操纵:操纵车辆、船只或飞机的人。
travel: The person is on a business or personal trip, but not necessarily in-transit.
旅行:此人正在出差或私人旅行,但不一定在途中。
tv: The person is watching television.
电视:那个人正在看电视。
unknown: The activity of the person is unknown. This element is generally not used together with other activities.
未知:此人的活动未知。此元素通常不与其他活动一起使用。
vacation: A period of time devoted to pleasure, rest, or relaxation.
假期:用于娱乐、休息或放松的一段时间。
working: The presentity is engaged in, typically paid, labor, as part of a profession or job.
工作:作为职业或工作的一部分,存在实体从事劳动,通常是有报酬的。
worship: The presentity is participating in religious rites.
敬拜:存在实体参与宗教仪式。
The <activities> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<activities>元素可以使用第3.1节中描述的“from”和“until”属性进行限定。
Example:
例子:
<activities> <note>Enjoying the morning paper</note> <vacation/> <breakfast/> <other>reading</other> </activities>
<activities> <note>Enjoying the morning paper</note> <vacation/> <breakfast/> <other>reading</other> </activities>
The <class> element describes the class of the service, device, or person. Multiple elements can have the same class name within a presence document, but each person, service, or device can only have one class label. The naming of classes is left to the presentity. The presentity can use this information to group similar services, devices, or person elements or to convey information that the presence agent can use for filtering or authorization. This information is not generally presented to the watcher user interface.
元素描述服务、设备或人员的类别。在一个状态文档中,多个元素可以具有相同的类名,但每个人、服务或设备只能有一个类标签。类的命名由存在实体负责。呈现实体可以使用该信息来分组类似的服务、设备或人员元素,或者传递呈现代理可以用于过滤或授权的信息。此信息通常不会呈现给观察者用户界面。
The <class> element MUST NOT be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<class>元素不得使用第3.1节所述的“from”和“until”属性进行限定。
The <deviceID> element in the <tuple> element references the device that provides a particular service. The element is defined syntactically in the data model [16] schema. One service can be provided by multiple devices, so that each service tuple may contain zero or more <deviceID> elements. There is no significance in the order of these elements.
<tuple>元素中的<deviceID>元素引用提供特定服务的设备。元素在数据模型[16]模式中按语法定义。一个服务可以由多个设备提供,因此每个服务元组可以包含零个或多个<deviceID>元素。这些元素的顺序没有意义。
The <deviceID> element MUST NOT be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<deviceID>元素不得使用第3.1节所述的“from”和“until”属性进行限定。
The <mood> element describes the mood of the presentity. The mood values are enumerated chosen by the presentity. The mood itself is provided as the element name of a defined child element of the <mood> element (e.g., <happy/>); one such child element is REQUIRED. The user MAY also specify a natural-language description of, or reason for, the mood in the <note> child of the <mood> element, which is OPTIONAL. (This definition follows the Jabber Extension JEP-107.) It is RECOMMENDED that an implementation support the mood values proposed in Jabber Extension JEP-0107, which in turn are a superset of the Wireless Village [18] mood values and the values enumerated in the Affective Knowledge Representation that has been defined by Lisetti [17]:
<mood>元素描述存在实体的情绪。情绪值由存在实体选择。语气本身作为<mood>元素(例如,<happy/>)的已定义子元素的元素名提供;需要一个这样的子元素。用户还可以在<mood>元素的<note>子元素中指定情绪的自然语言描述或原因,这是可选的。(该定义遵循Jabber扩展JEP-107)。建议实现支持Jabber扩展JEP-0107中提出的情绪值,这些情绪值又是无线村[18]情绪值和Lisetti[17]定义的情感知识表示中列举的值的超集:
A mood enumeration consists of one or more elements using elements drawn from the list below, a string enclosed in the <other> element, or IANA-registered values from other namespaces (Section 7).
情绪枚举由一个或多个元素组成,这些元素使用从下面列表中提取的元素、包含在<other>元素中的字符串或来自其他名称空间的IANA注册值(第7节)。
The <mood> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<mood>元素可以使用第3.1节中描述的“from”和“until”属性进行限定。
o afraid o amazed o angry o annoyed o anxious o ashamed o bored o brave o calm o cold o confused o contented o cranky o curious o depressed o disappointed o disgusted o distracted o embarrassed o excited o flirtatious o frustrated o grumpy o guilty o happy o hot o humbled o humiliated o hungry o hurt o impressed o in_awe o in_love o indignant o interested o invincible o jealous o lonely o mean o moody o nervous o neutral o offended o other o playful o proud o relieved o remorseful
o 害怕o惊讶o愤怒o恼怒o焦虑o羞耻o无聊o勇敢o平静o冷漠o困惑o满足o暴躁o好奇o沮丧o失望o厌恶o分心o尴尬o兴奋o轻浮o沮丧o暴躁o内疚o快乐o炎热o谦卑o羞辱o饥饿o伤害o感动o敬畏o爱o愤怒o感兴趣的o不可战胜的o嫉妒的o孤独的o卑鄙的o喜怒无常的o神经质的o中立的o冒犯的o其他的o嬉戏的o骄傲的o解脱的o悔恨的
o restless o sad o sarcastic o serious o shocked o shy o sick o sleepy o stressed o surprised o thirsty o unknown o worried
o 不安啊悲伤啊讽刺啊严肃啊震惊啊害羞啊生病啊困倦啊紧张啊惊讶啊口渴啊未知啊担忧
Example:
例子:
<mood> <note>I'm ready for the bar BOF!</note> <sleepy/> <thirsty/> </mood>
<mood> <note>I'm ready for the bar BOF!</note> <sleepy/> <thirsty/> </mood>
The <place-is> element describes properties of the place the person is currently at. This offers the watcher an indication of what kind of communication is likely to be successful. Each major media type has its own set of attributes. Omitting the element indicates that the property is unknown.
<placeis>元素描述此人当前所在位置的属性。这为观察者提供了一个什么样的沟通可能会成功的指示。每种主要媒体类型都有自己的属性集。省略该元素表示该属性未知。
For audio, we define the following attributes:
对于音频,我们定义以下属性:
noisy: The person is in a place with a level of background noise that makes audio communications difficult.
嘈杂:人所处的环境噪声水平会使音频通信变得困难。
ok: The environmental conditions are suitable for audio communications.
ok:环境条件适合音频通信。
quiet: The person is in a place such as a library, restaurant, place of worship, or theater that discourages noise, conversation, and other distractions.
安静:该人所在的地方,如图书馆、餐厅、礼拜场所或剧院,不鼓励吵闹、交谈和其他干扰。
unknown: The place attributes for audio are unknown.
未知:音频的位置属性未知。
For video, we define the following attributes:
对于视频,我们定义以下属性:
toobright: The person is in a bright place, sufficient for good rendering on video.
toobright:人处于明亮的位置,足以在视频上进行良好渲染。
ok: The environmental conditions are suitable for video.
好的:环境条件适合录像。
dark: The person is in a dark place, and thus the camera may not be able to capture a good image.
黑暗:人处于黑暗的地方,因此相机可能无法捕捉到良好的图像。
unknown: The place attributes for video are unknown.
未知:视频的位置属性未知。
For text (real-time text and instant messaging), we define
对于文本(实时文本和即时消息),我们定义
uncomfortable: Typing or other text entry is uncomfortable.
不舒服:打字或其他文字输入不舒服。
inappropriate: Typing or other text entry is inappropriate, e.g., since the user is in a vehicle or house of worship.
不适当:键入或其他文本输入是不适当的,例如,因为用户在车辆或礼拜堂中。
ok: The environmental conditions are suitable for text-based communications.
ok:环境条件适合基于文本的通信。
unknown: The place attributes for text are unknown.
未知:文本的位置属性未知。
This list can be augmented by free-text values in a note or additional IANA-registered values (Section 7).
该列表可以通过注释中的自由文本值或其他IANA注册值(第7节)进行扩充。
The <place-is> element contains other elements, e.g.,
<place is>元素包含其他元素,例如。,
<place-is> <audio> <noisy /> </audio> <video> <dark /> </video> </place-is>
<place-is> <audio> <noisy /> </audio> <video> <dark /> </video> </place-is>
The <place-is> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<place is>元素可以使用第3.1节中描述的“from”和“until”属性进行限定。
The <place-type> element describes the type of place the person is currently at. This offers the watcher an indication of what kind of communication is likely to be appropriate. The initial set of values is contained in RFC 4589 [12].
<place type>元素描述此人当前所在的地点类型。这为观察者提供了一个什么样的沟通可能是合适的指示。初始值集包含在RFC 4589[12]中。
This list can be augmented by free-text values or additional IANA-registered values as described in RFC 4589.
如RFC 4589中所述,此列表可通过自由文本值或其他IANA注册值进行扩充。
The <place-type> element is a choice of elements, as in
<place type>元素是元素的选择,如中所示
<place-type> <pt:street/> </place-type>
<place-type> <pt:street/> </place-type>
The <place-type> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<place type>元素可以使用第3.1节中所述的“from”和“until”属性进行限定。
The <privacy> element indicates which types of communication third parties in the vicinity of the presentity are unlikely to be able to intercept accidentally or intentionally. This does not in any way describe the privacy properties of the electronic communication channel, e.g., properties of the encryption algorithm or the network protocol used.
<privacy>元素表示存在实体附近的第三方不可能意外或故意拦截的通信类型。这并不以任何方式描述电子通信信道的隐私属性,例如,所使用的加密算法或网络协议的属性。
audio: Inappropriate individuals are not likely to overhear audio communications.
音频:不适当的个人不太可能无意中听到音频通信。
text: Inappropriate individuals are not likely to see text communications.
文本:不适当的个人不太可能看到文本通信。
unknown: This information is unknown.
未知:此信息未知。
video: Inappropriate individuals are not likely to see video communications.
视频:不适当的个人不太可能看到视频通信。
The <privacy> element can be used by logic executing on the watcher or by a composer to filter, sort and label tuples. For example, a composer may have rules that limit the publication of tuples labeled "private" to a select subset of the watchers.
<privacy>元素可由在监视程序上执行的逻辑或编写器用于过滤、排序和标记元组。例如,编写器可能有一些规则,将标记为“private”的元组的发布限制为观察者的选定子集。
The <privacy> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<privacy>元素可以使用第3.1节所述的“from”和“until”属性进行限定。
Example:
例子:
<privacy> <text/> <audio/> </privacy>
<privacy> <text/> <audio/> </privacy>
The <relationship> element extends <tuple> and designates the type of relationship an alternate contact has with the presentity. This element is provided only if the tuple refers to somebody other than the presentity. Relationship values include "family", "friend", "associate" (e.g., for a colleague), "assistant", "supervisor", "self", and "unknown". The default is "self".
<relationship>元素扩展了<tuple>,并指定了备用联系人与存在实体之间的关系类型。仅当元组引用的是PresentEntity以外的其他人时,才提供此元素。关系价值观包括“家庭”、“朋友”、“同事”(如同事)、“助理”、“主管”、“自我”和“未知”。默认值为“self”。
If a relationship is indicated, the URI in the <contact> element refers to the entity, such as the assistant, that has a relationship to the presentity, not the presentity itself.
如果指示了关系,<contact>元素中的URI指的是实体,例如助理,它与存在实体有关系,而不是存在实体本身。
Like tuples without a <relationship> qualifier, the <contact> element for tuples labeled with a relationship can contain either a communication URI such as "im", "sip", "sips", "h323", "tel", or "mailto", or a presence URI, such as "pres" or "sip".
与没有<relationship>限定符的元组类似,用关系标记的元组的<contact>元素可以包含诸如“im”、“sip”、“sips”、“h323”、“tel”或“mailto”之类的通信URI,或诸如“pres”或“sip”之类的存在URI。
Example:
例子:
<relationship> <friend/> </relationship>
<relationship> <friend/> </relationship>
The <service-class> element extends <tuple> and designates the type of service offered.
<service class>元素扩展了<tuple>并指定提供的服务类型。
electronic: Delivery of information by electronic means, i.e., without delivering physical objects. Examples include telephone, fax, email, instant messaging, and SMS.
电子的:通过电子手段传递信息,即不传递实物。示例包括电话、传真、电子邮件、即时消息和SMS。
postal: Delivery by the postal service, e.g., as a letter, parcel, or postcard. Delivery could be to a post office box or central mailroom rather than the presentity's office location, for example.
邮递:通过邮政服务递送,如信件、包裹或明信片。例如,投递可以是邮政信箱或中央收发室,而不是实体的办公地点。
courier: Delivery by messenger, overnight delivery, or courier. Courier-delivered messages are usually delivered to a receptionist rather than, say, a mailroom or receiving department.
快递员:通过快递员、隔夜快递或快递员递送。信使传递的信息通常被传递给接待员,而不是收发室或接收部门。
freight: Delivery by freight carrier, typically of larger objects that are not sent by postal mail or courier. The recipient is often the shipping department or a loading dock.
运费:由货运公司交付,通常是指不通过邮政邮件或快递发送的较大物品。收件人通常是运输部门或装货码头。
in-person: Describes the coordinates for visits in person, as by a visitor, i.e., usually somebody's office or residence.
面对面:描述面对面访问的坐标,如访客,即通常是某人的办公室或住所。
unknown: The type of service is unknown.
未知:服务的类型未知。
Electronic service is implied if omitted. The service types 'postal', 'courier', 'freight', and 'in-person' MUST NOT be used unless the contact URI is empty. Additional data elements defined elsewhere describe the physical service delivery address for the in-person, postal, or delivery services. Such addresses might be specified in geospatial coordinates, civic addresses, or some specialized address format, e.g., for interstellar addresses or a company-specific delivery system.
如果省略,则暗示电子服务。除非联系人URI为空,否则不得使用“邮政”、“快递”、“货运”和“亲自”服务类型。其他地方定义的其他数据元素描述了亲自、邮寄或递送服务的实际服务递送地址。这些地址可以用地理空间坐标、公民地址或某些特殊的地址格式指定,例如星际地址或公司特定的传送系统。
Example:
例子:
<service-class><postal/></service-class>
<service-class><postal/></service-class>
The <sphere> element designates the current state and role that the person plays. For example, it might describe whether the person is in a work mode, at home, or participating in activities related to some other organization such as the IETF or a church. This document does not define names for these spheres except for two common ones, "work" and "home", as well as "unknown".
<sphere>元素指定该人员所扮演的当前状态和角色。例如,它可以描述此人是否处于工作模式、是否在家、是否参与与IETF或教堂等其他组织相关的活动。本文件未定义这些领域的名称,除了两个常见的名称,“工作”和“家庭”以及“未知”。
Spheres allow the person to easily turn on or off certain rules that depend on what groups of people should be made aware of the person's status. For example, if the person is a Boy Scout leader, he might set the sphere to "scouting" and then have a rule set that allows other scout masters in his troop to see his presence status. As soon as he switches his status to "work", "home", or some other sphere, the fellow scouts would lose access.
球体允许用户轻松打开或关闭某些规则,这些规则取决于应让哪些人群了解用户的状态。例如,如果此人是童子军领袖,他可能会将球体设置为“童子军”,然后设置一个规则集,允许其团队中的其他童子军大师查看他的存在状态。一旦他将自己的身份切换到“工作”、“家庭”或其他领域,同僚们就会失去访问权限。
The <sphere> element MAY be qualified with the 'from' and 'until' attributes as described in Section 3.1.
<sphere>元素可以使用第3.1节中描述的“from”和“until”属性进行限定。
Example:
例子:
<sphere> <home/> </sphere>
<sphere> <home/> </sphere>
The <status-icon> element includes a URI pointing to an image (icon) representing the current status of the person or service. The watcher MAY use this information to represent the status in a graphical user interface. Presentities SHOULD provide images of
<status icon>元素包括一个URI,指向表示人员或服务当前状态的图像(图标)。观察者可以使用此信息在图形用户界面中表示状态。存在实体应提供
sizes and aspect ratios that are appropriate for rendering as an icon. Support for JPEG, PNG, and GIF formats is RECOMMENDED.
适合渲染为图标的大小和纵横比。建议支持JPEG、PNG和GIF格式。
Watchers resolving the URI MUST validate whether the local copy of the icon is current when receiving a notification, using the standard cache control mechanism in the URI-identified retrieval protocol.
解析URI的观察者必须使用URI标识的检索协议中的标准缓存控制机制,在接收通知时验证图标的本地副本是否为当前。
Example:
例子:
<status-icon>http://www.example.com/playing.gif</status-icon>
<status-icon>http://www.example.com/playing.gif</status-icon>
The <time-offset> element describes the number of minutes of offset from UTC at the person's current location. A positive number indicates that the local time-of-day is ahead (i.e., east of) Universal Time, while a negative number indicates that the local time-of-day is behind (i.e., west of) Universal Time. Transitions into and out of daylight savings time may temporarily cause a difference between the true offset from UTC and the time offset element.
<time offset>元素描述人员当前位置与UTC的偏移分钟数。正数表示一天的本地时间在世界时之前(即东部),而负数表示一天的本地时间在世界时之后(即西部)。进入和退出夏令时的转换可能会暂时导致UTC的真实偏移和时间偏移元素之间的差异。
An optional attribute, description, can be used to describe the offset, e.g., by labeling the time zone. This description is meant for human consumption.
可选属性description可用于描述偏移,例如,通过标记时区。此描述仅供人类使用。
Publishers on mobile devices SHOULD NOT publish this information unless they know the time offset information to reflect the current location. (For example, many laptop users do not update their time zone when traveling.) Publishers SHOULD update the information whenever they discover that their UTC offset has changed.
移动设备上的发布者不应发布此信息,除非他们知道反映当前位置的时间偏移信息。(例如,许多笔记本电脑用户在旅行时不更新时区。)出版商应在发现UTC偏移量发生变化时更新信息。
Example:
例子:
<time-offset description="America/New_York">-300 </time-offset>
<time-offset description="America/New_York">-300 </time-offset>
The <user-input> element records the user-input or usage state of the service or device, based on human user input, e.g., keyboard, pointing device, or voice. If contained in a <person> element, it summarizes any user input activity across all services and devices operated by the presentity. The mechanism for such aggregation is beyond the scope of this document, but generally reflects the most recent user input across all devices and services. The element can assume one of two values, namely, 'active' or 'idle', with an optional 'last-input' attribute that records when the last user input
<user input>元素根据人类用户输入(例如键盘、定点设备或语音)记录服务或设备的用户输入或使用状态。如果包含在<person>元素中,则它总结了实体操作的所有服务和设备中的任何用户输入活动。这种聚合机制超出了本文档的范围,但通常反映了所有设备和服务的最新用户输入。元素可以采用两个值中的一个,即“active”或“idle”,并带有可选的“last input”属性,该属性记录上次用户输入的时间
was received. An optional 'idle-threshold' element records how long the presentity will wait before reporting the service or device to be idle, measured in seconds.
收到了。可选的“空闲阈值”元素记录存在实体在报告服务或设备空闲之前的等待时间(以秒为单位)。
(A two-state model was chosen since it would otherwise be necessary to send repeated last-input updates during continuous activity.)
(由于在连续活动期间需要发送重复的最后输入更新,因此选择了双状态模型。)
A service that wants to indicate user input activity sends a <user-input> 'active' indication when the user has provided user input within a configurable interval of time, the idle-threshold. If the user ceases to provide input and the idle-threshold has elapsed, the tuple is marked with a <user-input> 'idle' indication instead, optionally including the time of last activity in the 'last-input' attribute. An example is below:
当用户在可配置的时间间隔(空闲阈值)内提供了用户输入时,希望指示用户输入活动的服务会发送一个“活动”指示。如果用户停止提供输入且空闲阈值已过,则元组将标记为<user input>“idle”指示,可选地在“last input”属性中包括最后一次活动的时间。一个例子如下:
<user-input idle-threshold="600" last-input="2004-10-21T13:20:00.000-05:00">idle</user-input>
<user-input idle-threshold="600" last-input="2004-10-21T13:20:00.000-05:00">idle</user-input>
Depending on device or service capabilities, user input may be detected only for a particular application, i.e., when the application has user focus or when a user has sent a message or placed a call, or can be based on user input across all applications running on one end system.
根据设备或服务能力,可能仅针对特定应用检测用户输入,即,当应用具有用户焦点时,或者当用户发送消息或拨打电话时,或者可以基于在一个终端系统上运行的所有应用的用户输入。
The <user-input> element may be used by a watcher, typically in combination with other data, to estimate how likely a user is to answer when contacting the service. A tuple that has not been used in a while may still be OPEN, but a watcher may choose to first contact a URI in a tuple that is both OPEN and has been used more recently.
<user input>元素可由观察者使用,通常与其他数据结合使用,以估计用户在联系服务时应答的可能性。一段时间内未使用的元组可能仍然是打开的,但观察者可能会选择首先联系元组中的URI,该元组是打开的,并且最近使用过。
The <user-input> attribute can be omitted if the presentity wants to indicate that the device has not been used for a while, but does not want to reveal the precise duration, as in the following:
如果存在实体想要指示设备有一段时间没有使用,但不想显示精确的持续时间,则可以省略<user input>属性,如下所示:
<user-input>idle</user-input>
<user-input>idle</user-input>
Configuration MUST include the option to omit the 'last-input' attribute.
配置必须包括省略“last input”属性的选项。
The example below describes the presentity 'pres:someone@example.com', which has a SIP contact, 'sip:someone@example.com', representing a service. It also has a device contact, as an email box. The presentity is in a meeting, in a public office setting. The 'until' information indicates that he will be there until 5:30 pm local time. The presentity also has an
下面的示例描述了实体的压力:someone@example.com,它有一个SIP联系人,'SIP:someone@example.com,表示服务。它还有一个设备联系人,如电子邮件信箱。在场的人是在一个会议上,在一个公共办公室里。“直到”信息表明他将在当地时间下午5:30之前到达。存在实体也有一个
assistant, sip:secretary@example.com, who happens to be available for communications.
高级督察助理:secretary@example.com,他正好可以进行交流。
<?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:lt="urn:ietf:params:xml:ns:location-type" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="pres:someone@example.com">
<?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:lt="urn:ietf:params:xml:ns:location-type" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="pres:someone@example.com">
<tuple id="bs35r9"> <status> <basic>open</basic> </status> <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID> <rpid:relationship><rpid:self/></rpid:relationship> <rpid:service-class><rpid:electronic/></rpid:service-class> <contact priority="0.8">im:someone@mobile.example.net</contact> <note xml:lang="en">Don't Disturb Please!</note> <note xml:lang="fr">Ne derangez pas, s'il vous plait</note> <timestamp>2005-10-27T16:49:29Z</timestamp> </tuple>
<tuple id="bs35r9"> <status> <basic>open</basic> </status> <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID> <rpid:relationship><rpid:self/></rpid:relationship> <rpid:service-class><rpid:electronic/></rpid:service-class> <contact priority="0.8">im:someone@mobile.example.net</contact> <note xml:lang="en">Don't Disturb Please!</note> <note xml:lang="fr">Ne derangez pas, s'il vous plait</note> <timestamp>2005-10-27T16:49:29Z</timestamp> </tuple>
<tuple id="ty4658"> <status> <basic>open</basic> </status> <rpid:relationship><rpid:assistant/></rpid:relationship> <contact priority="1.0">mailto:secretary@example.com</contact> </tuple>
<tuple id="ty4658"> <status> <basic>open</basic> </status> <rpid:relationship><rpid:assistant/></rpid:relationship> <contact priority="1.0">mailto:secretary@example.com</contact> </tuple>
<tuple id="eg92n8"> <status> <basic>open</basic> </status> <dm:deviceID>urn:x-mac:0003ba4811e3</dm:deviceID> <rpid:class>email</rpid:class> <rpid:service-class><rpid:electronic/></rpid:service-class> <rpid:status-icon>http://example.com/mail.png</rpid:status-icon> <contact priority="1.0">mailto:someone@example.com</contact> </tuple>
<tuple id="eg92n8"> <status> <basic>open</basic> </status> <dm:deviceID>urn:x-mac:0003ba4811e3</dm:deviceID> <rpid:class>email</rpid:class> <rpid:service-class><rpid:electronic/></rpid:service-class> <rpid:status-icon>http://example.com/mail.png</rpid:status-icon> <contact priority="1.0">mailto:someone@example.com</contact> </tuple>
<note>I'll be in Tokyo next week</note>
<note>I'll be in Tokyo next week</note>
<dm:device id="pc147"> <rpid:user-input idle-threshold="600" last-input="2004-10-21T13:20:00-05:00">idle</rpid:user-input> <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID>
<dm:device id="pc147"> <rpid:user-input idle-threshold="600" last-input="2004-10-21T13:20:00-05:00">idle</rpid:user-input> <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID>
<dm:note>PC</dm:note> </dm:device>
<dm:note>PC</dm:note> </dm:device>
<dm:person id="p1"> <rpid:activities from="2005-05-30T12:00:00+05:00" until="2005-05-30T17:00:00+05:00"> <rpid:note>Far away</rpid:note> <rpid:away/> </rpid:activities> <rpid:class>calendar</rpid:class> <rpid:mood> <rpid:angry/> <rpid:other>brooding</rpid:other> </rpid:mood> <rpid:place-is> <rpid:audio> <rpid:noisy/> </rpid:audio> </rpid:place-is> <rpid:place-type><lt:residence/></rpid:place-type> <rpid:privacy><rpid:unknown/></rpid:privacy> <rpid:sphere>bowling league</rpid:sphere> <rpid:status-icon>http://example.com/play.gif</rpid:status-icon>
<dm:person id="p1"> <rpid:activities from="2005-05-30T12:00:00+05:00" until="2005-05-30T17:00:00+05:00"> <rpid:note>Far away</rpid:note> <rpid:away/> </rpid:activities> <rpid:class>calendar</rpid:class> <rpid:mood> <rpid:angry/> <rpid:other>brooding</rpid:other> </rpid:mood> <rpid:place-is> <rpid:audio> <rpid:noisy/> </rpid:audio> </rpid:place-is> <rpid:place-type><lt:residence/></rpid:place-type> <rpid:privacy><rpid:unknown/></rpid:privacy> <rpid:sphere>bowling league</rpid:sphere> <rpid:status-icon>http://example.com/play.gif</rpid:status-icon>
<rpid:time-offset>-240</rpid:time-offset> <dm:note>Scoring 120</dm:note> <dm:timestamp>2005-05-30T16:09:44+05:00</dm:timestamp> </dm:person> </presence>
<rpid:time-offset>-240</rpid:time-offset> <dm:note>Scoring 120</dm:note> <dm:timestamp>2005-05-30T16:09:44+05:00</dm:timestamp> </dm:person> </presence>
The RPID schema is shown below. Due to limitations in composing schemas, not all XML documents that validate against the schema below are semantically valid RPID documents. In particular, the schema allows each element to appear anyhere in PIDF or data-model elements; Table 1 restricts where these elements can appear for semantically valid RPID documents. Elements that do not have from/until parameters MUST NOT appear more than once in each <person>, <tuple>, or <device>.
RPID模式如下所示。由于组合模式的限制,并非所有根据以下模式进行验证的XML文档都是语义有效的RPID文档。特别是,模式允许每个元素出现在PIDF或数据模型元素中的任意位置;表1限制了这些元素在语义有效的RPID文档中出现的位置。没有from/until参数的元素在每个<person>、<tuple>或<device>中不得出现一次以上。
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf:rpid" xmlns="urn:ietf:params:xml:ns:pidf:rpid" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:xs="http://www.w3.org/2001/XMLSchema"
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf:rpid" xmlns="urn:ietf:params:xml:ns:pidf:rpid" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
elementFormDefault=“合格”attributeFormDefault=“不合格”>
<xs:simpleType name="activeIdle"> <xs:restriction base="xs:string"> <xs:enumeration value="active"/> <xs:enumeration value="idle"/> </xs:restriction> </xs:simpleType>
<xs:simpleType name="activeIdle"> <xs:restriction base="xs:string"> <xs:enumeration value="active"/> <xs:enumeration value="idle"/> </xs:restriction> </xs:simpleType>
<xs:element name="activities"> <xs:annotation> <xs:documentation> Describes what the person is currently doing, expressed as an enumeration of activity-describing elements. A person can be engaged in multiple activities at the same time, e.g., traveling and having a meal. </xs:documentation> </xs:annotation>
<xs:element name="activities"> <xs:annotation> <xs:documentation> Describes what the person is currently doing, expressed as an enumeration of activity-describing elements. A person can be engaged in multiple activities at the same time, e.g., traveling and having a meal. </xs:documentation> </xs:annotation>
<xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty" minOccurs="0"/> <xs:sequence maxOccurs="unbounded"> <xs:choice> <xs:element name="appointment" type="empty" /> <xs:element name="away" type="empty" /> <xs:element name="breakfast" type="empty" /> <xs:element name="busy" type="empty" /> <xs:element name="dinner" type="empty" /> <xs:element name="holiday" type="empty" /> <xs:element name="in-transit" type="empty" /> <xs:element name="looking-for-work" type="empty" /> <xs:element name="meal" type="empty" /> <xs:element name="meeting" type="empty" />
<xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty" minOccurs="0"/> <xs:sequence maxOccurs="unbounded"> <xs:choice> <xs:element name="appointment" type="empty" /> <xs:element name="away" type="empty" /> <xs:element name="breakfast" type="empty" /> <xs:element name="busy" type="empty" /> <xs:element name="dinner" type="empty" /> <xs:element name="holiday" type="empty" /> <xs:element name="in-transit" type="empty" /> <xs:element name="looking-for-work" type="empty" /> <xs:element name="meal" type="empty" /> <xs:element name="meeting" type="empty" />
<xs:element name="on-the-phone" type="empty" /> <xs:element name="performance" type="empty" /> <xs:element name="permanent-absence" type="empty" /> <xs:element name="playing" type="empty" /> <xs:element name="presentation" type="empty" /> <xs:element name="shopping" type="empty" /> <xs:element name="sleeping" type="empty" /> <xs:element name="spectator" type="empty" /> <xs:element name="steering" type="empty" /> <xs:element name="travel" type="empty" /> <xs:element name="tv" type="empty" /> <xs:element name="vacation" type="empty" /> <xs:element name="working" type="empty" /> <xs:element name="worship" type="empty" /> <xs:element name="other" type="Note_t" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="on-the-phone" type="empty" /> <xs:element name="performance" type="empty" /> <xs:element name="permanent-absence" type="empty" /> <xs:element name="playing" type="empty" /> <xs:element name="presentation" type="empty" /> <xs:element name="shopping" type="empty" /> <xs:element name="sleeping" type="empty" /> <xs:element name="spectator" type="empty" /> <xs:element name="steering" type="empty" /> <xs:element name="travel" type="empty" /> <xs:element name="tv" type="empty" /> <xs:element name="vacation" type="empty" /> <xs:element name="working" type="empty" /> <xs:element name="worship" type="empty" /> <xs:element name="other" type="Note_t" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="class" type="xs:token"> <xs:annotation> <xs:documentation> Describes the class of the service, device or person. </xs:documentation> </xs:annotation>
<xs:element name="class" type="xs:token"> <xs:annotation> <xs:documentation> Describes the class of the service, device or person. </xs:documentation> </xs:annotation>
</xs:element>
</xs:element>
<xs:element name="mood"> <xs:annotation> <xs:documentation> Describes the mood of the presentity. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty"/> <xs:sequence maxOccurs="unbounded"> <xs:choice> <xs:element name="afraid" type="empty"/> <xs:element name="amazed" type="empty"/> <xs:element name="angry" type="empty"/> <xs:element name="annoyed" type="empty"/> <xs:element name="anxious" type="empty" /> <xs:element name="ashamed" type="empty" /> <xs:element name="bored" type="empty" /> <xs:element name="brave" type="empty" /> <xs:element name="calm" type="empty" /> <xs:element name="cold" type="empty" /> <xs:element name="confused" type="empty" /> <xs:element name="contented" type="empty" /> <xs:element name="cranky" type="empty" /> <xs:element name="curious" type="empty" /> <xs:element name="depressed" type="empty" /> <xs:element name="disappointed" type="empty" />
<xs:element name="mood"> <xs:annotation> <xs:documentation> Describes the mood of the presentity. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty"/> <xs:sequence maxOccurs="unbounded"> <xs:choice> <xs:element name="afraid" type="empty"/> <xs:element name="amazed" type="empty"/> <xs:element name="angry" type="empty"/> <xs:element name="annoyed" type="empty"/> <xs:element name="anxious" type="empty" /> <xs:element name="ashamed" type="empty" /> <xs:element name="bored" type="empty" /> <xs:element name="brave" type="empty" /> <xs:element name="calm" type="empty" /> <xs:element name="cold" type="empty" /> <xs:element name="confused" type="empty" /> <xs:element name="contented" type="empty" /> <xs:element name="cranky" type="empty" /> <xs:element name="curious" type="empty" /> <xs:element name="depressed" type="empty" /> <xs:element name="disappointed" type="empty" />
<xs:element name="disgusted" type="empty" /> <xs:element name="distracted" type="empty" /> <xs:element name="embarrassed" type="empty" /> <xs:element name="excited" type="empty" /> <xs:element name="flirtatious" type="empty" /> <xs:element name="frustrated" type="empty" /> <xs:element name="grumpy" type="empty" /> <xs:element name="guilty" type="empty" /> <xs:element name="happy" type="empty" /> <xs:element name="hot" type="empty" /> <xs:element name="humbled" type="empty" /> <xs:element name="humiliated" type="empty" /> <xs:element name="hungry" type="empty" /> <xs:element name="hurt" type="empty" /> <xs:element name="impressed" type="empty" /> <xs:element name="in_awe" type="empty" /> <xs:element name="in_love" type="empty" /> <xs:element name="indignant" type="empty" /> <xs:element name="interested" type="empty" /> <xs:element name="invincible" type="empty" /> <xs:element name="jealous" type="empty" /> <xs:element name="lonely" type="empty" /> <xs:element name="mean" type="empty" /> <xs:element name="moody" type="empty" />
<xs:element name="disgusted" type="empty" /> <xs:element name="distracted" type="empty" /> <xs:element name="embarrassed" type="empty" /> <xs:element name="excited" type="empty" /> <xs:element name="flirtatious" type="empty" /> <xs:element name="frustrated" type="empty" /> <xs:element name="grumpy" type="empty" /> <xs:element name="guilty" type="empty" /> <xs:element name="happy" type="empty" /> <xs:element name="hot" type="empty" /> <xs:element name="humbled" type="empty" /> <xs:element name="humiliated" type="empty" /> <xs:element name="hungry" type="empty" /> <xs:element name="hurt" type="empty" /> <xs:element name="impressed" type="empty" /> <xs:element name="in_awe" type="empty" /> <xs:element name="in_love" type="empty" /> <xs:element name="indignant" type="empty" /> <xs:element name="interested" type="empty" /> <xs:element name="invincible" type="empty" /> <xs:element name="jealous" type="empty" /> <xs:element name="lonely" type="empty" /> <xs:element name="mean" type="empty" /> <xs:element name="moody" type="empty" />
<xs:element name="nervous" type="empty" /> <xs:element name="neutral" type="empty" /> <xs:element name="offended" type="empty" /> <xs:element name="playful" type="empty" /> <xs:element name="proud" type="empty" /> <xs:element name="relieved" type="empty" /> <xs:element name="remorseful" type="empty" /> <xs:element name="restless" type="empty" /> <xs:element name="sad" type="empty" /> <xs:element name="sarcastic" type="empty" /> <xs:element name="serious" type="empty" /> <xs:element name="shocked" type="empty" /> <xs:element name="shy" type="empty" /> <xs:element name="sick" type="empty" /> <xs:element name="sleepy" type="empty" /> <xs:element name="stressed" type="empty" /> <xs:element name="surprised" type="empty" /> <xs:element name="thirsty" type="empty" /> <xs:element name="worried" type="empty" /> <xs:element name="other" type="Note_t" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/>
<xs:element name="nervous" type="empty" /> <xs:element name="neutral" type="empty" /> <xs:element name="offended" type="empty" /> <xs:element name="playful" type="empty" /> <xs:element name="proud" type="empty" /> <xs:element name="relieved" type="empty" /> <xs:element name="remorseful" type="empty" /> <xs:element name="restless" type="empty" /> <xs:element name="sad" type="empty" /> <xs:element name="sarcastic" type="empty" /> <xs:element name="serious" type="empty" /> <xs:element name="shocked" type="empty" /> <xs:element name="shy" type="empty" /> <xs:element name="sick" type="empty" /> <xs:element name="sleepy" type="empty" /> <xs:element name="stressed" type="empty" /> <xs:element name="surprised" type="empty" /> <xs:element name="thirsty" type="empty" /> <xs:element name="worried" type="empty" /> <xs:element name="other" type="Note_t" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/>
<xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="place-is"> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="audio" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="noisy" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="quiet" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="video" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="toobright" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="dark" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="text" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="uncomfortable" type="empty" /> <xs:element name="inappropriate" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="place-is"> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="audio" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="noisy" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="quiet" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="video" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="toobright" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="dark" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="text" minOccurs="0"> <xs:complexType> <xs:choice> <xs:element name="uncomfortable" type="empty" /> <xs:element name="inappropriate" type="empty" /> <xs:element name="ok" type="empty" /> <xs:element name="unknown" type="empty" /> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="place-type"> <xs:annotation>
<xs:element name="place-type"> <xs:annotation>
<xs:documentation> Describes the type of place the person is currently at. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="other" type="Note_t"/> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:documentation> Describes the type of place the person is currently at. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="other" type="Note_t"/> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="privacy"> <xs:annotation> <xs:documentation> Indicates which type of communication third parties in the vicinity of the presentity are unlikely to be able to intercept accidentally or intentionally. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty"/> <xs:sequence minOccurs="1"> <xs:element name="audio" type="empty" minOccurs="0"/> <xs:element name="text" type="empty" minOccurs="0"/> <xs:element name="video" type="empty" minOccurs="0"/> <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="privacy"> <xs:annotation> <xs:documentation> Indicates which type of communication third parties in the vicinity of the presentity are unlikely to be able to intercept accidentally or intentionally. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="unknown" type="empty"/> <xs:sequence minOccurs="1"> <xs:element name="audio" type="empty" minOccurs="0"/> <xs:element name="text" type="empty" minOccurs="0"/> <xs:element name="video" type="empty" minOccurs="0"/> <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="relationship"> <xs:annotation> <xs:documentation> Designates the type of relationship an alternate contact has with the presentity. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="assistant" type="empty" /> <xs:element name="associate" type="empty" /> <xs:element name="family" type="empty" /> <xs:element name="friend" type="empty" /> <xs:element name="other" type="Note_t" minOccurs="0" /> <xs:element name="self" type="empty" /> <xs:element name="supervisor" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="relationship"> <xs:annotation> <xs:documentation> Designates the type of relationship an alternate contact has with the presentity. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="assistant" type="empty" /> <xs:element name="associate" type="empty" /> <xs:element name="family" type="empty" /> <xs:element name="friend" type="empty" /> <xs:element name="other" type="Note_t" minOccurs="0" /> <xs:element name="self" type="empty" /> <xs:element name="supervisor" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="service-class"> <xs:annotation> <xs:documentation> Designates the type of service offered. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="courier" type="empty" /> <xs:element name="electronic" type="empty" /> <xs:element name="freight" type="empty" /> <xs:element name="in-person" type="empty" /> <xs:element name="postal" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence>
<xs:element name="service-class"> <xs:annotation> <xs:documentation> Designates the type of service offered. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="note" type="Note_t" minOccurs="0" maxOccurs="unbounded" /> <xs:choice> <xs:element name="courier" type="empty" /> <xs:element name="electronic" type="empty" /> <xs:element name="freight" type="empty" /> <xs:element name="in-person" type="empty" /> <xs:element name="postal" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> </xs:sequence>
</xs:complexType> </xs:element>
</xs:complexType> </xs:element>
<xs:element name="sphere"> <xs:annotation> <xs:documentation> Designates the current state and role that the person plays. </xs:documentation> </xs:annotation> <xs:complexType> <xs:choice minOccurs="0"> <xs:element name="home" type="empty" /> <xs:element name="work" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="sphere"> <xs:annotation> <xs:documentation> Designates the current state and role that the person plays. </xs:documentation> </xs:annotation> <xs:complexType> <xs:choice minOccurs="0"> <xs:element name="home" type="empty" /> <xs:element name="work" type="empty" /> <xs:element name="unknown" type="empty" /> <xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/> </xs:choice> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:element>
<xs:element name="status-icon"> <xs:annotation> <xs:documentation> A URI pointing to an image (icon) representing the current status of the person or service. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
<xs:element name="status-icon"> <xs:annotation> <xs:documentation> A URI pointing to an image (icon) representing the current status of the person or service. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
<xs:element name="time-offset"> <xs:annotation> <xs:documentation> Describes the number of minutes of offset from UTC at the user's current location. </xs:documentation> </xs:annotation>
<xs:element name="time-offset"> <xs:annotation> <xs:documentation> Describes the number of minutes of offset from UTC at the user's current location. </xs:documentation> </xs:annotation>
<xs:complexType> <xs:simpleContent> <xs:extension base="xs:integer"> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="description" type="xs:string"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
<xs:complexType> <xs:simpleContent> <xs:extension base="xs:integer"> <xs:attributeGroup ref="fromUntil"/> <xs:attribute name="description" type="xs:string"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
<xs:element name="user-input"> <xs:annotation> <xs:documentation> Records the user-input or usage state of the service or device. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="activeIdle"> <xs:attribute name="idle-threshold" type="xs:positiveInteger"/> <xs:attribute name="last-input" type="xs:dateTime"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:schema>
<xs:element name="user-input"> <xs:annotation> <xs:documentation> Records the user-input or usage state of the service or device. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="activeIdle"> <xs:attribute name="idle-threshold" type="xs:positiveInteger"/> <xs:attribute name="last-input" type="xs:dateTime"/> <xs:attribute name="id" type="xs:ID"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:schema>
Any developer can introduce their own element names, avoiding conflict by choosing an appropriate namespace URI. To add new standardized elements to the enumerations <activities>, <mood>, <privacy>, <relationship> and <service-class>, the extension process described in PIDF [9] is followed, i.e., such extensions would use namespace designators such as urn:ietf:params:xml:ns:pidf:ext, where 'ext' is the name of the extension. Any new values for the <place-type> element are assigned according to [12] and are given a namespace designator at their time of registration.
任何开发人员都可以引入自己的元素名,通过选择适当的名称空间URI来避免冲突。要将新的标准化元素添加到枚举<activities>、<mood>、<privacy>、<relationship>和<service class>,请遵循PIDF[9]中描述的扩展过程,即,此类扩展将使用名称空间指示符,如urn:ietf:params:xml:ns:PIDF:ext,其中“ext”是扩展的名称。<place type>元素的任何新值都是根据[12]分配的,并在注册时被赋予名称空间指示符。
To avoid the unnecessary proliferation of XML namespaces containing a single element, groups of element registrations for each of these enumerations, such as <privacy>, SHOULD be bundled into a single namespace rather than assigning a new namespace to each new element.
为了避免包含单个元素的XML名称空间的不必要扩展,应该将每个枚举的元素注册组(如<privacy>)捆绑到单个名称空间中,而不是为每个新元素分配一个新名称空间。
7.1. URN Sub-Namespace Registration for 'urn:ietf:params:xml:ns:pidf:rpid'
7.1. URN Sub-Namespace Registration for 'urn:ietf:params:xml:ns:pidf:rpid'
URI: urn:ietf:params:xml:ns:pidf:rpid Description: This is the XML namespace for XML elements defined by RFC 4480 to describe rich presence information extensions for the status element in the PIDF presence document format in the application/pidf+xml content type. Registrant Contact: IETF, SIMPLE working group, simple@ietf.org, Henning Schulzrinne, hgs@cs.columbia.edu
URI: urn:ietf:params:xml:ns:pidf:rpid Description: This is the XML namespace for XML elements defined by RFC 4480 to describe rich presence information extensions for the status element in the PIDF presence document format in the application/pidf+xml content type. Registrant Contact: IETF, SIMPLE working group, simple@ietf.org, Henning Schulzrinne, hgs@cs.columbia.edu
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>RPID: Rich Presence Extensions to the Presence Information Data Format (PIDF)</title> </head> <body> <h1>Namespace for rich presence extension</h1> <h2>urn:ietf:params:xml:ns:pidf:rpid</h2> <p>See <a href="http://www.rfc-editor.org/rfc/rfc4480.txt"> RFC&4480;</a>.</p> </body> </html> END
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>RPID: Rich Presence Extensions to the Presence Information Data Format (PIDF)</title> </head> <body> <h1>Namespace for rich presence extension</h1> <h2>urn:ietf:params:xml:ns:pidf:rpid</h2> <p>See <a href="http://www.rfc-editor.org/rfc/rfc4480.txt"> RFC&4480;</a>.</p> </body> </html> END
7.2. Schema Registration for Schema 'urn:ietf:params:xml:ns:pidf:status:rpid'
7.2. Schema Registration for Schema 'urn:ietf:params:xml:ns:pidf:status:rpid'
URI: urn:ietf:params:xml:ns:pidf:status:rpid Registrant Contact: IESG XML: See Section 5
URI: urn:ietf:params:xml:ns:pidf:status:rpid Registrant Contact: IESG XML: See Section 5
Note that this document does not need a new content type. It inherits the content type from [8], namely, application/pidf+xml.
请注意,此文档不需要新的内容类型。它继承了[8]中的内容类型,即application/pidf+xml。
RPID contains mostly tokens that are meant for consumption by programs, not directly by humans. Programs are expected to translate those tokens into language-appropriate text strings according to the preferences of the watcher.
RPID包含的大部分令牌是供程序使用的,而不是直接供人使用。程序需要根据观察者的偏好将这些标记翻译成适合语言的文本字符串。
Some elements may contain <note> and <other> elements that can contain free text. These elements SHOULD be labeled with the 'xml: lang' attribute to indicate their language and script. The specification allows multiple occurrences of these elements so that the presentity can convey <note> and <other> elements in multiple scripts and languages. If no 'xml:lang' attribute is provided, the default value is "i-default" [3].
某些元素可能包含<note>和<other>可以包含自由文本的元素。这些元素应该标记为“xml:lang”属性,以指示它们的语言和脚本。该规范允许这些元素多次出现,以便呈现实体能够以多种脚本和语言传达<note>和<other>元素。如果未提供“xml:lang”属性,则默认值为“i-default”[3]。
Since RPID is represented in XML, it provides native support for encoding information using the Unicode character set and its more compact representations including UTF-8. Conformant XML processors recognize both UTF-8 and UTF-16. Though XML includes provisions to identify and use other character encodings through use of an "encoding" attribute in an <?xml?> declaration, use of UTF-8 is RECOMMENDED in environments where parser encoding support incompatibility exists.
因为RPID是用XML表示的,所以它使用Unicode字符集及其更紧凑的表示(包括UTF-8)为编码信息提供了本机支持。UTF-8和UTF-16兼容处理器。尽管XML包含通过在<?XML?>声明中使用“encoding”属性来识别和使用其他字符编码的规定,但在解析器编码支持不兼容的环境中,建议使用UTF-8。
A description of time-zone considerations can be found in Section 3.13.
时区注意事项的说明见第3.13节。
The security considerations in [8] apply, as well as [7]. Compared to PIDF, this presence document format reveals additional information about presentities that can be highly sensitive. Beyond traditional security measures to protect confidentiality and integrity, systems should offer a means to selectively reveal information to particular watchers and to inspect the information that is being published, particularly if it is generated automatically from other sources, such as calendars or sensors.
[8]中的安全注意事项与[7]一样适用。与PIDF相比,此状态文档格式显示了有关状态实体的其他信息,这些信息可能非常敏感。除了保护机密性和完整性的传统安全措施外,系统还应提供一种手段,有选择地向特定观察者披露信息,并检查正在发布的信息,特别是如果信息是从日历或传感器等其他来源自动生成的。
Like any reference to an external object, the <status-icon> may allow the presentity to induce the watcher to retrieve data from a third party (content indirection attack), thus either retrieving harmful content or adding to the server load of the referenced resource.
与对外部对象的任何引用一样,<status icon>可允许存在实体诱导观察者从第三方检索数据(内容间接攻击),从而检索有害内容或增加被引用资源的服务器负载。
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[1] Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。
[2] Moats, R., "URN Syntax", RFC 2141, May 1997.
[2] 护城河,R.,“瓮语法”,RFC 21411997年5月。
[3] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998.
[3] Alvestrand,H.,“IETF字符集和语言政策”,BCP 18,RFC 2277,1998年1月。
[4] Moats, R., "A URN Namespace for IETF Documents", RFC 2648, August 1999.
[4] Moats,R.,“IETF文档的URN名称空间”,RFC 2648,1999年8月。
[5] Day, M., Rosenberg, J., and H. Sugano, "A Model for Presence and Instant Messaging", RFC 2778, February 2000.
[5] Day,M.,Rosenberg,J.,和H.Sugano,“状态和即时信息模型”,RFC 27782000年2月。
[6] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.
[6] Mealling,M.,“IETF XML注册表”,BCP 81,RFC 3688,2004年1月。
[7] Rosenberg, J., "A Presence Event Package for the Session Initiation Protocol (SIP)", RFC 3856, August 2004.
[7] Rosenberg,J.,“会话启动协议(SIP)的状态事件包”,RFC3856,2004年8月。
[8] Sugano, H., Fujimoto, S., Klyne, G., Bateman, A., Carr, W., and J. Peterson, "Presence Information Data Format (PIDF)", RFC 3863, August 2004.
[8] Sugano,H.,Fujimoto,S.,Klyne,G.,Batman,A.,Carr,W.,和J.Peterson,“状态信息数据格式(PIDF)”,RFC 38632004年8月。
[9] Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler, "Extensible Markup Language (XML) 1.0 (Third Edition)," W3C REC REC-xml-20040204, February 2004.
[9] Yergeau,F.,Paoli,J.,Sperberg McQueen,C.,Bray,T.,和E.Maler,“可扩展标记语言(XML)1.0(第三版)”,W3C REC-XML-200402042004年2月。
[10] Maloney, M., Beech, D., Thompson, H., and N. Mendelsohn, "XML Schema Part 1: Structures Second Edition", W3C REC REC-xmlschema-1-20041028, October 2004.
[10] Maloney,M.,Beech,D.,Thompson,H.,和N.Mendelsohn,“XML模式第1部分:结构第二版”,W3C REC-xmlschema-1-20041028,2004年10月。
[11] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes Second Edition", W3C REC REC-xmlschema-2-20041028, October 2004.
[11] Malhotra,A.和P.Biron,“XML模式第2部分:数据类型第二版”,W3C REC REC-xmlschema-2-20041028,2004年10月。
[12] Schulzrinne, H. and H. Tschofenig, "Location Types Registry", RFC 4589, July 2006.
[12] Schulzrinne,H.和H.Tschofenig,“位置类型注册表”,RFC 4589,2006年7月。
[13] Dawson, F. and D. Stenerson, "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 2445, November 1998.
[13] Dawson,F.和D.Stenerson,“互联网日历和调度核心对象规范(iCalendar)”,RFC 24451998年11月。
[14] Peterson, J., "Common Profile for Instant Messaging (CPIM)", RFC 3860, August 2004.
[14] 彼得森,J.,“即时通讯(CPIM)的通用配置文件”,RFC3860,2004年8月。
[15] Lennox, J., Wu, X., and H. Schulzrinne, "Call Processing Language (CPL): A Language for User Control of Internet Telephony Services", RFC 3880, October 2004.
[15] Lennox,J.,Wu,X.,和H.Schulzrinne,“呼叫处理语言(CPL):互联网电话服务的用户控制语言”,RFC 3880,2004年10月。
[16] Rosenberg, J., "A Data Model for Presence", RFC 4479, July 2006.
[16] Rosenberg,J.,“存在的数据模型”,RFC 4479,2006年7月。
[17] Lisetti, C., "Personality, Affect, and Emotion Taxonomy for Socially Intelligent Agents", Proceedings of FLAIRS 2002, 2002.
[17] Lisetti,C.,“社会智能主体的人格、情感和情感分类法”,《FLAIRS学报》,2002年,2002年。
[18] Open Mobile Alliance, "The Wireless Village Initiative: Presence Attributes 1.1", Recommendation WV-29, 2004.
[18] 开放移动联盟,“无线村倡议:存在属性1.1”,建议WV-292004。
The document reflects the discussion on the SIMPLE mailing list, with contributions from many individuals. David L. Black, Miguel Garcia, Avshalom Houri, Markus Isomaki, Rick Jones, Hisham Khartabil, Jonathan Lennox, Eva-Maria Leppanen, Mikko Lonnfors, Rohan Mahy, Miguel Marcia, Andrew Newton, Aki Niemi, Jon Peterson, and Brian Rosen provided detailed comments and suggestions. Xiaotao Wu assisted with schema testing. Jari Urpalainen provided valuable advice on XML schema issues.
该文件反映了简单邮件列表上的讨论情况,其中有许多个人的贡献。David L.Black、Miguel Garcia、Avshalom Houri、Markus Isomaki、Rick Jones、Hisham Khartabil、Jonathan Lennox、Eva Maria Leppanen、Mikko Lonnfors、Rohan Mahy、Miguel Marcia、Andrew Newton、Aki Niemi、Jon Peterson和Brian Rosen提供了详细的评论和建议。吴晓涛协助进行图式测试。Jari Urpalainen就XML模式问题提供了宝贵的建议。
Authors' Addresses
作者地址
Henning Schulzrinne Columbia University Department of Computer Science 450 Computer Science Building New York, NY 10027 US
美国纽约州纽约市哥伦比亚大学计算机科学系计算机科学大楼450号
Phone: +1 212 939 7042 EMail: hgs+simple@cs.columbia.edu URI: http://www.cs.columbia.edu
Phone: +1 212 939 7042 EMail: hgs+simple@cs.columbia.edu URI: http://www.cs.columbia.edu
Vijay Gurbani Lucent 2000 Naperville Rd. Room 6G-440 Naperville, IL 60566-7033 US
Vijay Gurbani-Lucent 2000美国伊利诺伊州纳珀维尔路6G-440室,邮编60566-7033
EMail: vkg@lucent.com
EMail: vkg@lucent.com
Paul Kyzivat Cisco Systems BXB500 C2-2 1414 Massachusetts Avenue Boxborough, MA 01719 US
Paul Kyzivat Cisco Systems BXB500 C2-2 1414马萨诸塞大道Boxborough,美国马萨诸塞州01719
EMail: pkyzivat@cisco.com
EMail: pkyzivat@cisco.com
Jonathan Rosenberg Cisco Systems 600 Lanidex Plaza Parsippany, NJ 07054-2711 US
Jonathan Rosenberg Cisco Systems 600美国新泽西州帕西帕尼拉尼德广场07054-2711
EMail: jdrosen@cisco.com
EMail: jdrosen@cisco.com
Full Copyright Statement
完整版权声明
Copyright (C) The Internet Society (2006).
版权所有(C)互联网协会(2006年)。
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/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 provided by the IETF Administrative Support Activity (IASA).
RFC编辑器功能的资金由IETF行政支持活动(IASA)提供。