1

我正在使用以下代码进行解组:

     @Override
public String marshal(Object document) throws JAXBException {

    Class clazz = document.getClass();
    JAXBContext context =
        JAXBContext.newInstance( clazz.getPackage().getName() );
    Marshaller marshaller = context.createMarshaller();
    marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
    StringWriter sw = new StringWriter();
    marshaller.marshal(document, sw);
    String xml = sw.toString();
    return xml;

}

结果是这样的:

 <IlpQuoteInput  QuoteId="2888284000185" xmlns="http://www.abc.com">
<Common IlpSellerId="0001">
    <Quotation QuotationDt="20130711"/>
    <Product CurrencyCd="E">
etc etc

一切都很好,但我实际上不想在输出中包含 xmlns,我该怎么办?谢谢 PS 我正在使用最新版本的 JAXB 和 java 6。

4

1 回答 1

1

在您的映射中,您很可能@XmlSchema在 package-info 类上提供了一个注释,如下所示:

@XmlSchema(
    namespace = "http://www.abc.com",
    elementFormDefault = XmlNsForm.QUALIFIED)
package example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

要从 XML 输出中删除名称空间限定,您可以简单地删除您放入的元数据以使其首先发生,假设这是您想要做的。

了解更多信息

于 2013-07-15T15:05:35.433 回答