Unless I do a DOM node import, I get the "Child to add is from another document" error when using the DOM API. I tried using the copyXml() method with XmlCursor but it gave me an error saying that it could not copy and entire document.
Since we can do this in DOM and in Cursor modes... is this a feature that the XmlObject API is lacking? Thanks very much for your help, cory From: Jacob Danner [mailto:[EMAIL PROTECTED] Sent: Monday, October 22, 2007 12:38 PM To: user@xmlbeans.apache.org Subject: Re: instantiate given a schema type There are a couple of different ways you can do this within XmlObject. I prefer the xmlcursor methods, but you can also use .newDomNode() and work with the DOM api and call append child like parent.newDomNode()...appendChild(...) -jacobd On 10/22/07, Cory Virok <[EMAIL PROTECTED]> wrote: That looks like it's exactly what I need... However, I need to get the new instance into a working XML document. Trying to do this via the DOM API is giving me a "Child to add is from another document" error. So, now the question is, if I have 2 XmlObjects and I *know* the first one is a parent element to the second one, how can I do the equivalent of DOM's "appendChild()" method but with the XmlObject interface? Something like: <code> XmlObject parent = getParentObject(); SchemaTypeLoader loader = XmlBeans.getContextTypeLoader(); XmlObject child = loader.newInstance(getSomeSchemaType(), null); //Here's what I *want* to do parent.appendChild(child); assert(parent.validate()); //Should always be OK since I know getSomeSchemaType() will always return an XmlObject that is a child of parent </code> Thanks, cory From: Jacob Danner [mailto:[EMAIL PROTECTED] Sent: Monday, October 22, 2007 11:41 AM To: user@xmlbeans.apache.org Subject: Re: instantiate given a schema type Have you looked at the SchemaTypeLoader APIs http://xmlbeans.apache.org/docs/2.2.0/reference/org/apache/xmlbeans/SchemaTyp eLoader.html#newInstance(org.apache.xmlbeans.SchemaType,%20org.apache.xmlbean s.XmlOptions) <http://xmlbeans.apache.org/docs/2.2.0/reference/org/apache/xmlbeans/SchemaTy peLoader.html#newInstance%28org.apache.xmlbeans.SchemaType,%20org.apache.xmlb eans.XmlOptions%29> -jacobd On 10/22/07, Cory Virok <[EMAIL PROTECTED]> wrote: Given only a SchemaType object, is there a way to instantiate a new XmlObject that the SchemaType represents? I have it working but my solution is clunky and uses reflection... There's gotta be a better way! I want to do something like this: SchemaType someType = getFooSchemaType(); Foo foo = (Foo) newInstanceFromSchemaType(someType); Currently, I have this: <code> //children[i] is an SchemaParticle //objClass is now the Class obj that represents the *interface* to the object I really want... Class objClass = children[i].getType().getJavaClass(); // Make the assumption that XMLbeans will always // create an inner "Factory" class! Class innerFactory = objClass.getClasses()[0]; Method newInstanceMeth = innerFactory.getDeclaredMethod("newInstance", new Class[0]); XmlObject childObj = (XmlObject) newInstanceMeth.invoke(null, null); </code> Thanks, cory --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]