0

在 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 创建东西,但这似乎很麻烦。我可以避免吗?

4

1 回答 1

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

希望那有所帮助...

于 2010-01-08T16:48:17.287 回答