You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xmlbeans.apache.org by "Chris Schmidt (JIRA)" <xm...@xml.apache.org> on 2008/02/22 20:19:20 UTC

[jira] Updated: (XMLBEANS-362) XmlObject.changeType doesn't work when type inherits from imported xsd

     [ https://issues.apache.org/jira/browse/XMLBEANS-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Schmidt updated XMLBEANS-362:
-----------------------------------

    Attachment: inheritType.xsd

xsd that inherits from a type in the base

> XmlObject.changeType doesn't work when type inherits from imported xsd
> ----------------------------------------------------------------------
>
>                 Key: XMLBEANS-362
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-362
>             Project: XMLBeans
>          Issue Type: Bug
>          Components: XmlObject
>    Affects Versions:  Version 2.3
>            Reporter: Chris Schmidt
>         Attachments: inheritType.xsd, xsdBase.xsd
>
>
>   I have two xsds.  One imports the other one and contains a type that inherits from a type within the imported file.  XmlBeans properly generates a class that extends the base class.  When I use XmlBeans to create a document, XmlBeans does not properly set the xsi:type.  If I place the inherited type within the imported xsd, the generated XML properly contains the xsi:type attribute.
>   If the changeType() method is called when the type is in the same xsd, the proper type is returned.  When called with a type that is in the second xsd that inherits the base type, XmlBeans is not able to change the schema type.  Is this expected behavior, or a defect?  Is there an XmlOption or other configuration that is required to get this to work?
>   If I create an XML document with the generated XmlBean classes with an element inherited from both xsds I get the following:
> <Main xmlns="http://www.example.org/XsdTest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <Base remoteProp="subProp" baseAttr="baseAttr" xmlns=""/> <!-- this element should have an xsi:type of RemoteType -->
>   <Base baseAttr="base" anotherAttr="another" xsi:type="xsd:LocalType" xmlns:xsd="http://www.example.org/XsdTest" xmlns=""/>
> </Main>
> Note that the second element uses the type that inherits from the original xsd.  It has the xsi:type properly set.  The first element is from the secondary xsd that imports the first.  If I use the changeType() method on the first element, I get the original XmlBean object without any warnings what went wrong, even though I set the actual concrete class into the array.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org