Thank you Radu for the hint !
What I did to copy a new action element (a RaduAction :->) within <actions/>
is the following using XmlCursor:
// The action to be inserted within <actions/>
RaduActionDocument raduActionDoc =
RaduActionDocument.Factory.newInstance();
raduActionDoc.setStatus(true);
XmlCursor srcCursor = raduActionDoc.newCursor();
srcCursor.toFirstChild();
XmlCursor dstCursor = actions.newCursor();
dstCursor.toEndToken();
srcCursor.copyXml(dstCursor);
The srcCursor.toFirstChild() is required otherwise I get a
"java.lang.IllegalArgumentException: Can't move/copy/insert a whole
document. ..." exception.
Would you do it in a different or safer way ?
Regards,
Pascal
On Fri, May 16, 2008 at 9:38 PM, Radu Preotiuc-Pietro <[EMAIL PROTECTED]> wrote:
> The XmlObject.set() method is common to all generated classes, regardless
> of Schema. It just replaces the current value of the XmlObject with a
> different value, without changing the reference.
>
> In order to add content in an element allowing <any> wildcards, you need to
> use the XmlCursor API (see the copyXml() and insertElement() methods if you
> already have the content or you need to build the content from scratch,
> respectively).
>
> Radu
>
> ------------------------------
> *From:* Pascal Maugeri [mailto:[EMAIL PROTECTED]
> *Sent:* Thursday, May 15, 2008 5:15 AM
> *To:* [email protected]
> *Subject:* Schema compilation into XMLBeans classes - issue with several
> xs:anyType children
>
> Hi
>
> This email is related to the compilation of XMLBeans classes corresponding
> to the XML schema "urn:ietf:params:xml:ns:common -policy" as defined in
> RFC 4745, section 13. I give the reference to this specific schema to
> illustrate but of course the issue should apply in other situation as well.
>
> In the XML schema, there is the definition of the following complex type.
>
> <!-- //rule/actions or //rule/transformations -->
> <xs:complexType name="extensibleType">
> <xs:complexContent>
> <xs:restriction base="xs:anyType">
> <xs:sequence>
> <xs:any namespace="##other" processContents="lax"
> minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
>
> Scomp produces the class ExtensibleType that only provides me with the
> setter
> ExtensibleType.set(XmlObject arg0)
> but according to the schema definition I should have the possibility to add
> more than one child (maxOccurs="unbounded").
>
> Do you have any idea on how I can add several children of type xs:anyType
> to my ExtensibleType ?
>
> I would like to produce a such structure:
>
> <urn:rule>
> <urn:conditions/>
> <urn:actions>
> <call>true</call>
> <email>true</email>
> </urn:actions>
> <urn:transformations/>
> </urn:rule>
>
> but with the current XMLBean class ExtensibleType I can only have a single
> action under <actions/>.
>
> Regards,
> Pascal
>
>
> Notice: This email message, together with any attachments, may contain
> information of BEA Systems, Inc., its subsidiaries and affiliated entities,
> that may be confidential, proprietary, copyrighted and/or legally
> privileged, and is intended solely for the use of the individual or entity
> named in this message. If you are not the intended recipient, and have
> received this message in error, please immediately return this by email and
> then delete it.