Well, it seems like your two problems really are the same thing: you are not
setting values on the correct "Child" element. If you can share your code, we
may be able to spot the error, but I can assure you that it is possible to do
what you want.
Radu
________________________________
From: Richard J Cardone [mailto:[EMAIL PROTECTED]
Sent: Thursday, October 23, 2008 4:10 PM
To: [email protected]
Subject: Problem with list of derived types
Hi,
I'm having a problem using lists of derived types under Xmlbeans 2.4.0.
Basically, I'm trying to define a list of base type and populate that list
with instances of derived types. For example, given a schema that contains
complex types of Parent, Child1, and Child2, where Parent is abstract and
extended by Child1 and Child2, I define a list of child elements using the
Parent type as follows:
<xs:complexType name="Children">
<xs:sequence>
<xs:element name="item" type="Parent"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
I then create a Child1 instance, set its required content, validate it,
and add it to an Xmlbeans-generated ListChildren instance without error. The
ListChildren instance, however, fails validation because the required Child1
attributes and subelements are not found, even though I set them and the Child1
instance's validate method returned true. Moreover, when I save the whole
document, the output looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<cfn:DOC xmlns:cfn="http://cfnxml <http://cfnxml/> "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance> ">
<items>
<item xsi:type="cfn:Child1"/>
</items>
</cfn:DOC>
I don't know why content from the Child1 instance is missing from the
output. To recap, my two questions are (1) Why does validation fail in the
Children list even though the Child1 instance validation independently
succeeds, and (2) Why does save() not output all assigned Child1 content as
part of item element?
Any help is appreciated,
Rich