On Sun, Jan 6, 2013 at 8:01 AM, Daniel Kulp <dkulp@apache.org> wrote:




On Jan 5, 2013, at 2:24 AM, Kishanthan Thangarajah <kshanth2101@gmail.com> wrote:

Hi Devs,
We are now in the process of moving to xmlschema2 in axis2 [1]. The issue we note that the targetNameSpace of the parent element in a schema is getting added as the namespaceURI to the child elements.

For example, consider the following schema.

<xs:schema attributeFormDefault="qualified" elementFormDefault="unqualified" targetNamespace="http://fastinfoset.axis2.apache.org">
            <xs:element name="addStrings">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="val1" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="val2" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="addStringsResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
</xs:schema>

When compiling this, we observed that the namespace QName for the element "return", has "http://fastinfoset.axis2.apache.org" as the namespaceURI. But this was not the case when we compared the same schema compilation with xmlschema1. In there, the namespaceURI was an empty ("") value. 

Is this a expected behavior or are we doing something wrong here?

There is a getWireName() method on XmlSchemaElement that should be used for determining the properly qualified/unqualified QName that should be used when writing stuff out on the wire.

Yes, getWireName gives the correct QName. Thanks for the Info.

Kishanthan.

Dan



Thanks,
Kishanthan.



-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com