xmlbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hacking Bear" <hackingb...@gmail.com>
Subject Outputing XML beans
Date Mon, 04 Dec 2006 20:54:04 GMT
Hi,

I eventually can insert one XML bean into another using cursor. But still
some question:

1. As experiment at point (A) and (B) below, it seems that XMLBean inserts
the child after the cursor, rather than at the cursor, so I have to wrp it
in a dummy doc or parent element. This also seems contradicting to the
tutorial/document. Any idea why this is the case?

2. Is there a simpler API method that insert an XmlObject? Something like:
       body.insert(XmlObject); // generated
       cursor.insert(XmlObject); // cursor-based

Thanks

public class SOAPXBeanOutputTest {
    public static void main(String[] args) throws Exception {
        RequestType request = RequestType.Factory.newInstance();
        request.setIssueInstant(Calendar.getInstance());
        request.setRequestID("REQ123");
        AttributeQueryType query = request.addNewAttributeQuery();
        SubjectType subject = SubjectType.Factory.newInstance();
        NameIdentifierType nameId = subject.addNewNameIdentifier();
        nameId.setStringValue("NAME123");
        query.setSubject((SubjectType)subject.copy());

        EnvelopeDocument soapDoc = EnvelopeDocument.Factory.newInstance();
        Envelope soapEnv = soapDoc.addNewEnvelope();
        Body soapBody = soapEnv.addNewBody();

        XmlCursor cursor = soapBody.newCursor();
        cursor.toNextToken();

        // (A) if not wrapping in dummy doc/element, results in output
...<soapenv:Body><urn:AttributeQuery...
        RequestDocument dummyDoc = RequestDocument.Factory.newInstance();
        dummyDoc.setRequest(request);

        XmlCursor reqcursor = dummyDoc.newCursor(); // typs = STARTDOC
        //reqcursor.toFirstChild(); // (B) this results in output
...<soapenv:Body><urn:AttributeQuery...
        reqcursor.moveXmlContents(cursor);

        reqcursor.dispose();
        cursor.dispose();

        soapDoc.save(System.out);
    }
}

Mime
View raw message