如果我有相应的SchemaType对象,我可以获取XmlObject实例吗?

时间:2009-12-15 11:40:36

标签: xmlbeans

在XmlBeans中,我有一个已编译的模式,我通过

创建一个实例

MyStuff stuff = MyStuff.Factory.newInstance()方法。

但是在我的应用程序的一部分中,我需要将MyStuff视为通用XmlObject,但我想创建它的实例。假设我想这样做:

workWithObjectsAbstractly(stuff)

其中workWithObjectsAbstractly定义为:

public void workWithObjectsAbstractly(XmlObject o)
{
  .
  .
   SchemaType type = o.schemaType();
   XmlObject newInstance = type.???????   <--- is there such method?
  .
  .
  [Work with new instances as XmlObjects]
  . 
} 

有办法吗? 我可以通过粒子和属性检查schemaType,然后用。创建东西 XmlCursor,但似乎很麻烦。我可以避免吗?

1 个答案:

答案 0 :(得分:1)

我认为你不能避免这种情况,org.apache.xmlbeans.impl.xsd2inst.XmlSampleUtil执行此抽象是为了从SchemaType创建自动生成的有效实例。

在这种情况下,它使用

XmlObject object = XmlObject.Factory.newInstance();
XmlCursor cursor = object.newCursor();
// Skip the document node
cursor.toNextToken();
// ... it then uses the cursor to add elements, attributes, etc

希望有所帮助...