Uploaded image for project: 'XMLBeans'
  1. XMLBeans
  2. XMLBEANS-362

XmlObject.changeType doesn't work when type inherits from imported xsd

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • Version 2.3
    • None
    • XmlObject
    • None

    Description

      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.

      Attachments

        1. XsdTest.java
          3 kB
          Chris Schmidt
        2. inheritType.xsd
          0.8 kB
          Chris Schmidt
        3. xsdBase.xsd
          0.9 kB
          Chris Schmidt

        Activity

          People

            Unassigned Unassigned
            cschmidt Chris Schmidt
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: