[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Namespaces, Xml Schema Whitespace normalization, xs:anyURI


is not a valid anyuri


Michele Vivoda wrote:
>  
>>> So 
>>>
>>> http://www.example.com/Example with two  spaces
>>>
>>> is not a valid xs:anyURI 
>> You seem to be assuming that because it's not a
>> valid URI then it's not a
>> valid xs:anyURI. This doesn't follow. The schema
>> spec allows an xs:anyURI to
>> contain what I call a "wannabe URI": more formally,
>> it can contain any
>> string that can be mapped to a URI by following the
>> escaping procedure in
>> section 5.4 of XLink. This mapping performs
>> percent-encoding on all
>> "disallowed characters"; a space is a disallowed
>> character that maps to %20;
>> therefore a space is allowed in an xs:anyURI value
>> (even though it not
>> allowed in an IRI as defined by RFC 3987).
> 
> You're right, didn't know that, 
> I went through the spec(s) you mentioned..
> I find it strange anyway, 
> is a little bit too much for machines 
> data exchange and too little for an user interface.
> 
> I am not sure if I want this uri 
> to be reported as valid when doing
> validation  of machine-written data 
> ( like for example for the urls of a 
> publishing system):
> 
> 1) http://www.example.org/c a/c%20b

Technically this is not a valid URI and therefore not a legal namespace 
name. It is a valid xs:anyURI, though it is problematic. The reason it 
is valid is because spaces are allowed lexically and validation is 
performed against the value space (which is defined to be the lexical 
value with the XLink algorithm applied). Now, the fact that XLink lumps 
disallowed and excluded characters into one group and the algorithm 
performs %hh escaping on the whole set is what creates this oddity I think.

> When I am not so strict and I support 
> the user with some uri escaping
> I would like to help him when he types 
> 
> 2) http://www.example.org/c  a/
> 
> to be resolved 'correctly' to
> 
> http://www.example.org/c%20%20a/
> 
> (as for example windows explorer does)
> 
> and not to
> 
> http://www.example.org/c%20a/
> 
> may be I am missing something..

You would do this in your application-- before it was ever validated as 
an xs:anyURI. Generally, the whitespace normalized value is not what you 
deal with in an editor... you deal with the lexical value.

> Just to be clear: this should be a valid xs:anyURI
> isn't it ? http://www.example.org/c a/c%20b
> and when I 'map' it to an URI becomes
> 
> http://www.example.org/c%20a/c%20b
> 
> Right ?

If by "map" you mean apply the algorithm from XLink section 5.4, yes. 
Note that this kind of "mapping" is not done to namespace URIs in 1.0 or 
1.1, so in theory you would never have a (legal) namespace that 
contained space characters.

Cheers,
Jeff Rafter

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.