私のXMLでは
<myelem required="false"/>
required
属性をブール値として読み取るにはどうすればよいですか? String
私はそれをゲッターの中でこれを行うと読むことができます:return new Boolean(required)
しかし、もっとエレガントな方法がいくつかあるのでしょうか?
boolean
Java クラスのメンバーに使用するだけです。
@XmlAttribute
private boolean required;
または、getter-setter スタイルのマッピングを使用する場合:
@XmlAttribute
public boolean isRequired() {
return required;
}
JAXB unmarshaller は、XML ドキュメント内の文字列を"true"
値として解釈できます。"false"
boolean
アップデート:
これを次のクラスでテストしました。
test/MyElem.java :
package test;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="myelem")
public class MyElem {
private boolean required;
@XmlAttribute
public boolean isRequired() {
return required;
}
public void setRequired(boolean value) {
required = value;
}
}
Test.java :
import javax.xml.bind.*;
import java.io.*;
import test.*;
public class Test {
public static void main(String[] args) {
try {
JAXBContext jc = JAXBContext.newInstance(MyElem.class);
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal( new File( "test.xml" ) );
System.out.println(((MyElem)o).isRequired());
} catch(Exception e) {
e.printStackTrace();
}
}
}
そして、次の入力 ( test.xml ):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myelem required="true"/>
コンソールで正しい結果が得られます。
true