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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Namespaces, Xml Schema Whitespace normalization, xs:anyURI

[ Lists Home | Date Index | Thread Index ]



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




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS