読者です 読者をやめる 読者になる 読者になる

XStreamではXML宣言はつけられない

Java XStream

XMLにはXML宣言というものがあるが、XStreamではXStreamAPIを使ってXML宣言を作ることはできない。
# たぶんXStreamの入出力に必要ないからだと思う。

無いと困る場面もあるため、その場合は単にStringの結合で作ってしまったほうが簡単で良い。

public static void main(String[] args) {
    String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
    String xml = SerializingXML.makeXml();
    System.out.println(header+"\n"+xml);
}

# 先日作ったシリアライズクラスを外部から呼び出せるように変更して、XML文字列を作成した。
処理結果

<?xml version="1.0" encoding="UTF-8" ?>
<settings config="settings-template.xml">
  <server>
    <id>codehaus-nexus-snapshots</id>
    <username>your-xircles-id</username>
    <password>your-xircles-pwd</password>
  </server>
  <server>
    <id>codehaus-nexus-staging</id>
    <username>your-xircles-id</username>
    <password>your-xircles-pwd</password>
  </server>
  <server>
    <id>codehaus.org</id>
    <username></username>
    <password></password>
  </server>
</settings>

まぁ単にこれだけですが。
例えばSOAP通信の際に必要となるHEADER情報もこの形で出しても問題ないと思っている。
# 改行の部分については改良の余地あり。