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:* [email protected]
> *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/SchemaTypeLoader.html#newInstance(org.apache.xmlbeans.SchemaType,%20org.apache.xmlbeans.XmlOptions)<http://xmlbeans.apache.org/docs/2.2.0/reference/org/apache/xmlbeans/SchemaTypeLoader.html#newInstance%28org.apache.xmlbeans.SchemaType,%20org.apache.xmlbeans.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]
>
>
>

Reply via email to