Я использую JAXB для создания модели bean-компонента из XML-схемы. Одна из конструкций в схеме состоит в том, что может присутствовать определенный тег или нет. Например, пинг в следующей sniplet:JAXB установил значение для тега без содержимого
<buildtime-behavior>
<ping/>
</buildtime-behavior>
В XSD я сопоставляются это как:
<xs:element name="buildtime-behavior">
<xs:complexType>
<xs:sequence>
<xs:element name="ping" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
И в побочном JAXB генерируется класс BuildtimeBehavior это приводит:
public void setPing(Object value)
Теперь я хочу установить или очистить этот тег. Однако я не могу просто сделать «новый объект()», потому что это приведет к тому, что «java.lang.Object не может быть передан в org.w3c.dom.Element». Но у меня нет документа для создания элемента. У JAXB, сгенерированного ObjectFactory, нет метода createPing() ...
Как настроить пинг?
Это может ответить на ваш вопрос: http://stackoverflow.com/questions/594537/how-to-instantiate-an-empty-element-with-jaxb –