Subject: iquery, ifragment and xref
Sorry for the cross posting. This is an issue that I encountered in the OpenXRI parser and triggered by Harry’s test case that the parser currently is not able to process:
Looking at the above example, because the identifier within the parenthesis above is an IRI, and the closing parenthesis “)” is a legal character in an IRI, the parser doesn’t know when the IRI terminates and consumes everything resulting in an IRI “http://www.openxri.org/)” and leaves the cross reference open. Ok, this is not the reason that the parser choked – it choked because IRI cross references are simply not implemented but I’ve encountered another two anomalies with the XRI syntax:
The ABNF for XRI uses IRI’s “iquery” and “ifragment” which also boils down to “sub-delims”, unlike XRI path-* productions which boil down to a much smaller “xri-sub-delims”.
This means that the parser would not be able to disambiguate:
when the query in the embedded XRI reference is “baz=bar)”.
I’m not sure if this has been discussed on the list before..