OK, thanks Frank, I tried that and the effect is the same regarless of
whether the xsi:type reference to an extension or not. xsi:type does work
with both extensions and base classes if it's used on an element that is not
the root element. I have opened a jira (505) and added this information.

Regards

Simon

On 6/28/06, Frank Budinsky <[EMAIL PROTECTED]> wrote:

Hi Simon,

I think it should work. Your example is a little strange in that the
xsi:type is the same as the actual element type. Usually the xsi:type is
used to identify a subtype, so maybe the implementation has a bug that
only turns up in this case.

Is there someone with more XML expertise then me that knows if xsi:type
equal to the actual type is valid XML?

Could you please try changing your example to include a subtype:

<complexType  name="ExtendedComplexTypeRootType">
    <complexContent>
        <xsd:extension base="tns:ComplexTypeRootType"/>
    </complexContent>
</complexType>

and then use it as the xsi:type in your instance.

I think that should definitely work.

Also, could you please open a JIRA for this issue.

Thanks,
Frank.

"Simon Laws" <[EMAIL PROTECTED]> wrote on 06/28/2006 10:04:35 AM:

> If I read the following doc:
>
> <tns:RootElement xmlns:p="commonj.sdo"
>     xmlns:tns="http://www.apache.org/tuscany/interop";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="http://www.apache.org/tuscany/interop
interop01.xsd
> ">
>     <SimpleTypeWithName>SimpleTypeWithName</SimpleTypeWithName>
> </tns:RootElement>
>
> With the following schema
>
> <schema xmlns="http://www.w3.org/2001/XMLSchema";
>         targetNamespace="http://www.apache.org/tuscany/interop";
>         xmlns:tns="http://www.apache.org/tuscany/interop";>
>
>   <include schemaLocation="interop10.xsd"/>
>
>   <!-- top level test type -->
>   <complexType name="ComplexTypeRootType">
>     <sequence>
>       <!-- simple types -->
>       <element name="SimpleTypeWithName"
type="tns:SimpleTypeWithNameType"/>
>
>     </sequence>
>   </complexType>
>
>   <element name="RootElement" type="tns:ComplexTypeRootType"/>
> </schema>
>
> The I get a valid document (doc) with some data objects in it out of the
> following code:
>
>         FileInputStream inFileStream = new FileInputStream (inFileName);
>         XMLDocument doc = XMLHelper.INSTANCE.load(inFileStream);
>
> If I try in read in (note I have added and xsi:type attribute):
>
> <tns:RootElement xmlns:p="commonj.sdo"
>     xsi:type="tns:ComplexTypeRootType"
>     xmlns:tns="http://www.apache.org/tuscany/interop";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="http://www.apache.org/tuscany/interop
interop01.xsd
> ">
>     <SimpleTypeWithName>SimpleTypeWithName</SimpleTypeWithName>
> </tns:RootElement>
>
> The XMLHelper silently makes an empty document, i.e. the root element is
> null. Is this by design? I.e. is xsi:type unsupported?
>
> Regards
>
> Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to