Is this any use to you? It inserts a SAML Request XMLBean into a SOAP XMLBean:
soapBody.getDomNode().appendChild(soapBody.getDomNode().getOwnerDocument().importNode(samlRequest.getDomNode(), true)); Alistair -- mov eax,1 mov ebx,0 int 80h > Hello, > > Can anyone help me on this? > > At least I want to know if it is a bug or by design that the top-most > element (e.g. the "Request" element in the example") are omitted. This > makes > it hard to write generic codes because one has to know the document type > to > wrap the xml bean object. > > Thanks > > > > On 12/4/06, Hacking Bear <[EMAIL PROTECTED]> wrote: >> >> 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); >> } >> } >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]