RFC 7111 / START HERE
CSV fragments, before the details
CSV means comma-separated values; URI means Uniform Resource Identifier. A fragment is the part of a URI after #.
RFC 7111 defines links to rows, columns and cells inside a text/csv document. A supporting client retrieves the document and then interprets the selection.
The idea in one picture
CSV file
Client selects
Region in context
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
A link can identify a precise region of a shared table instead of leaving a reader to count rows by hand. This Informational publication updates RFC 4180 and its media-type registration; it preserves CSV field quoting rules.
A familiar example
For example, data.csv#cell=4,1 points to the first field in the fourth row. A header, if present, counts as row 1. Unsupported clients may show the full resource, and the fragment does not prevent access to unselected data.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Retrieve the table, then selectA URI fragment is the part after #. A supporting client interprets it after retrieving the CSV resource.→
- Count rows and columns from oneRows are records and columns are fields. Positions start at one, and a present header still occupies row 1.→
- Extend an inclusive rangeA hyphen joins the first and last selected positions. The asterisk means the actual last row or column.→
- Draw a rectangle of cellsA cell coordinate is row,column. A range names the upper-left cell and the lower-right cell of a rectangle.→
- Separate syntax from invalid regionsMalformed fragment syntax invalidates the whole fragment; a well-formed but nonexistent or inverse region is ignored individually.→
- Keep context and protect the fileThe media-type registration adds fragments and charset guidance. A selected region does not make the rest of a CSV private or trustworthy.→
This introduction explains RFC 7111 (2014). Read the original RFC ↗