代码之家  ›  专栏  ›  技术社区  ›  Paralife

如果我有一个对应的schemaType对象,我可以得到一个xmlObject实例吗?

  •  0
  • Paralife  · 技术社区  · 15 年前

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

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

    但是在我的应用程序的一部分中,我需要将mystuf视为一个通用的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]
      . 
    } 
    

    有办法吗? 我可以通过粒子和属性检查模式类型,然后用 XML光标,但看起来很麻烦。我能避免吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   YuppieNetworking    15 年前

    我觉得你无法避免, 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
    

    希望能帮点忙…