2

我定义了一个类 Book 并且我想创建一个 JAXBElement 对象,该对象将包含与来自 String 对象的 XML 对应的信息。

例如,我可以有类似的东西:

String code = "<book><title>Harry Potter</title></book>";

现在,我想从该字符串开始创建一个 JAXBElement。我需要该字符串来执行一些使用 JAXBElement 无法执行的验证。

那么,我可以做我想做的事吗?如果是,如何?

谢谢!

索林

4

1 回答 1

5

如果您使用其中一种unmarshal带有参数的方法,Class您将收到一个JAXBElement.

演示

package forum13709611;

import java.io.StringReader;
import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Book.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        String code = "<book><title>Harry Potter</title></book>";
        StreamSource source = new StreamSource(new StringReader(code));
        JAXBElement<Book> jaxbElement = unmarshaller.unmarshal(source, Book.class);
    }

}

package forum13709611;

public class Book {

    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

}
于 2012-12-04T20:48:39.837 回答