これは、私が作っているよりもはるかに簡単だったか、リンクされた質問よりもはるかに簡単でした。私は@XmlElementRoot
がなかったという事実につらかったが、それは不必要であることが判明した。
simple.xsd
:コマンドラインで
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="receive" nillable="true" />
</xs:schema>
は、ObjectFactory
を生成.../jdk1.8/bin/xjc simple.xsd
を走りました。 ObjectFactory
の1つの方法は、記号public JAXBElement<Object> createReceive(Object value)
を持っていました。所望に応じて
package aTest;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import generated.ObjectFactory;
public class start {
public static void main(final String[] args) {
final ObjectFactory factory = new ObjectFactory();
final JAXBElement<Object> element = factory.createReceive(null);
try {
final JAXBContext jaxbContext = JAXBContext.newInstance(JAXBElement.class);
final Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(element, System.out);
} catch (final JAXBException e) {
e.printStackTrace();
}
}
}
これは以下の出力を生成した:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<receive xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
を実装コードの下に作成