ConceptioArchiveW3C TR
W3C TRopen access

leiri

W3C · w3c_tr
W3C TR · Standards · License: Open Access
Open Source ↗
w3c, standard

Legacy extended IRIs for XML resource identification code { font-family: monospace; }

div.constraint, div.issue, div.note, div.notice { margin-left: 2em; }

ol.enumar { list-style-type: decimal; } ol.enumla { list-style-type: lower-alpha; } ol.enumlr { list-style-type: lower-roman; } ol.enumua { list-style-type: upper-alpha; } ol.enumur { list-style-type: upper-roman; }

div.exampleInner pre { margin-left: 1em; margin-top: 0em; margin-bottom: 0em} div.exampleOuter {border: 4px double gray; margin: 0em; padding: 0em} div.exampleInner { background-color: #d5dee3; border-top-width: 4px; border-top-style: double; border-top-color: #d3d3d3; border-bottom-width: 4px; border-bottom-style: double; border-bottom-color: #d3d3d3; padding: 4px; margin: 0em } div.exampleWrapper { margin: 4px } div.exampleHeader { font-weight: bold; margin: 4px} This version: http://www.w3.org/TR/2008/NOTE-leiri-20081103/ Latest version: http://www.w3.org/TR/leiri/ Previous version: Editors: Henry S. Thompson, University of Edinburgh <[email protected]> Richard Tobin, University of Edinburgh <[email protected]> Norman Walsh, Mark Logic Corporation <[email protected]> This document is also available in these non-normative formats: XML Copyright W3C ® MIT ERCIM Keio liability trademark document use For historic reasons, some formats have allowed variants of IRIs that are somewhat less restricted in syntax, for example XML system identifiers and W3C XML Schema anyURIs. This document provides a definition and a name (Legacy Extended IRI or LEIRI) for these variants for easy reference. These variants have to be used with care; they require further processing before being fully interchangeable as IRIs. New protocols and formats should not use Legacy Extended IRIs. This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index This document is a W3C Working Group Note. It has been developed by the XML Core Working Group XML Activity Ubiquitous Web Domain Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. Please send comments about this document to [email protected] archived This document is very closely based on material from [IRI-bis] [IRI-bis] This document was produced by a group operating under the 5 February 2004 W3C Patent Policy public list of any patent disclosures Essential Claim(s) section 6 of the W3C Patent Policy 1 Introduction Notation Legacy Extended IRI Syntax Conversion of Legacy Extended IRIs to IRIs Characters allowed in Legacy Extended IRIs but not in IRIs A References For historic reasons, some formats have allowed variants of IRIs [RFC3987] should not In this document, characters are referenced by using a prefix of 'U+' followed by four to six hexadecimal digits. In this document, the key words must must not required shall shall not should should not recommended may optional [RFC2119] The syntax of Legacy Extended IRIs (LEIRIs) and LEIRI references is the same as that for IRIs and IRI references except that ucschar [RFC5234] For consistency with [RFC3987] should not Some productions are ambiguous. The "first-match-wins" (a.k.a. "greedy") algorithm applies. For details, see [RFC3986] LEIRI ::= scheme ihier-part iquery ifragment ihier-part ::= "//" iauthority ipath-abempty / ipath-absolute / ipath-rootless / ipath-empty LEIRI-reference ::= LEIRI irelative-ref absolute-LEIRI ::= scheme ihier-part iquery irelative-ref ::= irelative-part iquery ifragment irelative-part ::= "//" iauthority ipath-abempty / ipath-absolute / ipath-noscheme / ipath-empty iauthority ::= [ iuserinfo ihost port iuserinfo ::= *( iunreserved pct-encoded sub-delims ihost ::= IP-literal IPv4address ireg-name ireg-name ::= *( iunreserved pct-encoded sub-delims ipath ::= ipath-abempty ; begins with "/" or is empty / ipath-absolute ; begins with "/" but not "//" / ipath-noscheme ; begins with a non-colon segment / ipath-rootless ; begins with a segment / ipath-empty ; zero characters ipath-abempty ::= *( "/" isegment ipath-absolute ::= "/" [ isegment-nz isegment ipath-noscheme ::= isegment-nz-nc isegment ipath-rootless ::= isegment-nz isegment ipath-empty ::= 0< ipchar isegment ::= * ipchar isegment-nz ::= 1* ipchar isegment-nz-nc ::= 1*( iunreserved pct-encoded sub-delims ; non-zero-length segment without any colon ":" ipchar ::= iunreserved pct-encoded sub-delims / "@" iquery ::= *( ipchar iprivate ifragment ::= *( ipchar iunreserved ::= ALPHA DIGIT ucschar iprivate ::= %xE000-F8FF / %xE0000-E0FFF / %xF0000-FFFFD / %x100000-10FFFD scheme ::= ALPHA ALPHA DIGIT port ::= * DIGIT IP-literal ::= "[" ( IPv6address IPvFuture IPvFuture ::= "v" 1* HEXDIG unreserved sub-delims IPv6address ::= 6( h16 ls32 / "::" 5( h16 ls32 / [ h16 h16 ls32 / [ *1( h16 h16 h16 ls32 / [ *2( h16 h16 h16 ls32 / [ *3( h16 h16 h16 ls32 / [ *4( h16 h16 ls32 / [ *5( h16 h16 h16 / [ *6( h16 h16 h16 ::= 1*4 HEXDIG ls32 ::= ( h16 h16 IPv4address IPv4address ::= dec-octet dec-octet dec-octet dec-octet dec-octet ::= DIGIT ; 0-9 / %x31-39 DIGIT ; 10-99 / "1" 2 DIGIT ; 100-199 / "2" %x30-34 DIGIT ; 200-249 / "25" %x30-35 ; 250-255 pct-encoded ::= "%" HEXDIG HEXDIG unreserved ::= ALPHA DIGIT reserved ::= gen-delims sub-delims gen-delims ::= ":" / "/" / "?" / "#" / "[" / "]" / "@" sub-delims ::= "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" ucschar ::= " " / "<" / ">" / '"' / "{" / "}" / "|" / "\" / "^" / "`" / %x0-1F / %x7F-D7FF / %xE000-FFFD / %x10000-10FFFF The restriction on bidirectional formatting characters in Section 4.1 [RFC3987] iprivate Formats that use Legacy Extended IRIs may U+0000 must To convert a Legacy Extended IRI (reference) to an IRI (reference), each character allowed in a Legacy Extended IRI (reference) but not allowed in an IRI (reference) (see 5 Characters allowed in Legacy Extended IRIs but not in IRIs must Convert the character to a sequence of one or more octets using UTF-8 [RFC3629] Convert each octet to %HH HH [RFC3986] should Replace the original character with the resulting character sequence (that is, a sequence of %HH Conversion from a LEIRI to an IRI or a URI must should This section provides a list of the groups of characters and code points that are allowed in Legacy Extedend IRIs but are not allowed in IRIs or are allowed in IRIs only in the query part. For each group of characters, advice on the usage of these characters is also given, concentrating on the reasons not to use them. Space (U+0020) Some formats and applications use space as a delimiter, for example, for items in a list. Appendix C of [RFC3986] Delimiters "<" (U+003C), ">" (U+003E) and '"' (U+0022) Appendix C of [RFC3986] "http://example.com/" <http://example.com/> Unwise characters "\" (U+005C), "^" (U+005E), "`" (U+0060), "{" (U+007B), "|" (U+007C) and "}" (U+007D) These characters originally have been excluded from URIs because the respective codepoints are assigned to different graphic characters in some 7-bit or 8-bit encoding. Despite the move to Unicode, some of these characters are still occasionally displayed differently on some systems, for example, U+005C The controls (C0 controls, DEL and C1 controls, U+0000 - U+001F U+007F - U+009F) There is no way to transmit these characters reliably except potentially in electronic form. Even when in electronic form, some software components might silently filter out some of these characters or may stop processing alltogether when encountering some of them. These characters may affect text display in subtle, unnoticable ways or in drastic, global and irreversible ways depending on the hardware and software involved. The use of some of these characters may allow malicious users to manipulate the display of a Legacy Extended IRI and its context. Bidi formatting characters (U+200E, U+200F, U+202A-202E) These characters affect the display ordering of characters. Displayed Legacy Extended IRIs containing these characters cannot be converted back to electronic form (logical order) unambiguously. These characters may allow malicious users to manipulate the display of a Legacy Extended IRI and its context. Specials (U+FFF0-FFFD) These code points provide functionality beyond that useful in a Legacy Extended IRI, for example byte order identification, annotation and replacements for unknown characters and objects. Their use and interpretation in a Legacy Extended IRI serves no purpose and may lead to confusing display variations. Private use code points (U+E000-F8FF, U+F0000-FFFFD, U+100000- 10FFFD) Display and interpretation of these code points is by definition undefined without private agreement. Therefore, these code points are not suited for use on the Internet. They are not interoperable and may have unpredictable effects. Tags (U+E0000-E0FFF) These characters provide a way to include language tags in Unicode plain text. They are not appropriate for Legacy Extended IRIs because language information in identifiers cannot reliably be input, transmitted (for example, on a visual medium such as paper), or recognized. Non-characters (U+FDD0-FDEF, U+1FFFE-1FFFF, U+2FFFE-2FFFF, U+3FFFE-3FFFF, U+4FFFE-4FFFF, U+5FFFE-5FFFF, U+6FFFE-6FFFF, U+7FFFE-7FFFF, U+8FFFE-8FFFF, U+9FFFE-9FFFF, U+AFFFE-AFFFF, U+BFFFE-BFFFF, U+CFFFE-CFFFF, U+DFFFE-DFFFF, U+EFFFE-EFFFF, U+FFFFE-FFFFF, U+10FFFE-10FFFF) These code points are defined as non-characters. Applications may use some of them internally, but are not prepared to interchange them. For reference, we here also list the code points and code units not even allowed in Legacy Extended IRIs: Surrogate code units (U+D800-U+DFFF) These do not represent Unicode codepoints. Bradner, S., Key words for use in RFCs to Indicate Requirement Levels http://tools.ietf.org/html/bcp14 http://tools.ietf.org/html/rfc2119 Crocker, D. and P. Overell, Eds, Augmented BNF for Syntax Specifications: ABNF http://tools.ietf.org/html/rfc5234 Yergeau, F., UTF-8, a transformation format of ISO 10646 http://tools.ietf.org/html/rfc3629 Berners-Lee, T., R. Fielding and L. Masinter, Uniform Resource Identifier (URI): Generic Syntax http://tools.ietf.org/html/rfc3986 Internationalized Resource Identifiers (IRIs) http://tools.ietf.org/html/rfc3987 Internationalized Resource Identifiers (IRIs) http://tools.ietf.org/html/draft-duerst-iri-bis-04

Related documents

Record · ID 153271 · SHA-256 b497b8dd730ef5da
Conceptio Open Knowledge Archive — every document is proof-bundled with source, license, and retrieval metadata.