rfc7111v1.txt   rfc7111.txt 
Independent Submission M. Hausenblas Independent Submission M. Hausenblas
Request for Comments: 7111 DERI, NUI Galway Request for Comments: 7111 MapR Technologies
Updates: 4180 E. Wilde Updates: 4180 E. Wilde
Category: Informational EMC Corporation Category: Informational UC Berkeley
ISSN: 2070-1721 J. Tennison ISSN: 2070-1721 J. Tennison
Open Data Institute Open Data Institute
January 2014 January 2014
URI Fragment Identifiers for the text/csv Media Type URI Fragment Identifiers for the text/csv Media Type
Abstract Abstract
This memo defines URI fragment identifiers for text/csv MIME This memo defines URI fragment identifiers for text/csv MIME
entities. These fragment identifiers make it possible to refer to entities. These fragment identifiers make it possible to refer to
parts of a text/csv MIME entity identified by row, column, or cell. parts of a text/csv MIME entity identified by row, column, or cell.
Fragment identification can use single items or ranges. Fragment identification can use single items or ranges.
IESG Note
The change to the text/csv media type registration requires IESG
approval, as the IESG is the change controller for that registration.
The IESG has, after consultation with the IETF community, approved
the change, which is specified in Section 5 of this document.
Status of This Memo Status of This Memo
This document is not an Internet Standards Track specification; it is This document is not an Internet Standards Track specification; it is
published for informational purposes. published for informational purposes.
This is a contribution to the RFC Series, independently of any other This is a contribution to the RFC Series, independently of any other
RFC stream. The RFC Editor has chosen to publish this document at RFC stream. The RFC Editor has chosen to publish this document at
its discretion and makes no statement about its value for its discretion and makes no statement about its value for
implementation or deployment. Documents approved for publication by implementation or deployment. Documents approved for publication by
the RFC Editor are not a candidate for any level of Internet the RFC Editor are not a candidate for any level of Internet
Standard; see Section 2 of RFC 5741. Standard; see Section 2 of RFC 5741.
Information about the current status of this document, any errata, Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7111. http://www.rfc-editor.org/info/rfc7111.
IESG Note
The change to the text/csv media type registration requires IESG
approval, as the IESG is the change controller for that registration.
The IESG has, after consultation with the IETF community, approved
the change, which is specified in Section 5 of this document.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. to this document.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. What is text/csv? . . . . . . . . . . . . . . . . . . . . 3 1.1. What is text/csv? . . . . . . . . . . . . . . . . . . . . 3
1.2. Why text/csv Fragment Identifiers? . . . . . . . . . . . 3 1.2. Why text/csv Fragment Identifiers? . . . . . . . . . . . 3
1.2.1. Motivation . . . . . . . . . . . . . . . . . . . . . 3 1.2.1. Motivation . . . . . . . . . . . . . . . . . . . . . 3
1.2.2. Use Cases . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2. Use Cases . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Incremental Deployment . . . . . . . . . . . . . . . . . 4 1.3. Incremental Deployment . . . . . . . . . . . . . . . . . 4
1.4. Notation Used in this Memo . . . . . . . . . . . . . . . 4 1.4. Notation Used in this Memo . . . . . . . . . . . . . . . 4
2. Fragment Identification Methods . . . . . . . . . . . . . . . 4 2. Fragment Identification Methods . . . . . . . . . . . . . . . 5
2.1. Row-Based Selection . . . . . . . . . . . . . . . . . . . 5 2.1. Row-Based Selection . . . . . . . . . . . . . . . . . . . 5
2.2. Column-Based Selection . . . . . . . . . . . . . . . . . 5 2.2. Column-Based Selection . . . . . . . . . . . . . . . . . 6
2.3. Cell-Based Selection . . . . . . . . . . . . . . . . . . 6 2.3. Cell-Based Selection . . . . . . . . . . . . . . . . . . 6
2.4. Multi-Selections . . . . . . . . . . . . . . . . . . . . 7 2.4. Multi-Selections . . . . . . . . . . . . . . . . . . . . 7
3. Fragment Identification Syntax . . . . . . . . . . . . . . . 7 3. Fragment Identification Syntax . . . . . . . . . . . . . . . 7
4. Fragment Identifier Processing . . . . . . . . . . . . . . . 7 4. Fragment Identifier Processing . . . . . . . . . . . . . . . 8
4.1. Syntax Errors in Fragment Identifiers . . . . . . . . . . 7 4.1. Syntax Errors in Fragment Identifiers . . . . . . . . . . 8
4.2. Semantics of Fragment Identifiers . . . . . . . . . . . . 8 4.2. Semantics of Fragment Identifiers . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5.1. The text/csv media type . . . . . . . . . . . . . . . . . 9 5.1. The text/csv media type . . . . . . . . . . . . . . . . . 9
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1. Normative References . . . . . . . . . . . . . . . . . . 11 8.1. Normative References . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . 12
1. Introduction 1. Introduction
This memo updates the text/csv media type defined in RFC 4180 This memo updates the text/csv media type defined in RFC 4180
skipping to change at page 3, line 36 skipping to change at page 4, line 5
regardless of the URI scheme used in the URI reference. Therefore, regardless of the URI scheme used in the URI reference. Therefore,
the format and interpretation of fragment identifiers is dependent on the format and interpretation of fragment identifiers is dependent on
the media type of the retrieval result. the media type of the retrieval result.
1.2.1. Motivation 1.2.1. Motivation
Similar to the motivation in RFC 5147 [RFC5147], which defines Similar to the motivation in RFC 5147 [RFC5147], which defines
fragment identifiers for plain text files, referring to specific fragment identifiers for plain text files, referring to specific
parts of a resource can be very useful because it enables users and parts of a resource can be very useful because it enables users and
applications to create more specific references. Users can create applications to create more specific references. Users can create
references to the part they really are interested in or want to talk references to a particular point of interest within a resource,
about, rather than always pointing to a complete resource. Even rather than referring to the complete resource. Even though it is
though it is suggested that fragment identification methods are suggested that fragment identification methods are specified in a
specified in a media type's registration (see [RFC6838]), many media media type's registration (see [RFC6838]), many media types do not
types do not have fragment identification methods associated with have fragment identification methods associated with them.
them.
Fragment identifiers are only useful if supported by the client, Fragment identifiers are only useful if supported by the client,
because they are only interpreted by the client. Therefore, a new because they are only interpreted by the client. Therefore, a new
fragment identification method will require some time to be adopted fragment identification method will require some time to be adopted
by clients, and older clients will not support it. However, because by clients, and older clients will not support it. However, because
the URI still works even if the fragment identifier is not supported the URI still works even if the fragment identifier is not supported
(the resource is retrieved, but the fragment identifier is not (the resource is retrieved, but the fragment identifier is not
interpreted), rapid adoption is not highly critical to ensure the interpreted), rapid adoption is not highly critical to ensure the
success of a new fragment identification method. success of a new fragment identification method.
skipping to change at page 8, line 21 skipping to change at page 8, line 34
fragment identifiers to easily identify ranges that extend to the fragment identifiers to easily identify ranges that extend to the
last row or column. last row or column.
If single selections refer to non-existing rows or columns (i.e., If single selections refer to non-existing rows or columns (i.e.,
beyond the size of the CSV), they MUST be ignored. beyond the size of the CSV), they MUST be ignored.
If ranges extend beyond the size of the CSV (by extending to rows or If ranges extend beyond the size of the CSV (by extending to rows or
columns beyond the size of the CSV), they MUST be interpreted to only columns beyond the size of the CSV), they MUST be interpreted to only
extend to the actual size of the CSV. extend to the actual size of the CSV.
If selections of ranges of rows or columns or selections of cell If selections of ranges of rows, ranges of columns, or ranges of
ranges are specified in a way so that they select "inversely" (i.e., cells are specified in a way so that they select "inversely" (i.e.,
"#row=10-5" or "#cell=10,10-5,5"), they MUST be ignored. "#row=10-5" or "#cell=10,10-5,5"), they MUST be ignored.
Each specification of an identified region is processed Each specification of an identified region is processed
independently, and ignored specifications (because of reasons listed independently, and ignored specifications (because of reasons listed
in the previous paragraphs) do not cause the whole fragment in the previous paragraphs) do not cause the whole fragment
identifier to fail, they just mean that this single specification is identifier to fail, they just mean that this single specification is
ignored. For the example file, the fragment identifier ignored. For the example file, the fragment identifier
"#row=1-2;5-4;13-16" does identify the first two rows: the second "#row=1-2;5-4;13-16" does identify the first two rows: the second
specification is an "inverse" specification and thus is ignored, and specification is an "inverse" specification and thus is ignored, and
the third specification targets rows beyond the actual size of the the third specification targets rows beyond the actual size of the
skipping to change at page 9, line 21 skipping to change at page 9, line 33
considerations for fragment identifiers. considerations for fragment identifiers.
Type name: text Type name: text
Subtype name: csv Subtype name: csv
Required parameters: none Required parameters: none
Optional parameters: charset, header Optional parameters: charset, header
The "charset" parameter specifies the charset employed by the The "charset" parameter specifies the charset employed by the CSV
CSV content. In accordance with RFC 6657 [RFC6657], the content. In accordance with RFC 6657 [RFC6657], the charset
charset parameter SHOULD be used, and if it is not present, parameter SHOULD be used, and if it is not present, UTF-8 SHOULD
UTF-8 SHOULD be assumed as the default (this implies that be assumed as the default (this implies that US-ASCII CSV will
US-ASCII CSV will work, even when not specifying the "charset" work, even when not specifying the "charset" parameter). Any
parameter). Any charset defined by IANA for the "text" tree charset defined by IANA for the "text" tree may be used in
may be used in conjunction with the "charset" parameter. conjunction with the "charset" parameter.
The "header" parameter indicates the presence or absence of the The "header" parameter indicates the presence or absence of the
header line. Valid values are "present" or "absent". header line. Valid values are "present" or "absent".
Implementors choosing not to use this parameter must make their Implementors choosing not to use this parameter must make their
own decisions as to whether the header line is present or own decisions as to whether the header line is present or absent.
absent.
Encoding considerations: CSV MIME entities consist of binary data Encoding considerations: CSV MIME entities consist of binary data
[RFC6838]. As per Section 4.1.1. of RFC 2046 [RFC2046], this [RFC6838]. As per Section 4.1.1. of RFC 2046 [RFC2046], this
media type uses CRLF to denote line breaks. However, implementers media type uses CRLF to denote line breaks. However, implementers
should be aware that some implementations may use other values. should be aware that some implementations may use other values.
Security considerations: Security considerations:
Text/csv consists of nothing but passive text data that should Text/csv consists of nothing but passive text data that should not
not pose any direct risks. However, it is possible that pose any direct risks. However, it is possible that malicious
malicious data may be included in order to exploit buffer data may be included in order to exploit buffer overruns or other
overruns or other bugs in the program processing the text/csv bugs in the program processing the text/csv data.
data.
The text/csv format provides no confidentiality or integrity The text/csv format provides no confidentiality or integrity
protection, so if such protections are needed, they must be protection, so if such protections are needed, they must be
supplied externally. supplied externally.
The fact that software implementing fragment identifiers for The fact that software implementing fragment identifiers for CSV
CSV and software not implementing them differs in behavior, and and software not implementing them differs in behavior, and the
the fact that different software may show documents or fact that different software may show documents or fragments to
fragments to users in different ways, can lead to users in different ways, can lead to misunderstandings on the part
misunderstandings on the part of users. Such misunderstandings of users. Such misunderstandings might be exploited in a way
might be exploited in a way similar to spoofing or phishing. similar to spoofing or phishing.
Implementers and users of fragment identifiers for CSV text Implementers and users of fragment identifiers for CSV text should
should also be aware of the security considerations in RFC 3986 also be aware of the security considerations in RFC 3986 [RFC3986]
[RFC3986] and RFC 3987 [RFC3987]. and RFC 3987 [RFC3987].
Interoperability considerations: Due to lack of a single Interoperability considerations: Due to lack of a single
specification, there are considerable differences among specification, there are considerable differences among
implementations. Implementers should "be conservative in what you implementations. Implementers should "be conservative in what you
do, be liberal in what you accept from others" (RFC 793 [RFC0793]) do, be liberal in what you accept from others" (RFC 793 [RFC0793])
when processing CSV files. An attempt at a common definition can when processing CSV files. An attempt at a common definition can
be found in Section 2. Implementations deciding not to use the be found in Section 2. Implementations deciding not to use the
optional "header" parameter must make their own decision as to optional "header" parameter must make their own decision as to
whether the header is absent or present. whether the header is absent or present.
skipping to change at page 12, line 28 skipping to change at page 13, line 8
[RFC5147] Wilde, E. and M. Duerst, "URI Fragment Identifiers for the [RFC5147] Wilde, E. and M. Duerst, "URI Fragment Identifiers for the
text/plain Media Type", RFC 5147, April 2008. text/plain Media Type", RFC 5147, April 2008.
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type
Specifications and Registration Procedures", BCP 13, RFC Specifications and Registration Procedures", BCP 13, RFC
6838, January 2013. 6838, January 2013.
Authors' Addresses Authors' Addresses
Michael Hausenblas Michael Hausenblas
DERI, NUI Galway MapR Technologies
IDA Business Park 32 Bushypark Lawn
Galway Galway
Ireland Ireland
Phone: +353-91-495730 Phone: +353-86-0215164
EMail: michael.hausenblas@deri.org EMail: mhausenblas@maprtech.com
URI: http://sw-app.org/about.html URI: http://mhausenblas.info
Erik Wilde Erik Wilde
EMC Corporation UC Berkeley
6801 Koll Center Parkway
Pleasanton, CA 94566
U.S.A.
Phone: +1-925-6006244 EMail: dret@berkeley.edu
EMail: erik.wilde@emc.com
URI: http://dret.net/netdret/ URI: http://dret.net/netdret/
Jeni Tennison Jeni Tennison
Open Data Institute Open Data Institute
65 Clifton Street 65 Clifton Street
London EC2A 4JE London EC2A 4JE
U.K. U.K.
Phone: +44-797-4420482 Phone: +44-797-4420482
EMail: jeni@jenitennison.com EMail: jeni@jenitennison.com
URI: http://www.jenitennison.com/blog/ URI: http://www.jenitennison.com/blog/
 End of changes. 22 change blocks. 
63 lines changed or deleted 57 lines changed or added

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