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]
  . 
} 

それを行う方法はありますか?Particles と Properties を介して 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 に答える