4

私のXMLでは

<myelem required="false"/>

required属性をブール値として読み取るにはどうすればよいですか? String私はそれをゲッターの中でこれを行うと読むことができます:return new Boolean(required) しかし、もっとエレガントな方法がいくつかあるのでしょうか?

4

1 に答える 1

9

booleanJava クラスのメンバーに使用するだけです。

@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
于 2012-06-21T06:44:35.767 に答える