Jerry,
Would you mind including an actual sample .NET SOAP message that shows
this condition?
thanks
Jerry Pisk wrote:
>Hello,
>
>I have been trying to use jax-rpc based web service from a .Net client
>and I've ran into an issue regarding default namespaces. The .Net
>framework puts its SOAP message into the default namespace, which is
>causing derived types not to be recognized because xsi:type value that
>specifies the actual element type is being decoded using
>com.sun.xml.rpc.streaming.XMLReaderUtil.decodeQName() which includes
>the following comment (and behaves as stated):
>
> // NOTE: Here it is assumed that we do not want to use default namespace
> // declarations and therefore a null prefix means "no namespace" and
> // not "default namespace"
>
>I think this is incorrect and that no prefix should mean the default
>namespace. I looked up the W3C's XML Schema technical report and at
>http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#src-qname
>it states:
>
>Schema Representation Constraint: QName Interpretation
>
>Where the type of an attribute information item in a document involved
>in ·validation· is identified as ·QName·, its ·actual value· is
>composed of a [Definition:] local name and a [Definition:] namespace
>name. Its ·actual value· is determined based on its ·normalized value·
>and the containing element information item's [in-scope namespaces]
>following [XML-Namespaces]:
>The appropriate case among the following must be true:
>
>1 If its ·normalized value· is prefixed, then all of the following must be true:
>1.1 There must be a namespace in the [in-scope namespaces] whose
>[prefix] matches the prefix.
>1.2 its ·namespace name· is the [namespace name] of that namespace.
>1.3 Its ·local name· is the portion of its ·normalized value· after
>the colon (':').
>2 otherwise (its ·normalized value· is unprefixed) all of the
>following must be true:
>2.1 its ·local name· is its ·normalized value·.
>2.2 The appropriate case among the following must be true:
>2.2.1 If there is a namespace in the [in-scope namespaces] whose
>[prefix] has no value, then its ·namespace name· is the [namespace
>name] of that namespace.
>2.2.2 otherwise its ·namespace name· is ·absent·.
>In the absence of the [in-scope namespaces] property in the infoset
>for the schema document in question, processors must reconstruct
>equivalent information as necessary, using the [ namespace attributes]
>of the containing element information item and its ancestors.
>
>To me 2.2.1 means that no prefix should be interpreted as the default
>namespace in the node's context (a namespace whose prefix has no value
>is the default namespace). Any thoughts? This change will make jax-rpc
>interoperable with .Net framework's web services client code so I
>personally do not have an option but to make the change but I would
>like to get comments on what the proper implementation is, get it
>implemented in jax-rpc (or jax-ws, I have not checked that code yet)
>and solicit comments on what might be affected by this change other
>than the xsi:type's decoding.
>
>Jerry Pisk
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe_at_jax-rpc.dev.java.net
>For additional commands, e-mail: dev-help_at_jax-rpc.dev.java.net
>
>
>
--
- Doug