- From: Hugo Haas <hugo@w3.org>
- Date: Thu, 7 Apr 2005 15:39:40 +0200
- To: David Orchard <dorchard@bea.com>
- Cc: www-ws-desc@w3.org
- Message-ID: <20050407133940.GO1362@w3.org>
* David Orchard <dorchard@bea.com> [2005-04-01 14:54-0800] > LC 77a roughly says there is no mechanism for namespaces to be specified or used in URIs according to application/x-www-form-urlencoded. Nor is there any mention of what happens when qualified XML elements are encoded. > > There are roughly 3 solutions for namespaces: 1) Disallow qualified elements, 2) allow qualified but ignore namespace names; 3) allow qualified and serialize namespace names. [..] > Option #3: > > Many XML applications make use of namespaces. As I mentioned in the binding of Qnames to URIs blog entry, http://www.pacificspirit.com/blog/2004/04/29/binding_qnames_to_uris, there are many ways of serializing qnames. > > I think the very simplest for WSDL is #16, where the ns decl is skipped. Both sides have the WSDL, and when XML is serialized, the schema must have specified any namespaces associated with elements. These namespaces are invarient from the interface perspective. The simplest solution I can suggest is that the namespace prefix be included in the URI when a namespace prefix is in the instance data. As an example, ns1, ns2, ns3 are defined in the wsdl. > > <ns1:data> > <ns1:town>Fréjus</ns1:town> > <ns2:date>2004-01-16</ns2:date> > <ns3:unit>C</ns3:unit> > </ns1:data> > > is serialized as > temperature/Fr%C3%A9jus?ns2:date=2004-01-16&ns3:unit=C > > This can be achieved by: > Remove first sentence of section 3.9.1 bullet 3 ("The sequence MUST contain only local element children"). > Add to section 3.8.1.2.1 Qualified names (ie ns1:town or town) are serialized as they appear in the instance data, ie (ns1:town or town). > > The downside to this is that the URIs are not fully self-describing, nor are the extensible. If somebody wants to add some extra content, say ns4:timeOfDay, then there is no way for the receiver to "know" what the new namespace is. However, this is for URI Queries, so it's unlikely that a Query would be able to process the ns4:timeOfDay without knowing about ns4 ahead of time. I'm afraid I'm missing something. The namespaces are invariant, but not the prefixes in the instance data. What does serializing the prefix give you? Cheers, Hugo -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Thursday, 7 April 2005 13:39:41 UTC