在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,但似乎很麻烦。我可以避免吗?
答案 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
希望有所帮助...