Java JAXB:如何在没有重复名称空间的情况下封送

Java JAXB:如何在没有重复名称空间的情况下封送,java,xml,jaxb,Java,Xml,Jaxb,我目前的编组结果如下: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rootElem version="1"> <list> <entry> <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xs

我目前的编组结果如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rootElem version="1">
  <list>
    <entry>
      <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">someValue</key>
      <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">42</value>
    </entry>
    <entry>
      <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">otherValue</key>
      <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">24</value>
    </entry>
  </list>
</rootElem>

您能显示为您的marshall方法吗?附加到问题中。这个方法在控制台中为您提供相同的输出:m.marshal(rootElem,System.out)?添加这个:m.setProperty(Marshaller.JAXB_格式化的_输出,true);当然有。为什么它会给出不同的输出?是否添加了m.setProperty(Marshaller.JAXB_格式化的_输出,true)?您能显示为您的marshall方法吗?附加到问题中。这个方法在控制台中为您提供相同的输出:m.marshal(rootElem,System.out)?添加这个:m.setProperty(Marshaller.JAXB_格式化的_输出,true);当然有。为什么它会给出不同的输出?是否添加了m.setProperty(Marshaller.JAXB_格式化的_输出,true)?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rootElem version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <list>
    <entry>
      <key xsi:type="xs:string">someValue</key>
      <value xsi:type="xs:string">42</value>
    </entry>
    <entry>
      <key xsi:type="xs:string">otherValue</key>
      <value xsi:type="xs:string">24</value>
    </entry>
  </list>
</rootElem>
JAXBContext jc = JAXBContext.newInstance(RootElem.class);
Marshaller m = jc.createMarshaller();
m.setProperty("jaxb.formatted.output", true);
m.marshal(rootElem, file);