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


I think these rules apply to cross-references in general, both general URIs
and XRIs.

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

Dave-
	This seems straightforward and I don't know why it wasn't the first
proposal on the table. I can't seem to figure out a problem with it, so +1
unless someone can discover an issue with it.

	BTW, the way I read it is that this escaping is only neccesary for
URIs as xrefs, not XRI values as xrefs...

	-Gabe

> -----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-%252528w
> idget)))/baz
> 
> 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
> 

---------------------------------------------------------------------
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]