Re: Proposed resolution to LC 77a

* Hugo Haas <hugo@w3.org> [2005-04-08 12:04+0200]
> The application/x-www-form-urlencoded serialization could have a rule
> which says to use the same namespace prefixes than the ones you found
> in the schema.
> 
> However, the schema itself could exist in different equivalent
> versions, with different prefixes used, so we'd need to be sure we
> know what schema document we're talking about, which I'm not sure we
> can achieve with the abstraction of {element declarations} in our
> component model.

Having investigated this a little more, because of this abstraction
and the fact that schema doesn't know about prefixes in the component
model, it seems that we can't express the constraints that proposed
option #3 would need.

An XPointer-like solution would probably be the simplest way to
support namespaces in a reliable way.

A simple case without namespaces would be serialized simple:

  <foo>
    <c>1<c>
    <c>2<c>
  </foo>

→ c=1&c=2

A simple case using namespaces would be serialized in a not too
complex way:

  <a:foo xmlns:a="http://example.com/1">
    <a:c>1</a:c>
    <a:c>2</a:c>
  </a:foo>

→ xmlns:a=http://example.com/1&a:c=1&a:c=2

And more complex cases would be enabled:

  <foo xmlns:a="http://example.com/1"
       xmlns:b="http://example.com/2">
    <a:c>1</a:c>
    <b:c>2</b:c>
  </foo>

→ xmlns:a=http://example.com/1&xmlns:b=http://example.com/2&a:c=1&b:c=2

We would need to add in the application/x-www-urlencoded text like:

    Each QName serialized in the URL must have its namespace prefix
    declared with a query parameter.

And add a section with the meaning of xmlns:foo as a query parameter.

I am hesitant about adding such a feature at this point though.

Cheers,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Tuesday, 12 April 2005 14:41:54 UTC