问题描述
所以我们在表单中有一个 XSD 类型:
So we have an XSD type in the form:
<xs:complexType name="Foo"> <xs:all> <xs:element name="Bars"> <xs:complexType> <xs:sequence> <xs:element name="Bar" type="barType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:all> </xs:complexType>
表示 XML:
<Foo> <!-- Elements snipped for brevity--> <Bars> <Bar> <!-- Bar Element --> </Bar> </Bars> </Foo>
xjc 产生几乎正确的结果.唯一令人讨厌的是Bars"被创建为一个存储 Bars 列表的内部类.有没有办法让 Bars 成为 Foo 中的一个列表,同时仍然保留上面的 XML?
xjc produces almost correct results. The only annoying thing is that "Bars" is created as an inner class which stores a list of Bars. Is there anyway to have Bars be a List in Foo while still retaining the XML above?
推荐答案
另一种方法是去掉周围的<bars>元素,XML 看起来不再那么漂亮了,但它会使 java 代码更易于阅读.连同 xjc 的简单绑定(参见 http://www.51sjk.com/Upload/Articles/1/0/337/337297_20221117112738663.html) 它将生成非常漂亮和有用的 java 代码.
Another way would be to drop the surrounding <bars> element, the XML does not look so nice anymore, but it would make the java code easier to read. Together with xjc's simple binding (see http://www.51sjk.com/Upload/Articles/1/0/337/337297_20221117112738663.html) it will produce quite pretty and usefull java code.