栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

参数JAXBElement字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

参数JAXBElement字符串

您可以

JAXBElement
直接创建一个实例,或者如果您是从XML模式生成的Java模型,请在生成的
ObjectFactory
类上使用convience方法。

package org.example.schema;import javax.xml.bind.*;import javax.xml.namespace.QName;public class Demo {    public static void main(String[] args) throws Exception {        JAXBContext jc = JAXBContext.newInstance("org.example.schema");        Root root = new Root();        QName fooQName = new QName("http://www.example.org/schema", "foo");        JAXBElement<String> fooValue = new JAXBElement<String>(fooQName, String.class, "FOO");        root.setFoo(fooValue);        ObjectFactory objectFactory = new ObjectFactory();        JAXBElement<String> barValue = objectFactory.createRootBar("BAR");        root.setBar(barValue);        Marshaller marshaller = jc.createMarshaller();        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);        marshaller.marshal(root, System.out);    }}

schema.xsd

上面的演示代码基于从以下XML模式生成的Java模型。你会得到一个原因

JAXBElement<String>
摆在首位属性是当你有一个既是元素
nillable="true"
minOccurs="0"

<?xml version="1.0" encoding="UTF-8"?><schema     xmlns="http://www.w3.org/2001/XMLSchema"     targetNamespace="http://www.example.org/schema"     xmlns:tns="http://www.example.org/schema"     elementFormDefault="qualified">    <element name="root">        <complexType> <sequence>     <element name="foo" type="string" minOccurs="0" nillable="true"/>     <element name="bar" type="string" minOccurs="0" nillable="true"/> </sequence>        </complexType>    </element></schema>

以下类是从中生成的,

schema.xsd
并且包含与您所问问题类似的属性。

package org.example.schema;import javax.xml.bind.JAXBElement;import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {"foo","bar"})@XmlRootElement(name = "root")public class Root {    @XmlElementRef(name = "foo", namespace = "http://www.example.org/schema", type = JAXBElement.class)    protected JAXBElement<String> foo;    @XmlElementRef(name = "bar", namespace = "http://www.example.org/schema", type = JAXBElement.class)    protected JAXBElement<String> bar;    public JAXBElement<String> getFoo() {        return foo;    }    public void setFoo(JAXBElement<String> value) {        this.foo = value;    }    public JAXBElement<String> getBar() {        return bar;    }    public void setBar(JAXBElement<String> value) {        this.bar = value;    }}

对象工厂

以下是生成的

ObjectFactory
类,其中包含用于创建实例的便捷方法
JAXBElement

package org.example.schema;import javax.xml.bind.JAXBElement;import javax.xml.bind.annotation.*;import javax.xml.namespace.QName;@XmlRegistrypublic class ObjectFactory {    private final static QName _RootFoo_QNAME = new QName("http://www.example.org/schema", "foo");    private final static QName _RootBar_QNAME = new QName("http://www.example.org/schema", "bar");    public Root createRoot() {        return new Root();    }    @XmlElementDecl(namespace = "http://www.example.org/schema", name = "foo", scope = Root.class)    public JAXBElement<String> createRootFoo(String value) {        return new JAXBElement<String>(_RootFoo_QNAME, String.class, Root.class, value);    }    @XmlElementDecl(namespace = "http://www.example.org/schema", name = "bar", scope = Root.class)    public JAXBElement<String> createRootBar(String value) {        return new JAXBElement<String>(_RootBar_QNAME, String.class, Root.class, value);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号