[
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
- Prev by Date:
RE: [xml-dev] Namespaces, Xml Schema Whitespace normalization, xs:anyURI, and URILiterals in XPath 2.0
- Next by Date:
Re: [xml-dev] Namespaces, Xml Schema Whitespace normalization, xs:anyURI, and URILiterals in XPath 2.0
- Previous by thread:
RE: [xml-dev] Namespaces, Xml Schema Whitespace normalization, xs:anyURI, and URILiterals in XPath 2.0
- Next by thread:
Re: [xml-dev] Namespaces, Xml Schema Whitespace normalization, xs:anyURI, and URILiterals in XPath 2.0
- Index(es):
|