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