OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xri-editors message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [xri-editors] Xref escaping rules


Just so.

Dave, I got your message about writing this up, and I'm not working at
all in the Relative XRI section, so go for it. Call me when you get this
and we'll coordinate on hand-offs today.

=Drummond 

-----Original Message-----
From: Dave McAlpin [mailto:dave.mcalpin@epokinc.com]
Sent: Monday, June 30, 2003 10:08 AM
To: 'Wachob, Gabe'; Drummond Reed; xri-editors@lists.oasis-open.org
Subject: RE: [xri-editors] Xref escaping rules

I assumed we would escape iteratively, once for each level of nesting

1) Embed http://foo.com?id=21#bar in xri:@foo/baz as a cross-reference

a) Escape cross-reference to get
http://foo.com%3Fid=21%23bar

b) Add as cross-reference
xri:@foo/baz/(http://foo.com%3Fid=21%23bar)

When the cross-reference is extracted, it's unescaped to

http://foo.com?id=21#bar

2) Embed http://foo.com?id=21-%28widget#bar in xri:@foo/baz as a
cross-refrence

a) Escape the cross-reference to get
http://foo.com%3Fid=21-%2528widget%23bar

b) Append as cross-reference
xri:@foo/baz/(http://foo.com%3Fid=21-%2528widget%23bar)

When the cross-reference is extracted, it's unescaped to

http://foo.com?id=21-%28widget#bar

3) A complex nested example. Embed http://foo.com?id=21-%28widget in
xri:+foo.bar.<xref>, which is in turn embedded in
xri://foo.bar/<xref>/baz

a) First escape the innermost cross-reference to get
http://foo.com%3Fid=21-%2528widget

b) Add as cross-reference
xri:+foo.bar.(http://foo.com%3Fid=21-%2528widget)

c) Escape the cross-reference to get
xri:+foo.bar.(http://foo.com%253Fid=21-%252528widget)

d) Add as cross-reference
xri://foo.bar/(xri:+foo.bar.(http://foo.com%253Fid=21-%252528widget)))/b
az

When the XRI is evaluated, the outermost cross-reference is extracted

xri:+foo.bar.(http://foo.com%253Fid=21-%252528widget))

And unescaped to give

xri:+foo.bar.(http://foo.com%3Fid=21-%2528widget))

The next level cross-reference is extracted

http://foo.com%3Fid=21-%2528widget

and unescaped to give

http://foo.com?id=21-%28widget

Dave

-----Original Message-----
From: Wachob, Gabe [mailto:gwachob@visa.com]
Sent: Monday, June 30, 2003 9:19 AM
To: 'Drummond Reed'; xri-editors@lists.oasis-open.org
Subject: RE: [xri-editors] Xref escaping rules

Drummond-
        This seems pretty reasonable.

        Have you considered the case where you have two levels of cross
referencing? That is, a cross reference which contains an XRI value that
itself has a cross reference?

xri://foo.bar/(+foo.bar.(http://www.foo.com#3ffoo))/baz

vs

xri://foo.bar/(+foo.bar.(http://www.foo.com(#3f)foo))/baz

vs

xri://foo.bar/(+foo.bar.(http://www.foo.com((#3f))foo))/baz

I think you need to amend the rules about escaping/unescaping to account
for
nesting..

        -Gabe


> -----Original Message-----
> From: Drummond Reed [mailto:drummond.reed@onename.com]
> Sent: Sunday, June 29, 2003 1:15 PM
> To: xri-editors@lists.oasis-open.org
> Subject: [xri-editors] Xref escaping rules
>
>
> Here's the escaping proposal that I brought up on the last TC call.
> 
> The issue is that an XRI or URI is used as a cross-reference
> may contain
> characters that must be escaped in order to conform with 2396.
> Specifically:
> 
> * "?" may not appear until the start of the one-and-only query segment
> allowed by 2396.
> * The same is true with "#" for fragments
> * Lastly, an UNMATCHED opening or closing paren must be
> escaped or else
> the cross-reference will not parse correctly. (Note that
> MATCHED opening
> and closing parens inside do not need escaping because they represent
> either a second-level nested cross-reference or a parenthetically
> enclosed string in a native URI but either way will not be ambiguous.)
> 
> However we can't use just 2396 escaping rules (i.e., "%xx" where xx is
> the hex value of the character) for these four characters
> because it if
> the embedded XRI or URI contained those same escape sequences
> natively,
> it would be ambiguous which to unescape and not to unescape when the
> cross-reference is extracted. For example, if a URI already contained
> the escape sequence %3F (the "?" character) before it was
> turned into a
> cross-reference, how would the parser know NOT to unescape it when
> extracting the cross-reference?
> 
> The proposed solution is to apply two special escaping rules to any
> URI/XRI string being embedded as a cross-reference. They must
> be applied
> in the following order:
> 
> 1) Parse the string to find any instance of "%3F", "%23", "%28", or
> "%29" and enclose these in parens. Example: "(%3F)".
> 2) Escape any "?", "#", or UNMATCHED paren as per 2396 escaping.
> Example: a URI that contained a query would have the "?" turned into
> %3F.
> 
> To extract a cross-reference, apply the same two rules in
> reverse, i.e.:
> 
> 1) From the extracted cross-reference, escape any instance of
> %3F, %23,
> %28, or %29 EXCEPT those enclosed in parens.
> 2) For any instance of "%3F", "%23", "%28", or "%29" enclosed
> in parens,
> remove the parens.
> 
> Example:
> 
> Embed: URI "http://foo.com/?id=21#bar" in XRI "xri:@foo/baz/"
> Result: "xri:@foo/baz/(http://foo.com/%3Fid=21%23bar)"
> 
> 
> Embed: URI "http://foo.com/?id=21-%28widget#bar" in XRI
> "xri:@foo/baz/"
> Result: "xri:@foo/baz/(http://foo.com/%3Fid=21-(%28)widget%23bar)"
> 
> Does this work for everyone? Any other proposals?
> 
> =Drummond
> 
> 
> 
> 
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xri-editors-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: xri-editors-help@lists.oasis-open.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: xri-editors-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: xri-editors-help@lists.oasis-open.org




---------------------------------------------------------------------
To unsubscribe, e-mail: xri-editors-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: xri-editors-help@lists.oasis-open.org


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]