1. Everywhere that the datatype anyURI is used in the ODF 1.2 schema, replace it with anyIRI.
2. Define anyIRI as a datatype based on anyURI but restricted so that no U+0000 to U+007F code points excluded in [RFC3987] are allowed.
3. Add the following non-normative reference to Part 1:
[XPointer] Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, XPiointer Framework, http://www.w3.org/TR/2003/REC-xptr-framework-20030325/, W3C, 2003.
Add [RFC3987] to the Normative References if that is not already done.
4. In section 18.3 add a definition for anyIRI that provides the following information:
"""
A valid anyIRI value is an anyURI value that conforms to the definition of IRI reference in [RFC3987]. Resolution of anyIRI values to absolute IRIs, acceptable IRI schemes, and additional scheme- and constraints may also apply. For the resolution of relative IRI references to package subdocuments and files in the same package as the XML document, see "Usage of IRIs in Packages" in Part 3 of this specification. The anyIRI datatype is also compatible with the occurrence of IRI references as values of fields, in table cells, and in OpenFormula expressions (Part 2 of this specification).
[NOTE: Except where the IRI reference is expressed in a CDATA section, any direct occurrence of "&" (AMPERSAND, U+0026) in the IRI reference can be introduced by use of a character entity or the pre-defined general entity "&" [XML1.0]. When an anyIRI is expressed in an XML attribute where the AttValue form has surrounding single-quote characters, any occurrences of single-quote "'" (APOSTROPHE, U+0027) in the IRI reference, can be introduced by character entity or the pre-defined general entity "'" [XML1.0].]
[BEGIN NOTE:
IRI references allow use of specific ranges of Unicode code points beyond U+007F (see the uschar and iprivate syntax rules in section 2.2 of [RFC3987]). The IRI syntax allows only a subset of code points corresponding to ASCII characters in the range U+0000 through U+007F. The excluded ASCII characters can only occur in IRI References via escaping in positions where IRI syntax rule pct-encoded applies. The excluded characters include the controls, U+0000 through U+001F and U+007F. The remaining excluded characters are
SP SPACE, U+0020
" QUOTATION, U+0022
< LESS-THAN-MARK, U+003C
> GREATER-THAN-MARK, U+003E
\ REVERSE SOLIDUS, U+005C
^ CIRCUMFLEX ACCENT, U+005E
` GRAVE ACCENT, U+0060
{ LEFT CURLY BRACKET, U+007B
| VERTICAL LINE, U+007C
}
RIGHT CURLY BRACKET, U+007D
The character "%" (PERCENT SIGN, U+0025) can only be introduced as other than the first character from the pct-encoded rule by escaping as "%25" wherever the rule pct-encoded can be applied. Those non-excluded ASCII characters that have no reserved purpose in [RFC3987] do not benefit from escaping. See [RFC3987] for the conditions where escaping of the individual ASCII characters reserved for IRI syntactic functions is important to avoid confusion with use of those characters for syntactic purposes.
END NOTE]
[NOTE: The form of fragment identifiers provided for in the General IRI syntax of [RFC3987] is more restricted than allowed for in Section 5.4 of [XLink] such that the currently-effective SchemeBased syntax of the XPointer Framework [XPointer] cannot be employed directly. The XPointer syntax for SchemeBased pointers can be correctly obtained when all pct-encoded occurrences in separated ifragment portion of the IRI reference are first decoded to their Unicode code points in accordance with [RFC3987] whether the characters are excluded or not. ]