CALENDAR Working Group Darren Shakib INTERNET DRAFT Ian Ferrell draft-shakib-mime-prop-00.txt Microsoft Expire in six months A MIME Content-Type for Tagged Property Value Storage 1. Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet- Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). 2. Abstract This memo defines a MIME Content-Type and for holding arbitrary item information. The definition is independent of any particular item type or application. The application/properties Content-Type is defined for holding a variety of basic textual property information to describe the item, for example a directory item could contain name, and email address. The application/properties Content-Type can also be used as the root body part in a multipart/related Content-Type for handling more complicated situations in which non-textual information, for example an image or sound, must be represented. The application/properties Content-Type defines a general framework and format for holding directory information in a "name, datatype: value" format. This document also defines the procedure by which particular formats for carrying the application-specific information within an application/properties Content-Type may be defined and registered, and the conventions such formats must follow. It is expected that other documents will be produced that define such formats for various application item types (e.g. white pages, appointments). 3. Need for a Generic Property MIME Type For purposes of this document, a directory is a special-purpose database that contains typed information. A directory usually supports both read and search of the information it contains, and may support modification of the information as well. Directory information is usually accessed far more often than it is updated. Directories may be local or global in scope. They may be distributed or centralized. The information they contain may be replicated, with weak or strong consistency requirements. There are several situations in which users of Internet mail may wish to exchange directory information: the email analogue of a "business card" exchange; the conveyance of directory information to a user having only email access to the Internet; the provision of machine-parseable address information when purchasing goods or services over the Internet; etc. As MIME [RFC-1521,RFC-1522] is used increasingly by other protocols, most notably HTTP, it may be useful for these protocols to be able to carry directory information in MIME format. Such a format, for example, could be used to represent URC (uniform resource characteristics) information about resources on the World Wide Web. In addition to directory information there are item types that need to be represented in a similar manner to directory items. For example, Calendaring items fall into this category. Rather than having a unique MIME Content-Type for each item type for encoding their properties and values it is desirable to have a single encoding format that could handle all of the item types. This allows code to leverage the parsing and processing code across the item types that need to be supported. 4. Overview The scheme defined here for representing the directory information in a MIME Content-Type has two parts. First, the application/properties Content-Type is defined for use in holding simple textual property information to describe an item, for example name, title, startdate, location or email address. The format uses a simple "name, datatype: value" approach, which should be easily parsable by existing MIME implementations and understandable by users. This document defines the general form the information in the Content-Type should take, and the procedure by which the specific property names and values for particular applications may be defined. The framework is general enough to handle information for a variety of items types including calendaring item types and directory information from any number of end directory serves, including LDAP [RFC-1777, RFC-1778], and WHOIS++ [RFC-1835]. Item types can include far more than just textual information. Such information (e.g., an image, HTML text or sound) overlaps with predefined MIME Content-Types. In these cases it may be desirable to include the information in their well-known MIME formats. This situation is handled by using the multipart/related Content-Type as defined in [RFC-1872]. The root component of this type is an application/properties body part specifying an textual information in- line and for information contained in other Content-Types, the Content- Ids of those types. Each property includes a data type in addition to the name of the property and its value. Standard property data types include: text, date/time, date, time, URL, float, long, boolean, binary, and currency. Because of the wide variety of item types that may be specified, including the data type as part of each property provides an extra hint to keep parsing simple and support more generalized applications. For example a search engine would not have to know the particular data types for all of the items that it is searching. Because the data type is explicit in the definition it could look for dates in any item type and provide good results. Some item types may be very loosely defined to allow the sending of generic database records. In order to reduce confusion some of the terminology has been changed from [MIME-DIR]. item Generic term used to refer to what the set of properties refers. An item may be a directory entry, appointment, or just a row in a database. name Name of the property being defined. The [MIME-DIR] draft referred to this as type. While this is common terminology for some directory implementations its meaning can easily be confused with the data type of a property. data type The data type for a property. This is very similar to variable types in C or column definitions in many database products. profile Identifies the base schema for an item. 5. The application/properties Content-Type The application/properties Content-Type represents generic property data used to describe an item and may contain references to other MIME body parts holding additional data. It is defined as follows, using the MIME content type registration from [MIME-REG], and the spirit of [MIME-DIR]. To: email@example.com Subject: Registration of MIME media type application/properties MIME media type name: application MIME subtype name: properties Required parameters: none Optional parameters: charset, source, profile The charset parameter is as defined in [RFC-1521] for other body parts. The source parameter provides a reference back to the source calendar. It contains an URL (defined in [RFC-1738]) referencing the source calendar for the appointment data. Knowledgeable client applications may use the URL to retrieve additional or more up-to- date information about the item. Encoding considerations: As specified by the Content-Transfer-Encoding header field. Security considerations: Generic item information may be public or private. This specification does not include any access control mechanism to guarantee data privacy on a per-property or per Content-Type basis. Interoperability considerations: Applications and downstream customers of this data must understand the types of information within the Content-Type, as defined in this document. This specification should be able describe the formats described in [MIME-DIR]. The default type of string will be used to specify the the values of [MIME-DIR] properties. Profile authors should attempt to make their properties understandable by users reading the body part as text. Published specification: The "application/properties" Content-Type contains textual property information. The content consists of one or more CRLF-separated lines in the following format. An application/properties content line has the same continuation semantics as described in [RFC-822], section 3.1.1 on "folding" long header lines (i.e., a single line may be split across multiple physical lines by replacing linear-white-space with a CRLF immediately followed by at least one LWSP-character). Using [RFC-822]'s notation, the context syntax is: content := propvalue / propcid propvalue := [name], [datatype] ":" SPACE [value] propcid := [name], [datatype] "::" SPACE (*text) / string-list ; strings refer to URLs as defined in [RFC-1738] ; these URLs can refer to other body parts of a ; MIME message according to the MHTML document name := x-token / iana-token datatype := x-token / iana-token x-token := <the two characters "X-" or "x-" followed, with no intervening white space, by any token> iana-token := <a publicly-defined extension token, registered with IANA, as specified in Section 10 of this document> value := *text ; characters whose syntax depends on type string-list see definition in section 5.1 Note that the meanings of the various names for a profile are defined in Section 10. Specifications may specify ordering on the name constructs within a body part, though none is required by default. The x-token name specification is used for bilaterally- agreed upon names. Note that "name" is analogous to "type" in other drafts such as MIME- REG and MIME-DIR. This draft adds a second parameter, "datatype" describing the property's data format (e.g. TEXT or LONG). This parameter makes each property self-describing so client applications that do not understand an unknown or custom property's use can still support editing and displaying that property. Note "name" values MUST NOT be duplicated. Multi-valued items MUST be separated by ',' rather than repeating the property name multiple times. Note that name and datatype are case insensitive (i.e., "startdate" is the same as "StartDate" and "STARTDATE"). Datatype MAY be absent within a body part in that case "text" is assumed. Note that the "charset" parameter SHOULD be used to identify character sets other than US ASCII. If different information within the same application/properties body component have different character sets, they can both be converted to UTF-7 or another character set which is a superset of both. Note that if a type name is followed by the two characters "::", the value is assumed to be a URL as defined by [RFC-1738] referencing the actual value typically another body part as defined by [RFC- 1521], and the application/properties body part must be used in conjunction with the multipart/related Content-Type defined in the next section. NOTE: The definition of property profiles could be defined as a media type where the subtype defined the profile of the item. This would have some advantages and some disadvantages over just using the application media type with a properties sub-type. Advantages to defining a new media type: - Each body part would have a different content type which could make it easier for messaging clients to just launch a viewer based on the content type. This would be similar to the way that different application body parts are handled today. - When the MIME type was used with an HTTP server the client could request a URL formatted as a specific item. For instance the URL for a user's personal information might be accessible in the format of contact data or free/busy information. Disadvantages to defining a new media type: - Current messaging clients would most likely have to change to support the new media type. If the application media type is used then a generic viewer for property data could be installed to display the property data for any item. That handler could then invoke an appropriate viewer or a default viewer if the profile is unknown. - The data for the item would not contain the profile for the item. The content type would need to be carried to allow a generic viewer to know the profile of item being viewed. - If the body part data is not self defining then viewers for the data may not know the correct schema for display. 5.1 String-list Format There are several cases where a single text string or list of text strings must be represented. Because of the combination of encodings the normal encodings for strings do not work. The first problem is that since the encodings are using the [RFC-822] encoding for "folding" long header lines the standard MIME Quoted-Printable encoding does not work. If you were to use Quoted-Printable encoding then each line would have to start with a white space character or the parsing would become non- standard between properties. The suggested solution is to use a derivative of the [HTTP 1.1] document's quoted string. HTTP 1.1 defines a quoted-string type as: A string of text is parsed as a single word if it is quoted using double-quote marks. quoted-string = ( <"> *(qdtext) <"> ) qdtext = <any CHAR except <"> and CTLs, but including LWS> The backslash character ("\") may be used as a single-character quoting mechanism only within quoted-string and comment constructs. quoted-pair = "\" CHAR The string-list consists of a series of quoted strings. All characters between quoted-strings are ignored accept for ','. The ',' character is used to separate multiple values for the string. This is analogous to a list of text string values. In order to support line breaks inside of the strings a special character for the CHAR in the quoted-pair string is supported to indicate a new line, "\n". The new line refers to a <CR><LF>. string-list = *(quoted-string) [*( <,> *(quoted-string)) ] quoted-string = ( <"> *(qdtext) <"> ) qdtext = <any CHAR except <"> and CTLs, but including LWS> The backslash character ("\") may be used as a single-character quoting mechanism only within quoted-string constructs. quoted-pair = "\" CHAR The quoted-pair "\n" indicates a <CR><LF>. 5.2 Contacts Person and email address to contact for further information: Darren Shakib Microsoft One Microsoft Way Redmond, WA 98052 firstname.lastname@example.org (206) 936-6405 Intended Usage: COMMON Author/Change controller: Darren Shakib Microsoft One Microsoft Way Redmond, WA 98052 email@example.com (206) 936-6405 6. Use of the multipart/related Content-Type The multipart/related Content-Type can hold item property information comprised of text and/or non-text information or additional item-related information that already has a natural MIME representation. The root body part within the multipart/related body part is specified as defined in [RFC-1872] by a "start" parameter, or it is the first body part in the absence of such a parameter. The root body part must have a Content- Type of "application/properties". This part holds text information, optionally defines the name and source of the information, and makes reference to subsequent body parts holding additional text and/or non- text item property information via their URL Content-IDs as explained in Section 6. Body parts referred to do not have to be in any particular order. 7. Examples The following examples illustrate possible implementations. Sample properties are shown for illustrative purposes only and are not part of the definition. Example #1 demonstrates a basic use of the application/properties Content-Type. The appointment has a start and end datetime and location. Note that Location uses the default data type of text rather than explicitly indicating that it is text. To: Franklin W. Dixon <firstname.lastname@example.org> From: Carolyn Keene <email@example.com> Subject: Discuss contract issues MIME-Version: 1.0 Message-ID: <firstname.lastname@example.org> Content-Type: application/properties ; profile="appointment" Content-ID: <email@example.com> Profile, text: "Appointment" Start, datetime: 22 Oct 96 14:00:00 UT End, datetime: 22 Oct 96 15:00:00 UT Location: "Applegate Building, Suite 410" Example #2 uses the multipart/related Content-Type to add non-textual appointment data: To: Franklin W. Dixon <firstname.lastname@example.org> From: Carolyn Keene <email@example.com> Subject: Discuss contract issues MIME-Version: 1.0 Message-ID: <firstname.lastname@example.org> Content-Type: multipart/related; boundary=fence; type="application/properties"; start="<email@example.com>" Content-ID: <firstname.lastname@example.org> --fence Content-Type: application/properties Content-ID: <email@example.com> Profile, text: "appointment" Start, datetime: 22 Oct 96 14:00:00 UT End, datetime: 22 Oct 96 15:00:00 UT Location, text: "Applegate Building, Suite 410" Map, binary:: "firstname.lastname@example.org" --fence Content-Type: image/jpeg Content-ID: "email@example.com" <...image data goes here...> --fence-- 8. Datatype definitions This section defines data types used in the property/appointment Content-Type. Note that all of these types, with the exception of BINARY, are transmitted in human-readable form. Backus-Naur Form (BNF) notation, as modified in [RFC-822]. Each property can also have multiple values. The schema for a profile should indicate if the property should support multiple values. If an application finds items that are multi-valued that should not then the first item should be used and the rest should be ignored. 8.1. TEXT data type Name: TEXT Examples: "The boys made their way cautiously to the boathouse.\n" "\"Run you guys!\" yelled Ratchy. \"It's the Hardy Boys!\"" BNF: TEXT = (*text) / string-list ; see section 5.1 Comments: 1) Character set is the same as default character set for body-part. 2) Multi-valued forms of this data type can be described in the string-list by separating the strings with ','s. 8.2. BOOLEAN data type Name: BOOLEAN Examples: TRUE FALSE BNF: BOOLEAN = flag where: flag = "TRUE" / "FALSE" Comments: 1) Multi-valued forms of this data type are formed by delimiting each item with a comma ','. 8.3. DATETIME data type Name: DATETIME Examples: 22 Oct 96 14:00:00 MST 11 Aug 96 12:34:56 Z Mon, 22 Jul 96 4:30 EST +0030 ; Newfoundland time BNF: DATETIME = date-time ; date-time as defined in [RFC-822] Comments: 1) This follows [RFC-822] Sections 5.1 and 5.2. The intent here is to follow the core message date and time formats to minimize translation and parsing requirements. 2) Multi-valued forms of this data type are formed by delimiting each value with a comma ','. 8.4. TIME data type Name: TIME Examples: 10:22 10:22:33 BNF: TIME = hour ; as defined in [RFC-822] Comments: 1) This follows [RFC-822] Sections 5.1 and 5.2. The intent here is to follow the core message date and time formats to minimize translation and parsing requirements. 2) Multi-valued forms of this data type are formed by delimiting each value with a comma ','. 8.5. DATE data type Name: DATE Examples: 22 Oct 96 11 Aug 96 BNF: DATE = date ; as defined in [RFC-822] Comments: 1) This follows [RFC-822] Sections 5.1 and 5.2. The intent here is to follow the core message date and time formats to minimize translation and parsing requirements. 2) Multi-valued forms of this data type are formed by delimiting each value with a comma ','. 8.6. FLOAT data type Name: FLOAT Examples: 20.30 1000000.0000001 BNF: FLOAT = [sign] *digit ["." *digit] sign = "+" / "-" Comments: 1) If sign is not specified, the value is assumed positive "+". 2) Multi-valued forms of this data type are formed by delimiting each item with a comma ','. 8.7. LONG data type Name: LONG Examples: 1234567890 -1234556790 +1234556790 BNF: LONG = [sign] 10DIGIT where: sign = "+" / "-" Comments: 1) If sign is not specified, the value is assumed positive "+". 2) Multi-valued forms of this data type are formed by delimiting each value with a comma ','. 8.8. BINARY data type Name: BINARY Examples: n/a BNF: BINARY = NONE; binary can only use propcid notation Comments: 1) Binary properties can only be stored in a separate body part using multipart related notation. 8.9. CURRENCY data type Name: CURRENCY Examples: 54.25 1.43 1234567890123.45 BNF: CURRENCY = 18DIGIT "." 2DIGIT Comments: 1) Only "." is supported to simplify parsing. 2) Multi-valued forms of this data type are formed by delimiting each value with a comma ','. 8.10. URL data type Name: URL Examples: "ftp://ds.internic.net/rfcs/rfc1123.txt" "HTTP://www.awb.com/drewboard.html" BNF: URL = string-list ; see section 5.1 in this document Comments: 1) Multi-valued forms of this data type can be described in the string-list by separating the strings with ','s. 9. Common Properties There will be some common properties that MAY appear in all profiles. 9.1 Profile Name: profile Data type: Text Purpose: Indicates the profile schema of the item. Encoding: Case insensitive. Special notes (optional): This should be the first property listed for the item. If this is not listed some implementations may not know how to display the item. Required: No Multi-Valued: NEVER Intended usage: COMMON 9.2 Variant Name: variant Data type: Text Purpose: Indicates a variant of the profile schema. All variants should support the profile schema and may only add to the schema. Encoding: Case insensitive. Special notes (optional): This should be the first property after the profile property of the item. Variants can be further classified by separating the versions in the variant string with periods ".". Once again each sub-variant should only add to the schema. Values are case insensitive. Examples: profile:"Appointment" variant:"Recurring.1" This could correspond to an recurring appointment variant 1. profile:"Directory" variant:"LDAP" This could correspond to a directory entry with an LDAP schema. profile:"Directory" variant:"person" This could correspond to a person directory entry. profile:"Directory" variant:"person.business card" This could correspond to the business card variant of the person directory entry. Required: No Multi-Valued: SOMETIMES Intended usage: COMMON 9.3 CreatedBy Name: createdBy Data type: Text Purpose: Identifies the creator of the item. Encoding: Should correspond to an [RFC-822] formatted recipient. Required: No Multi-Valued: SOMETIMES Intended usage: COMMON 9.4 CreateDate Name: createDate Data type: DATETIME Purpose: Indicates the time that the item was created. Encoding: Required: No Multi-Valued: NEVER Intended usage: COMMON 9.5 MofifiedBy Name: modifiedBy Data type: Text Purpose: Identifies the person that last modified the item. Encoding: [RFC-822] formatted recipient. Required: No Multi-Valued: SOMETIMES Intended usage: COMMON 9.6 LastModified Name: lastModified Data type: Text Purpose: Indicates the profile schema of the item. Encoding: Required: No Multi-Valued: SOMETIMES Intended usage: COMMON 10. Registration of new profiles This section defines procedures by which new profiles are registered with the IANA and made available to the Internet community. Note that non-IANA profiles may be used by bilateral agreement, provided the associated profile names follow the "X-" convention defined above. The procedures defined here are designed to allow public comment and review of new profiles, while posing only a small impediment to the definition of new profiles. Registration of a new profile is accomplished by the following steps. 10.1. Define the profile A profile is defined by completing the following template. To: [mailing list TBD] Subject: Registration of application/properties MIME profile XXX Profile name: Profile purpose: Profile property names: Profile special notes (optional): Profile Intended usage: (one of COMMON, LIMITED USE or OBSOLETE) Property Descriptions: (list of property descriptions in following format) Name: Data type: Purpose: Encoding: Special notes (optional): Required: (one of YES, NO) Multi-Valued: (one of ALWAYS, NEVER, SOMETIMES) Intended usage: (one of COMMON, LIMITED USE or OBSOLETE) The explanation of what goes in each field in the template follows. Profile name: The name of the profile as it will appear in the application/properties MIME Content-Type "profile" header parameter. Profile purpose: The purpose of the profile (e.g., to represent information about people, printers, documents, etc.). Give a short but clear description. Profile property names: The list of property names associated with the profile. This list of names is to be expected but not required in the profile. Other names not mentioned in the profile definition may also be present. Profile special notes: Any special notes about the profile, how it is to be used, etc. This section of the template may also be used to define an ordering on the types that appear in the Content-Type, if such an ordering is required. Property Descriptions: Precedes the list of property descriptions for the profile. Each property definition starts with the "Name:" tag. Name: The name of the property, as it will appear in the body of an application/properties MIME Content-Type "name, datatype: value" line to the left of the colon ":". Data type: The expected data type for the property. Possible values listed in section 8. Purpose: The purpose of the property (e.g., to represent a name, postal address, IP address, etc.). Give a short but clear description. Encoding: The encoding a value of the type must have in the body of an application/properties MIME Content-Type. This description must be precise and must not violate the general encoding rules defined in section 5 of this document. Special notes: Any special notes about the property, how it is to be used, etc. Required: YES indicates that the property MUST be present in the property list of a item of an item of this type profile. No indicates that this property MAY appear in the property list. Multi-Valued: ALWAYS indicates that the property will expected to be multi-valued. NEVER indicates that the property MUST NOT be multi- valued. SOMETIMES indicates that the property MAY be multi-valued, but that most implementations will not make it multi-valued. Intended usage: COMMON indicates that most items of this profile will include this property. LIMITED USE indicates that this property will rarely be included. OBSOLETE indicates that use of this property SHOULD NOT be used. 10.2. Post the profile definition The profile description must be posted to the new profile discussion list, [mailing list TBD]. 10.3. Allow a comment period Discussion on the new profile must be allowed to take place on the list for a minimum of two weeks. Consensus must be reached on the profile before proceeding to step 4. 10.4. Submit the profile for approval Once the two-week comment period has elapsed, and the proposer is convinced consensus has been reached on the profile, the registration application should be submitted to the Profile Reviewer for approval. The Profile Reviewer is appointed by the Application Area Directors and may either accept or reject the profile registration. An accepted registration should be passed on by the Profile Reviewer to the IANA for inclusion in the official IANA profile registry. The registration may be rejected for any of the following reasons. 1) Insufficient comment period; 2) Consensus not reached; 3) Technical deficiencies raised on the list or elsewhere have not been addressed. The Profile Reviewer's decision to reject a profile may be appealed by the proposer to the IESG, or the objections raised can be addressed by the proposer and the profile resubmitted. 11. Profile Change Control Existing profiles may be changed using the same process by which they were registered. Define the change Post the change Allow a comment period Submit the profile for approval Note that the original author or any other interested party may propose a change to an existing profile, but that such changes should only be proposed when there are serious omissions or errors in the published specification. The Profile Reviewer may object to a change if it is not backwards compatible, but is not required to do so. Profile definitions can never be deleted from the IANA registry, but profiles which are no longer believed to be useful can be declared OBSOLETE by a change to their "intended use" field. 12. Registration of new variants Variants are registered in the same manner as profiles except that the variant uses the following format: To: [mailing list TBD] Subject: Registration of application/properties MIME profile XXX Variant name: Variant profile: Variant purpose: Variant property names: Variant special notes (optional): Variant Intended usage: (one of COMMON, LIMITED USE or OBSOLETE) Property Descriptions: (list of property descriptions as described in section 10.1) Variant Profile is the name of the profile that this variant is a version of. The complete path for the variant should be listed with the intent that all variants should be the same based on their period- separated root parts. The descriptions for the other values are the same as in Section 10.1 where variant is replaced with profile. The registration process follows the way that profiles are registered. Define the change Post the change Allow a comment period Submit the profile for approval 13. Security Considerations Internet mail is subject to many well-known security attacks, including monitoring, replay, and forgery. Care should be taken to restrict sensitive information from leaving the scope of the service itself, where any access controls can no longer be guaranteed. 14. Acknowledgments Format and some descriptions were borrowed from the MIME Directory draft. 15. Author's Address Darren Shakib Microsoft One Microsoft Way Redmond, WA 98052 USA Phone: (206) 936-6405 Email: firstname.lastname@example.org Ian Ferrell Microsoft One Microsoft Way Redmond, WA 98052 USA Phone: (206) 936-1086 Email: email@example.com 16. References [MIME-DIR] Howes, T., Smith, M., "A MIME Content-Type for Directory Informa- tion", Internet-draft-ietf-asid-mime-direct-01.txt, February, 1996. [MIME-REG] Freed, N., Postel, J., "Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures," Internet- Draft draft-ietf-822ext-mime-reg-02.txt, December 1995. [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text Mes- sages", STD 11, RFC-822, August 1982. [RFC-1521] Borenstein, N., Freed, N., "MIME (Multipurpose Internet Mail Exten- sions) Part One: Mechanisms for Specifying and Describing the For- mat of Internet Message Bodies", RFC 1521, September 1993. [RFC-1522] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text", RFC 1522, September 1993. [RFC-1738] Berners-Lee, T., Masinter, L., McCahill, M., "Uniform Resource Locators (URL)", RFC 1738, December 1994. [RFC-1777] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory Access Protocol", RFC 1777, Performance Systems International, University of Michigan, ISODE Consortium, March 1995. [RFC-1778] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory Access Protocol", RFC 1777, Performance Systems International, University of Michigan, ISODE Consortium, March 1995. [RFC-1835] Deutsch, et al., "Architecture of the WHOIS++ service", RFC 1835, August 1995. [RFC-1872] Levinson, E., "The MIME Multipart/Related Content-type," RFC 1872, December 1995. Appendix A - Differences from [MIME-DIR] While this is defined as an extension to [MIME-DIR] there are some changes. Most of these changes were designed to clear up ambiguities and either simplify or make the spec clearer. The extensions are intended to make the property definition items able to describe a wider variety of item types. The term "name" is used instead of "type". Both refer to the name of a property on the item. While type has a very specific meaning to some people it is easily confused with the data type of a property. The defaulttype parameter was removed. Its definition was ambiguous since it was not clear why the "type" would be duplicated. Since a specific mechanism is described for multi-valued property values it became obsolete. Removed name parameter since its use was vague. The information may be more appropriate as a property on the item rather than as a parameter, which would allow its definition to be more specific. MIME subtype changed from "directory" to "properties". This allows for a more generic definition for the items. The profile should be set to "directory" for directory items and the variant should be used to specify variations on a standard directory item. Appendix B - Outstanding Issues Requirements for registration have not been finalized. The details above are subject to change.