我有一个使用默认名称空间打印的文件。 元素以ns2前缀打印,我需要将其删除,以及它与我的代码的关系:
我希望它是怎样的:
这就是我的编码方式,据我所知,这足以使ns2消失:
xmlns:bar="http://namespace" targetNamespace="http://namespace"
elementFormDefault="qualified">
...
生成的package-info结果如下:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://namespace",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.foo.bar;
我这样创建文件:
JAXBContext jaxbContext = JAXBContext.newInstance(generatedClassesPackage);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(new JAXBElement(new QName("http://namespace", "Foo"),
Foo.class, rootFoo), outputStream);
generateClassesPackage是其中package-info.java及其元素所在的包。
Foo对象已定义,并具有以下元素:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"group"
})
@XmlRootElement(name = "Foo")
public class Foo {
@XmlElement(name = "Group", required = true)
protected List group;
我错过了吗? 还是我误解了它的工作原理?