< draft-daboo-et-al-icalendar-in-xml-10.txt   draft-daboo-et-al-icalendar-in-xml-11.txt >
Network Working Group C. Daboo Network Working Group C. Daboo
Internet-Draft Apple, Inc. Internet-Draft Apple, Inc.
Intended status: Standards Track M. Douglass Intended status: Standards Track M. Douglass
Expires: November 27, 2011 RPI Expires: November 28, 2011 RPI
S. Lees S. Lees
Microsoft Microsoft
May 26, 2011 May 27, 2011
xCal: The XML format for iCalendar xCal: The XML format for iCalendar
draft-daboo-et-al-icalendar-in-xml-10 draft-daboo-et-al-icalendar-in-xml-11
Abstract Abstract
This specification defines "xCal", an XML format for iCalendar data. This specification defines "xCal", an XML format for iCalendar data.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 27, 2011. This Internet-Draft will expire on November 28, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 40 skipping to change at page 2, line 40
3.6.10. Recurrence Rule (RFC5545 section 3.3.10) . . . . . . . 15 3.6.10. Recurrence Rule (RFC5545 section 3.3.10) . . . . . . . 15
3.6.11. Text (RFC5545 section 3.3.11) . . . . . . . . . . . . 16 3.6.11. Text (RFC5545 section 3.3.11) . . . . . . . . . . . . 16
3.6.12. Time (RFC5545 section 3.3.12) . . . . . . . . . . . . 16 3.6.12. Time (RFC5545 section 3.3.12) . . . . . . . . . . . . 16
3.6.13. URI (RFC5545 section 3.3.13) . . . . . . . . . . . . . 16 3.6.13. URI (RFC5545 section 3.3.13) . . . . . . . . . . . . . 16
3.6.14. UTC Offset (RFC5545 section 3.3.14) . . . . . . . . . 16 3.6.14. UTC Offset (RFC5545 section 3.3.14) . . . . . . . . . 16
3.7. Extensions . . . . . . . . . . . . . . . . . . . . . . . . 17 3.7. Extensions . . . . . . . . . . . . . . . . . . . . . . . . 17
4. Converting from xCal into iCalendar . . . . . . . . . . . . . 17 4. Converting from xCal into iCalendar . . . . . . . . . . . . . 17
4.1. Converting XML Extensions into iCalendar . . . . . . . . . 17 4.1. Converting XML Extensions into iCalendar . . . . . . . . . 17
4.2. The XML property for iCalendar . . . . . . . . . . . . . . 18 4.2. The XML property for iCalendar . . . . . . . . . . . . . . 18
5. Handling Unrecognized Properties or Parameters . . . . . . . . 19 5. Handling Unrecognized Properties or Parameters . . . . . . . . 19
6. Security Considerations . . . . . . . . . . . . . . . . . . . 21 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
7.1. Namespace Registration . . . . . . . . . . . . . . . . . . 21 7.1. Namespace Registration . . . . . . . . . . . . . . . . . . 21
7.2. Media Type . . . . . . . . . . . . . . . . . . . . . . . . 21 7.2. Media Type . . . . . . . . . . . . . . . . . . . . . . . . 21
7.3. iCalendar Property Registrations . . . . . . . . . . . . . 22 7.3. iCalendar Property Registrations . . . . . . . . . . . . . 22
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.1. Normative References . . . . . . . . . . . . . . . . . . . 23 9.1. Normative References . . . . . . . . . . . . . . . . . . . 23
9.2. Informative References . . . . . . . . . . . . . . . . . . 23 9.2. Informative References . . . . . . . . . . . . . . . . . . 23
Appendix A. Relax NG Schema . . . . . . . . . . . . . . . . . . . 24 Appendix A. Relax NG Schema . . . . . . . . . . . . . . . . . . . 24
Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 49 Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 49
B.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 49 B.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 49
B.1.1. iCalendar Data . . . . . . . . . . . . . . . . . . . . 49 B.1.1. iCalendar Data . . . . . . . . . . . . . . . . . . . . 49
B.1.2. XML Data . . . . . . . . . . . . . . . . . . . . . . . 50 B.1.2. XML Data . . . . . . . . . . . . . . . . . . . . . . . 50
B.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 50 B.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 50
B.2.1. iCalendar Data . . . . . . . . . . . . . . . . . . . . 51 B.2.1. iCalendar Data . . . . . . . . . . . . . . . . . . . . 51
skipping to change at page 18, line 5 skipping to change at page 18, line 5
depending on whether the extensions are in the iCalendar XML depending on whether the extensions are in the iCalendar XML
namespace, or in an external namespace. namespace, or in an external namespace.
Extensions that are part of the iCalendar XML namespace MUST have Extensions that are part of the iCalendar XML namespace MUST have
element names that begin with "x-", and will be converted back to the element names that begin with "x-", and will be converted back to the
equivalent extension property in iCalendar. For example, the "x-foo" equivalent extension property in iCalendar. For example, the "x-foo"
element will convert to the "X-FOO" iCalendar property. element will convert to the "X-FOO" iCalendar property.
Extensions that are in a namespace other than the iCalendar XML Extensions that are in a namespace other than the iCalendar XML
namespace SHOULD be preserved in the iCalendar representation using namespace SHOULD be preserved in the iCalendar representation using
the "XML" iCalendar property described in Section 4.2. the "XML" iCalendar property described in Section 4.2. Only those
extension elements that are immediate child elements of the IC:
properties element are converted, any others are ignored.
4.2. The XML property for iCalendar 4.2. The XML property for iCalendar
This section describes an extension property for iCalendar, as This section describes an extension property for iCalendar, as
covered in section 8.2.3 of [RFC5545]. covered in section 8.2.3 of [RFC5545].
Property name: XML Property name: XML
Purpose: To embed XML-encoded calendar data in the iCalendar format. Purpose: To embed extended XML-encoded iCalendar data in the
iCalendar format.
Value type: The default value type is "TEXT". The value type can Value type: The default value type is "TEXT". The value type can
also be set to "BINARY" to indicate base64 encoded content. also be set to "BINARY" to indicate base64 encoded content.
Property parameters: IANA, non-standard, inline encoding, and value Property parameters: IANA, non-standard, inline encoding, and value
data type property parameters can be specified on this property. data type property parameters can be specified on this property.
Conformance: The property can appear on any iCalendar component. Conformance: The property can be specified multiple times in any
calendar component.
Description: The value of this property is an XML element. The "XML" Description: The value of this property is a single XML 1.0
property MUST NOT be used to contain properties that are already [W3C.REC-xml-20081126] element. The "XML" property MUST NOT be used
defined in iCalendar, or properties that use the "X-" iCalendar to contain properties that are already defined in iCalendar. Since
extension property syntax. Since all elements in the all elements in the urn:ietf:params:xml:ns:icalendar-2.0 namespace
urn:ietf:params:xml:ns:icalendar-2.0 namespace convert to a well- convert to a well-defined iCalendar object, the elements in this
defined iCalendar object, the elements in this property MUST NOT be property MUST NOT be in the urn:ietf:params:xml:ns:icalendar-2.0
in the urn:ietf:params:xml:ns:icalendar-2.0 namespace. The XML namespace. The XML element which is the value of this property MUST
element which is the value of this property MUST have an XML have an XML namespace declaration.
namespace declaration.
Note that the source XML may contain characters not allowed in The default value type for this property is "TEXT", and normal
iCalendar such as control characters. If this is the case, then the BACKSLASH escaping rules for that value MUST be applied. Note that
XML data MUST be base64 encoded. As required by [RFC5545], the the source XML can contain characters not allowed in "TEXT" property
"ENCODING" property parameter MUST be present and set to "BASE64", values. If this is the case, then the XML data MUST be base64
and the "VALUE" property parameter MUST be present and set to encoded. As required by [RFC5545], the "ENCODING" property parameter
"BINARY". MUST be present and set to "BASE64", and the "VALUE" property
parameter MUST be present and set to "BINARY".
There can be more than one "XML" property present for a given The ordering of "XML" properties is not preserved in the conversion
iCalendar object. The ordering of "XML" properties is not preserved between xCal and iCalendar.
in the conversion between xCal and iCalendar.
Format definition: This property is defined by the following Format definition: This property is defined by the following
notation: notation:
xml = "XML" xmlparam ( ":" text ) / xml = "XML" xmlparam ( ":" text ) /
( (
";" "ENCODING" "=" "BASE64" ";" "ENCODING" "=" "BASE64"
";" "VALUE" "=" "BINARY" ";" "VALUE" "=" "BINARY"
":" binary ":" binary
) )
CRLF CRLF
xmlparam = *(";" other-param) xmlparam = *(";" other-param)
Example: The following is an example of an iCalendar event with a Example: The following is an example of a location embedded in KML
location embedded in KML markup inside the "XML" property. markup inside the "XML" property.
BEGIN:VCALENDAR XML:<kml xmlns="http://www.opengis.net/kml/2.2">\n
CALSCALE:GREGORIAN <Document>\n
PRODID:-//Example Inc.//Example Calendar//EN <name>KML Sample</name>\n
VERSION:2.0 <open>1</open>\n
BEGIN:VEVENT <description>An incomplete example of a KML docum
DTSTAMP:20080205T191224Z ent - used as an example!</description>\n
DTSTART:20081006 </kml>
SUMMARY:Planning meeting
UID:4088E990AD89CB3DBB484909
XML:<kml xmlns="http://www.opengis.net/kml/2.2">...</kml>
END:VEVENT
END:VCALENDAR
5. Handling Unrecognized Properties or Parameters 5. Handling Unrecognized Properties or Parameters
In iCalendar, properties have a default value type specified by their In iCalendar, properties have a default value type specified by their
definition, e.g. "SUMMARY"'s value type is "TEXT" and "DURATION"'s definition, e.g. "SUMMARY"'s value type is "TEXT" and "DURATION"'s
is "DURATION". When a property uses its default value type, the is "DURATION". When a property uses its default value type, the
"VALUE" property parameter does not need to be specified on the "VALUE" property parameter does not need to be specified on the
property. property.
When new properties are defined or "X-" properties used, an When new properties are defined or "X-" properties used, an
skipping to change at page 23, line 44 skipping to change at page 23, line 37
[RFC4648] Josefsson, S., "The Base16, Base32, [RFC4648] Josefsson, S., "The Base16, Base32,
and Base64 Data Encodings", RFC 4648, and Base64 Data Encodings", RFC 4648,
October 2006. October 2006.
[RFC5545] Desruisseaux, B., "Internet [RFC5545] Desruisseaux, B., "Internet
Calendaring and Scheduling Core Calendaring and Scheduling Core
Object Specification (iCalendar)", Object Specification (iCalendar)",
RFC 5545, September 2009. RFC 5545, September 2009.
[W3C.REC-xml-20081126] Paoli, J., Yergeau, F., Bray, T.,
Sperberg-McQueen, C., and E. Maler,
"Extensible Markup Language (XML) 1.0
(Fifth Edition)", World Wide Web
Consortium Recommendation REC-xml-
20081126, November 2008, <http://
www.w3.org/TR/2008/REC-xml-20081126>.
9.2. Informative References 9.2. Informative References
[W3C.REC-xmlschema-2-20041028] Biron, P. and A. Malhotra, "XML [W3C.REC-xmlschema-2-20041028] Biron, P. and A. Malhotra, "XML
Schema Part 2: Datatypes Second Schema Part 2: Datatypes Second
Edition", World Wide Web Consortium R Edition", World Wide Web Consortium R
ecommendation REC-xmlschema-2- ecommendation REC-xmlschema-2-
20041028, October 2004, <http:// 20041028, October 2004, <http://
www.w3.org/TR/2004/ www.w3.org/TR/2004/
REC-xmlschema-2-20041028>. REC-xmlschema-2-20041028>.
skipping to change at page 28, line 47 skipping to change at page 29, line 4
pattern-date = xsd:string { pattern-date = xsd:string {
pattern = "\d\d\d\d-\d\d-\d\d" pattern = "\d\d\d\d-\d\d-\d\d"
} }
value-date = element date { value-date = element date {
pattern-date pattern-date
} }
# 3.3.5 DATE-TIME # 3.3.5 DATE-TIME
pattern-date-time = xsd:string { pattern-date-time = xsd:string {
pattern = "\d\d\d\d-\d\d-\d\dT\d\d-\d\d-\d\dZ?" pattern = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ?"
} }
value-date-time = element date-time { value-date-time = element date-time {
pattern-date-time pattern-date-time
} }
# 3.3.6 DURATION # 3.3.6 DURATION
pattern-duration = xsd:string { pattern-duration = xsd:string {
pattern = "[+\-]?P(\d+W)|(\d+D)?" pattern = "[+\-]?P(\d+W)|(\d+D)?"
~ "(T(\d+H(\d+M)?(\d+S)?)|" ~ "(T(\d+H(\d+M)?(\d+S)?)|"
~ "(\d+M(\d+S)?)|" ~ "(\d+M(\d+S)?)|"
skipping to change at page 55, line 10 skipping to change at page 55, line 10
</vevent> </vevent>
</components> </components>
</vcalendar> </vcalendar>
</icalendar> </icalendar>
Appendix C. Change History (to be removed prior to publication as an Appendix C. Change History (to be removed prior to publication as an
RFC) RFC)
Changes in -10: Changes in -10:
1. Fixed date-time schema pattern.
2. Tweaked XML property definition based on expert review
Changes in -10:
1. IESG: Added more XML schema references in value descriptions. 1. IESG: Added more XML schema references in value descriptions.
2. IESG: Added reference to RFC4648 for base64 definition. 2. IESG: Added reference to RFC4648 for base64 definition.
3. IESG: Rephrased various uses of "optional". 3. IESG: Rephrased various uses of "optional".
4. IESG: Clarified round-tripping design consideration. 4. IESG: Clarified round-tripping design consideration.
5. IESG: Use "As an example" rather than "non-normative" for tables. 5. IESG: Use "As an example" rather than "non-normative" for tables.
 End of changes. 19 change blocks. 
43 lines changed or deleted 55 lines changed or added

This html diff was produced by rfcdiff 1.39. The latest version is available from http://tools.ietf.org/tools/rfcdiff/