xsd在这里: http://www.iana.org/assignments/xml-registry/schema/epp-1.0.xsd
我不想修改XSD(由第三方维护)或XJC生成的类,因为它们会被每次构建覆盖。
以下是上述XSD的示例片段:
<complexType name="dcpAccessType">
<choice>
<element name="all"/>
...
</choice>
</complexType>
相应的XJC生成的类如下所示:
...
public EppDcpAccessType {
...
public void setAll(Object value) { this.all = value; }
...
}
...
我想生成一个空标记,如下所示:
<all/>
但我不知道如何设置属性来实现这一点。 如果我执行以下操作:
eppDcpAccessType.setAll("");
我得到以下内容(包含一些我不想要的属性):
<all xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string"></all>
如果我执行以下操作:
eppDcpAccessType.setAll(new Object());
我收到以下运行时错误:
java.lang.ClassCastException: java.lang.Object cannot be cast to org.w3c.dom.Element
如何在没有属性的情况下生成空标记?
答案 0 :(得分:1)
我遇到了同样的问题。具有必需元素但没有指定类型的第三方XSD。
我使用以下方法解决了这个问题:
myJaxbType.setTheMandatoryElement(new org.dom4j.dom.DOMElement(""));
它产生了结果:
<TheMandatoryElement/>