- From: <bugzilla@jessica.w3.org>
- Date: Tue, 18 Jan 2011 14:40:23 +0000
- To: public-ws-resource-access-notifications@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11790 Summary: Mex: serialization of QName could be problematic Product: WS-Resource Access Version: PR Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: MetadataExchange AssignedTo: public-ws-resource-access-notifications@w3.org ReportedBy: dug@us.ibm.com QAContact: public-ws-resource-access-notifications@w3.org MEX was changed so that instead of passing in a MEX-defined String for the Dialect URI we now pass in the QName of the metadata root element. I think this was a good decision however I'm wondering about how it is serialized in the XML. Right now its supposed to look like this: <mex:Dialect Type="wsdl:definitions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" ...> and this works just fine - technically. I'm worried about two things: 1 - if the definition of the prefix used in the qname ("wsdl" in this case) is define elsewhere, say on the soap Envelope then when the XML processor and the SOAP processor are moving this mex:Dialect element around its possible that one of them might do something like "clone" it or pull it from the Envelope as a stand-alone element. Normally cloning of an element will force the xml processor to make sure all used prefixes/namespaces of that element (and children) are copied into the clone. However, the xml processor doesn't know about this "wsdl" prefix - so its very possible that if the xml declaration of it is above the element being cloned then it might be lost/unresolvable after the cloning. 2 - if you look in ws-eventing and ws-enum there's this paragraph: ----- The namespace bindings are evaluated against any namespace declarations that are in scope where the XPath expression appears within the SOAP message. Note that the evaluation of expressions that rely on such context dependent bindings is fragile in the face of transformations that alter namespace prefixes. Such transformations might occur during the transmission, processing, storage, or retrieval of a request. Clients that wish to isolate expressions from the effects of any changes to the namespace prefixes in the containing SOAP message are advised to construct expressions in a manner that avoids the use of namespace prefixes. For example, use an expression such as "/a[namespace-uri()='http://www.example.com']" not "/ns1:a". ------ I believe that the potential for an xml processor to change the prefix exists in the ws-mex case as well. However, unlike the xpath case you can't get around it since there's no way to use a URI instead of a prefix in a xsd QName serialization. I'd like to discuss this to see if people think we need to address this. Possible serialization options, if we do want to change it: - <mex:Dialect Type="nsURI/localPart" ... - <mex:Dialect Type="{nsURI}localPart" ... - <mex:Dialect TypeNS="nsURI" TypeName="localPart" ... -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug.
Received on Tuesday, 18 January 2011 14:40:27 UTC