| < draft-crockford-jsonorg-json | rfc4627.txt | |||
|---|---|---|---|---|
| JavaScript Object Notation (JSON) D. Crockford | ||||
| Internet Draft JSON.org | ||||
| draft-crockford-jsonorg-json-04.txt February, 2006 | ||||
| Intended status: Informational | ||||
| Expires: June 10, 2006 | ||||
| JavaScript Object Notation (JSON) | ||||
| Status of this Memo | ||||
| This document may not be modified, and derivative works of it | ||||
| may not be created, except to publish it as an RFC and to | ||||
| translate it into languages other than English. | ||||
| By submitting this Internet-Draft, each author represents that any | ||||
| applicable patent or other IPR claims of which he or she is aware | ||||
| have been or will be disclosed, and any of which he or she becomes | ||||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Network Working Group D. Crockford | |||
| Task Force (IETF), its areas, and its working groups. Note that | Request for Comments: 4627 JSON.org | |||
| other groups may also distribute working documents as | Category: Informational July 2006 | |||
| 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." | ||||
| The list of current Internet-Drafts can be accessed at | The application/json Media Type for JavaScript Object Notation (JSON) | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | Status of This Memo | |||
| http://www.ietf.org/shadow.html. | ||||
| This Internet Draft will expire on June 10, 2006. | This memo provides information for the Internet community. It does | |||
| not specify an Internet standard of any kind. Distribution of this | ||||
| memo is unlimited. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2006). | Copyright (C) The Internet Society (2006). | |||
| Abstract | Abstract | |||
| JavaScript Object Notation (JSON) is a light-weight, text-based, | JavaScript Object Notation (JSON) is a lightweight, text-based, | |||
| language-independent, data interchange format. It was derived from | language-independent data interchange format. It was derived from | |||
| the ECMAScript Programming Language Standard. JSON defines a small | the ECMAScript Programming Language Standard. JSON defines a small | |||
| set of formatting rules for the portable representation of structured | set of formatting rules for the portable representation of structured | |||
| data. | data. | |||
| Conventions used in this document | 1. Introduction | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in [RFC-2119]. | ||||
| The grammatical rules in this document are to be interpreted as | ||||
| described in [RFC-4234]. | ||||
| 1. Introduction | ||||
| JavaScript Object Notation (JSON) is a text format for the | JavaScript Object Notation (JSON) is a text format for the | |||
| serialization of structured data. It is derived from the object | serialization of structured data. It is derived from the object | |||
| literals of JavaScript, as defined in the ECMAScript | literals of JavaScript, as defined in the ECMAScript Programming | |||
| Programming Language Standard, Third Edition [ECMA]. | Language Standard, Third Edition [ECMA]. | |||
| JSON can represent four primitive types (strings, numbers, booleans, | JSON can represent four primitive types (strings, numbers, booleans, | |||
| and null) and two structured types (objects and arrays). | and null) and two structured types (objects and arrays). | |||
| A string is a sequence of zero or more Unicode characters [UNICODE]. | A string is a sequence of zero or more Unicode characters [UNICODE]. | |||
| An object is an unordered collection of zero or more name/value | An object is an unordered collection of zero or more name/value | |||
| pairs, where a name is a string, and a value is a string, number, | pairs, where a name is a string and a value is a string, number, | |||
| boolean, null, object, or array. | boolean, null, object, or array. | |||
| An array is an ordered sequence of zero or more values. | An array is an ordered sequence of zero or more values. | |||
| The terms "object" and "array" come from the conventions of | The terms "object" and "array" come from the conventions of | |||
| JavaScript. | JavaScript. | |||
| JSON's design goals were to be minimal, portable, textual, and a | JSON's design goals were for it to be minimal, portable, textual, and | |||
| subset of JavaScript. | a subset of JavaScript. | |||
| 2. JSON Grammar | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in [RFC2119]. | ||||
| The grammatical rules in this document are to be interpreted as | ||||
| described in [RFC4234]. | ||||
| 2. JSON Grammar | ||||
| A JSON text is a sequence of tokens. The set of tokens includes six | A JSON text is a sequence of tokens. The set of tokens includes six | |||
| structural characters, strings, numbers, and three literal names. | structural characters, strings, numbers, and three literal names. | |||
| A JSON text is a serialized object or array. | A JSON text is a serialized object or array. | |||
| JSON-text = object / array | JSON-text = object / array | |||
| These are the six structural characters: | These are the six structural characters: | |||
| skipping to change at line 116 ¶ | skipping to change at page 2, line 47 ¶ | |||
| Insignificant whitespace is allowed before or after any of the six | Insignificant whitespace is allowed before or after any of the six | |||
| structural characters. | structural characters. | |||
| ws = *( | ws = *( | |||
| %x20 / ; Space | %x20 / ; Space | |||
| %x09 / ; Horizontal tab | %x09 / ; Horizontal tab | |||
| %x0A / ; Line feed or New line | %x0A / ; Line feed or New line | |||
| %x0D ; Carriage return | %x0D ; Carriage return | |||
| ) | ) | |||
| 2.1. Values | 2.1. Values | |||
| A JSON value MUST be a object, array, number, or string, or one of | A JSON value MUST be an object, array, number, or string, or one of | |||
| the three literal names: | the following three literal names: | |||
| false | false null true | |||
| null | ||||
| true | ||||
| The literal names MUST be in lower case. No other literal names | The literal names MUST be lowercase. No other literal names are | |||
| are allowed. | allowed. | |||
| value = false / null / true / object / array / number / string | value = false / null / true / object / array / number / string | |||
| false = %x66.61.6c.73.65 ; false | false = %x66.61.6c.73.65 ; false | |||
| null = %x6e.75.6c.6c ; null | null = %x6e.75.6c.6c ; null | |||
| true = %x74.72.75.65 ; true | true = %x74.72.75.65 ; true | |||
| 2.2. Objects | 2.2. Objects | |||
| An object structure is represented as a pair of curly brackets | An object structure is represented as a pair of curly brackets | |||
| surrounding zero or more name/value pairs (or members). A name is | surrounding zero or more name/value pairs (or members). A name is a | |||
| a string. A single colon comes after each name, separating the | string. A single colon comes after each name, separating the name | |||
| name from the value. A single comma separates a value from a | from the value. A single comma separates a value from a following | |||
| following name. The names within an object SHOULD be unique. | name. The names within an object SHOULD be unique. | |||
| object = begin-object [ member *( value-separator member ) ] | object = begin-object [ member *( value-separator member ) ] | |||
| end-object | end-object | |||
| member = string name-separator value | member = string name-separator value | |||
| 2.3. Arrays | 2.3. Arrays | |||
| An array structure is represented as square brackets surrounding | An array structure is represented as square brackets surrounding zero | |||
| zero or more values (or elements). Elements are separated by | or more values (or elements). Elements are separated by commas. | |||
| commas. | ||||
| array = begin-array [ value *( value-separator value ) ] | array = begin-array [ value *( value-separator value ) ] end-array | |||
| end-array | ||||
| 2.4. Numbers | 2.4. Numbers | |||
| The representation of numbers is similar to that used in most | The representation of numbers is similar to that used in most | |||
| programming languages. A number contains an integer component | programming languages. A number contains an integer component that | |||
| which may be prefixed with an optional minus sign, which may be | may be prefixed with an optional minus sign, which may be followed by | |||
| followed by a fraction part and/or an exponent part. | a fraction part and/or an exponent part. | |||
| Octal and hex forms are not allowed. Leading zeros are not | Octal and hex forms are not allowed. Leading zeros are not allowed. | |||
| allowed. | ||||
| A fraction part is a decimal point followed by one or more digits. | A fraction part is a decimal point followed by one or more digits. | |||
| An exponent part begins with the letter E in upper or lower case, | An exponent part begins with the letter E in upper or lowercase, | |||
| which may be followed by a plus or minus sign. The E and optional | which may be followed by a plus or minus sign. The E and optional | |||
| sign are followed by one or more digits. | sign are followed by one or more digits. | |||
| Numeric values that cannot be represented as sequences of digits | Numeric values that cannot be represented as sequences of digits | |||
| (such as Infinity and NaN) are not permitted. | (such as Infinity and NaN) are not permitted. | |||
| number = [ minus ] int [ frac ] [ exp ] | number = [ minus ] int [ frac ] [ exp ] | |||
| decimal-point = %x2E ; . | decimal-point = %x2E ; . | |||
| digit1-9 = %x31-39 ; 1-9 | digit1-9 = %x31-39 ; 1-9 | |||
| e = %x65 / %x45 ; e E | e = %x65 / %x45 ; e E | |||
| exp = e [ minus / plus ] 1*DIGIT | exp = e [ minus / plus ] 1*DIGIT | |||
| skipping to change at line 197 ¶ | skipping to change at page 4, line 25 ¶ | |||
| frac = decimal-point 1*DIGIT | frac = decimal-point 1*DIGIT | |||
| int = zero / ( digit1-9 *DIGIT ) | int = zero / ( digit1-9 *DIGIT ) | |||
| minus = %x2D ; - | minus = %x2D ; - | |||
| plus = %x2B ; + | plus = %x2B ; + | |||
| zero = %x30 ; 0 | zero = %x30 ; 0 | |||
| 2.5. Strings | 2.5. Strings | |||
| The representation of strings is similar to conventions used in | The representation of strings is similar to conventions used in the C | |||
| the C family of programming languages. A string begins and ends | family of programming languages. A string begins and ends with | |||
| with quotation marks. All Unicode characters may be placed within | quotation marks. All Unicode characters may be placed within the | |||
| the quotation marks except for the characters which must be | quotation marks except for the characters that must be escaped: | |||
| escaped: quotation mark, reverse solidus, and the control | quotation mark, reverse solidus, and the control characters (U+0000 | |||
| characters (U+0000 through U+001F). | through U+001F). | |||
| Any character may be escaped. If the character is in the Basic | Any character may be escaped. If the character is in the Basic | |||
| Multilingual Plane (U+0000 through U+FFFF) then it may be | Multilingual Plane (U+0000 through U+FFFF), then it may be | |||
| represented as a six-character sequence: a reverse solidus | represented as a six-character sequence: a reverse solidus, followed | |||
| followed by the lower case letter u followed by four hexadecimal | by the lowercase letter u, followed by four hexadecimal digits that | |||
| digits which encode the character's code point. The hexadecimal | encode the character's code point. The hexadecimal letters A though | |||
| letters A though F can be in upper or lower case. So, for | F can be upper or lowercase. So, for example, a string containing | |||
| example, a string containing only a single reverse solidus | only a single reverse solidus character may be represented as | |||
| character may be represented as "\u005C". | "\u005C". | |||
| Alternatively, there are two-character sequence escape | Alternatively, there are two-character sequence escape | |||
| representations of some popular characters. So, for example, a | representations of some popular characters. So, for example, a | |||
| string containing only a single reverse solidus character may be | string containing only a single reverse solidus character may be | |||
| represented more compactly as "\\". | represented more compactly as "\\". | |||
| To escape an extended character that is not in the Basic | To escape an extended character that is not in the Basic Multilingual | |||
| Multilingual Plane, then the character is represented as a | Plane, the character is represented as a twelve-character sequence, | |||
| twelve-character sequence, encoding the UTF-16 surrogate pair. | encoding the UTF-16 surrogate pair. So, for example, a string | |||
| So, for example, a string containing only the G clef character | containing only the G clef character (U+1D11E) may be represented as | |||
| (U+1D11E) may be represented as "\uD834\uDD1E". | "\uD834\uDD1E". | |||
| string = quotation-mark *char quotation-mark | string = quotation-mark *char quotation-mark | |||
| char = unescaped / | char = unescaped / | |||
| escape ( | escape ( | |||
| %x22 / ; " quotation mark U+0022 | %x22 / ; " quotation mark U+0022 | |||
| %x5C / ; \ reverse solidus U+005C | %x5C / ; \ reverse solidus U+005C | |||
| %x2F / ; / solidus U+002F | %x2F / ; / solidus U+002F | |||
| %x62 / ; b backspace U+0008 | %x62 / ; b backspace U+0008 | |||
| %x66 / ; f form feed U+000C | %x66 / ; f form feed U+000C | |||
| skipping to change at line 246 ¶ | skipping to change at page 5, line 25 ¶ | |||
| %x72 / ; r carriage return U+000D | %x72 / ; r carriage return U+000D | |||
| %x74 / ; t tab U+0009 | %x74 / ; t tab U+0009 | |||
| %x75 4HEXDIG ) ; uXXXX U+XXXX | %x75 4HEXDIG ) ; uXXXX U+XXXX | |||
| escape = %x5C ; \ | escape = %x5C ; \ | |||
| quotation-mark = %x22 ; " | quotation-mark = %x22 ; " | |||
| unescaped = %x20-21 / %x23-5B / %x5D-10FFFF | unescaped = %x20-21 / %x23-5B / %x5D-10FFFF | |||
| 3. Encoding | 3. Encoding | |||
| JSON text SHALL be encoded in Unicode. The default encoding is UTF-8. | JSON text SHALL be encoded in Unicode. The default encoding is | |||
| UTF-8. | ||||
| Since the first two characters of a JSON text will always be ASCII | Since the first two characters of a JSON text will always be ASCII | |||
| characters [RFC-0020], it is possible to determine if an octet stream | characters [RFC0020], it is possible to determine whether an octet | |||
| is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking at the | stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking | |||
| pattern of nulls in the first four octets. | at the pattern of nulls in the first four octets. | |||
| 00 00 00 xx UTF-32BE | 00 00 00 xx UTF-32BE | |||
| 00 xx 00 xx UTF-16BE | 00 xx 00 xx UTF-16BE | |||
| xx 00 00 00 UTF-32LE | xx 00 00 00 UTF-32LE | |||
| xx 00 xx 00 UTF-16LE | xx 00 xx 00 UTF-16LE | |||
| xx xx xx xx UTF-8 | xx xx xx xx UTF-8 | |||
| 4. Parsers | 4. Parsers | |||
| A JSON parser transforms a JSON text into another representation. A | A JSON parser transforms a JSON text into another representation. A | |||
| JSON parser MUST accept all texts that conform to the JSON grammar. | JSON parser MUST accept all texts that conform to the JSON grammar. | |||
| A JSON parser MAY accept non-JSON forms or extensions. | A JSON parser MAY accept non-JSON forms or extensions. | |||
| An implementation may set limits on the size of texts that it | An implementation may set limits on the size of texts that it | |||
| accepts. An implementation may set limits on the maximum depth of | accepts. An implementation may set limits on the maximum depth of | |||
| nesting. An implementation may set limits on the range of numbers. | nesting. An implementation may set limits on the range of numbers. | |||
| An implementation may set limits on the length and character contents | An implementation may set limits on the length and character contents | |||
| of strings. | of strings. | |||
| 5. Generators | 5. Generators | |||
| A JSON generator produces JSON text. The resulting text MUST | A JSON generator produces JSON text. The resulting text MUST | |||
| strictly conform to the JSON grammar. | strictly conform to the JSON grammar. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| The MIME media type for JSON text is application/json. | The MIME media type for JSON text is application/json. | |||
| Type name: text | Type name: application | |||
| Subtype name: json | Subtype name: json | |||
| Required parameters: n/a | Required parameters: n/a | |||
| Optional parameters: n/a | Optional parameters: n/a | |||
| Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | |||
| JSON may be represented using UTF-8, UTF-16 or UTF-32. When JSON | JSON may be represented using UTF-8, UTF-16, or UTF-32. When JSON | |||
| is written in UTF-8, JSON is 8bit-compatible. When JSON is written | is written in UTF-8, JSON is 8bit compatible. When JSON is | |||
| in UTF-16 or UTF-32, the binary content-transfer-encoding must be | written in UTF-16 or UTF-32, the binary content-transfer-encoding | |||
| used. | must be used. | |||
| Security considerations: | Security considerations: | |||
| Generally there are security issues with scripting languages. | Generally there are security issues with scripting languages. JSON | |||
| JSON is a subset of JavaScript, but it is a safe subset that | is a subset of JavaScript, but it is a safe subset that excludes | |||
| excludes assignment and invocation. | assignment and invocation. | |||
| A JSON text can be safely passed into JavaScript's eval() | A JSON text can be safely passed into JavaScript's eval() function | |||
| function (which compiles and executes a string) if all of the | (which compiles and executes a string) if all the characters not | |||
| characters not enclosed in strings are in the set of characters | enclosed in strings are in the set of characters that form JSON | |||
| which form JSON tokens. This can be quickly determined in | tokens. This can be quickly determined in JavaScript with two | |||
| JavaScript with two regular expressions and calls to the test and | regular expressions and calls to the test and replace methods. | |||
| replace methods. | ||||
| var my_JSON_object = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test( | var my_JSON_object = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test( | |||
| text.replace(/"(\\.|[^"\\])*"/g, ''))) && | text.replace(/"(\\.|[^"\\])*"/g, ''))) && | |||
| eval('(' + text + ')'); | eval('(' + text + ')'); | |||
| Interoperability considerations: n/a | Interoperability considerations: n/a | |||
| Published specification: RFC-XXXX | Published specification: RFC 4627 | |||
| Applications that use this media type: | Applications that use this media type: | |||
| JSON has been used to exchange data between applications written | JSON has been used to exchange data between applications written | |||
| in all of these programming languages: ActionScript, C, C#, | in all of these programming languages: ActionScript, C, C#, | |||
| ColdFusion, Common Lisp, E, Erlang, Java, JavaScript, Lua, | ColdFusion, Common Lisp, E, Erlang, Java, JavaScript, Lua, | |||
| Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Scheme. | Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Scheme. | |||
| Additional information: | Additional information: | |||
| Magic number(s): n/a | Magic number(s): n/a | |||
| skipping to change at line 349 ¶ | skipping to change at page 7, line 35 ¶ | |||
| Author: | Author: | |||
| Douglas Crockford | Douglas Crockford | |||
| douglas@crockford.com | douglas@crockford.com | |||
| Change controller: | Change controller: | |||
| Douglas Crockford | Douglas Crockford | |||
| douglas@crockford.com | douglas@crockford.com | |||
| 7. Security Considerations | 7. Security Considerations | |||
| See Security considerations in Section 6. | See Security Considerations in Section 6. | |||
| 8. Examples | 8. Examples | |||
| This is a JSON object: | This is a JSON object: | |||
| { | { | |||
| "Image": { | "Image": { | |||
| "Width": 800, | "Width": 800, | |||
| "Height": 600, | "Height": 600, | |||
| "Title": "View from 15th Floor", | "Title": "View from 15th Floor", | |||
| "Thumbnail": { | "Thumbnail": { | |||
| "Url": "http://scd.mm-b1.yimg.com/image/481989943", | "Url": "http://www.example.com/image/481989943", | |||
| "Height": 125, | "Height": 125, | |||
| "Width": "100" | "Width": "100" | |||
| }, | }, | |||
| "IDs": [116, 943, 234, 38793] | "IDs": [116, 943, 234, 38793] | |||
| } | } | |||
| } | } | |||
| Its Image member is an object whose Thumbnail member is an object | Its Image member is an object whose Thumbnail member is an object | |||
| and whose IDs member is an array of numbers. | and whose IDs member is an array of numbers. | |||
| This is a JSON array containing two objects: | This is a JSON array containing two objects: | |||
| [ | [ | |||
| { | { | |||
| skipping to change at line 399 ¶ | skipping to change at page 8, line 38 ¶ | |||
| "Address": "", | "Address": "", | |||
| "City": "SUNNYVALE", | "City": "SUNNYVALE", | |||
| "State": "CA", | "State": "CA", | |||
| "Zip": "94085", | "Zip": "94085", | |||
| "Country": "US" | "Country": "US" | |||
| } | } | |||
| ] | ] | |||
| 9. References | 9. References | |||
| 9.1 Normative References | 9.1. Normative References | |||
| [ECMA] European Computer Manufacturers Association, "ECMAScript | [ECMA] European Computer Manufacturers Association, "ECMAScript | |||
| Language Specification 3rd Edition", December 1999, | Language Specification 3rd Edition", December 1999, | |||
| <http://www.ecma-international.org/publications/files/ | <http://www.ecma-international.org/publications/files/ | |||
| ecma-st/ECMA-262.pdf>. | ecma-st/ECMA-262.pdf>. | |||
| [RFC-0020] Cerf, V., "ASCII format for Network Interchange", | [RFC0020] Cerf, V., "ASCII format for network interchange", RFC 20, | |||
| RFC 0020, October 16, 1969. | October 1969. | |||
| [RFC-2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC-4234] Crocker, D., "Augmented BNF for Syntax Specifications: | [RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| ABNF", RFC 4234, October 2005. | Specifications: ABNF", RFC 4234, October 2005. | |||
| [UNICODE] The Unicode Consortium, "The Unicode Standard | [UNICODE] The Unicode Consortium, "The Unicode Standard Version 4.0", | |||
| Version 4.0", 2003, | 2003, <http://www.unicode.org/versions/Unicode4.1.0/>. | |||
| <http://www.unicode.org/versions/Unicode4.1.0/>. | ||||
| Author's Address | Author's Address | |||
| Douglas Crockford | Douglas Crockford | |||
| JSON.org | JSON.org | |||
| Contact Email: douglas@crockford.com | EMail: douglas@crockford.com | |||
| Intellectual Property Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (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. | ||||
| 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 | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | 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 | might or might not be available; nor does it represent that it has | |||
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
| on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
| found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
| Copies of IPR disclosures made to the IETF Secretariat and any | Copies of IPR disclosures made to the IETF Secretariat and any | |||
| assurances of licenses to be made available, or the result of an | 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 | attempt made to obtain a general license or permission for the use of | |||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
| this standard. Please address the information to the IETF at ietf- | this standard. Please address the information to the IETF at | |||
| ipr@ietf.org. | ietf-ipr@ietf.org. | |||
| Disclaimer of Validity | ||||
| 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. | ||||
| Copyright Statement | ||||
| Copyright (C) The Internet Society (2006). This document is subject | Acknowledgement | |||
| to the rights, licenses and restrictions contained in BCP 78, and | ||||
| except as set forth therein, the authors retain all their rights. | ||||
| This Internet-Draft will expire on June 10, 2006. | Funding for the RFC Editor function is provided by the IETF | |||
| Administrative Support Activity (IASA). | ||||
| End of changes. 56 change blocks. | ||||
| 167 lines changed or deleted | 139 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||