[ 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]