|
List Info
Thread: Re: instantiate given a schema type
|
|
| Re: instantiate given a schema type |

|
2007-10-22 13:40:46 |
|
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)
-jacobd
On 10/22/07, Cory Virok < cvirok vmware.com">cvirok vmware.com> 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:
user-unsubscribe xmlbeans.apache.org">user-unsubscribe xmlbeans.apache.org For additional commands, e-mail: user-help xmlbeans.apache.org">user-help xmlbeans.apache.org
|
| RE: instantiate given a schema type |

|
2007-10-22 14:25:19 |
|
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);
//HereR17;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:jacob.danner gmail.com]
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/SchemaTypeLoader.html#newInstance(org.apache.xmlbeans.SchemaType,%20org.apache.xmlbeans.XmlOptions)
-jacobd
|
[1-2]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|