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:* user@xmlbeans.apache.org
> *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.

Reply via email to