2
XSDファイルと対応するXJCファイルがほとんどありません。 JAXBを使用して生成されたすべてのXMLファイルのバージョン番号は統一されていなければならず、XJCまたはjaxb.propertiesファイルから取得する必要があります。 JAXBはXMLバージョン番号を見つけることができません。デフォルトで1.0を生成しています。JAXBでマーシャリングしながら1.0以外のXMLバージョンを生成する方法
XSDファイルと対応するXJCファイルがほとんどありません。 JAXBを使用して生成されたすべてのXMLファイルのバージョン番号は統一されていなければならず、XJCまたはjaxb.propertiesファイルから取得する必要があります。 JAXBはXMLバージョン番号を見つけることができません。デフォルトで1.0を生成しています。JAXBでマーシャリングしながら1.0以外のXMLバージョンを生成する方法
基本的には、プロパティを使用して、フラグメントモードにJAXB Marshaller
を設定する必要があります。次に、XMLヘッダーを自分で記述します。次の例は、これがStAX経由でどのように行われるかを示しています。
デモ
package forum7009289;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Root root = new Root();
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
XMLOutputFactory xof = XMLOutputFactory.newFactory();
XMLStreamWriter xsr = xof.createXMLStreamWriter(System.out);
xsr.writeStartDocument("1.1");
marshaller.marshal(root, xsr);
xsr.writeEndDocument();
}
}
ルート
package forum7009289;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Root {
}
出力
<?xml version='1.1' encoding='UTF-8'?><root/>
XMLのための2つだけの法的バージョン番号があります。1.0と1.1。あなたが1.1を生成したいという正当な理由はありますか?あるいは、おそらくXML宣言のversion属性の目的を誤解していますか? –