0

我正在使用 XMLBeans 从 XSD 模式生成 java 对象。Schema 的结构如下:

<schema targetNamespace="" xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
    <element name="Father">
        <complexType>
            <all>
                <element name="Son">
                    <complexType>
                        <all>
                            <element name="Target" type="string" />
                        </all>
                    </complexType>
                </element>
            </all>
        </complexType>
    </element>
</schema>

架构编译得很好,我可以通过以下方式实例化父亲:

Father father = Father.Factory.newInstance();

但是当我尝试执行时:

father.getSon().setTarget("Some String");

我得到一个空指针异常。在调试它时,我看到 Son 为空(因此异常)。我所需要的只是设置“目标”值,但我想不出办法……

有没有办法自动构建所有 XSD 结构?或者,我可以手动实例化“儿子”,然后访问它的“目标”吗?

非常感谢!

橙汁

4

1 回答 1

0

getSon()方法允许您获取名为 Son 的现有子项。如果您尝试生成新的 xml,则必须从一个空文档开始。然后,您应该在访问它们之前根据需要添加元素。试试这个代码:

FatherDocument fatherDocument = FatherDocument.Factory.newInstance();
Father father = fatherDocument.addNewFather();
Son son = father.addNewSon();
son.setTarget("Some string");
StringWriter writer = new StringWriter();
fatherDocument.save(writer);
System.out.println(writer.toString());

我已经生成了这个 xml:

<Father><Son><Target>Some string</Target></Son></Father>
于 2011-03-22T18:48:42.320 回答