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]