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

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

    Attachment: XsdTest.java

Simple test that exhibits the problem.  Note that it expects the generated 
XmlBean objects to be in the classpath

> 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, XsdTest.java
>
>
>   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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to