如何在java中从JAXB2Marshaller中删除xmlns:xsi和xsi:type

如何在java中从JAXB2Marshaller中删除xmlns:xsi和xsi:type,java,Java,我有一个如下所示的XML响应 <Movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="T_MOVIELIST0" totalMovies="2"> <Movie> <DetailLevel0 xsi:nil="true"/> <ExternalID>EN1skynetBSKY2014102807462817</Ext

我有一个如下所示的XML响应

<Movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="T_MOVIELIST0" totalMovies="2">
    <Movie>
        <DetailLevel0 xsi:nil="true"/>
        <ExternalID>EN1skynetBSKY2014102807462817</ExternalID>
    </Movie>
    <Movie>
        <DetailLevel0 xsi:nil="true"/>
        <ExternalID>FR6skynetBSKY8607347700000000</ExternalID>
    </Movie>
</Movies>

EN1skynetBSKY2014102807462817
FR6SkyNetBSky860734770000000
我的JAXB2Marshaller对象工厂是:

/**
 * Create an instance of {@link JAXBElement }{@code <}{@link TMOVIELIST }{@code >}}
 * 
 */
@XmlElementDecl(namespace = "", name = "Movies0", scope = ResponseGetDetail.class)
public JAXBElement<TMovieList0> createResponseGetDetailMovies0(TMovieList0 value) {
    return new JAXBElement<TMovieList0>(_ResponseMovies_QNAME0, TMovieList0.class, ResponseGetDetail.class, value);
}
/**
*创建{@link JAXBElement}{@code}的实例
* 
*/
@xmlementdecl(namespace=”“,name=“Movies0”,scope=ResponseGetDetail.class)
公共JAXBElement createResponseGetDetailMovies0(TMovieList0值){
返回新的JAXBElement(_ResponseMovies_QNAME0,TMovieList0.class,ResponseGetDetail.class,value);
}
由于这些“xmlns:xsi和xsi:type”标记,我们面临一些性能问题

我们的要求是响应如下

<Response>

<Movies totalMovies="2">
    <Movie>
        <DetailLevel0/>
        <ExternalID>EN1skynetBSKY2014102807462817</ExternalID>
    </Movie>
    <Movie>
        <DetailLevel0/>
        <ExternalID>FR6skynetBSKY8607347700000000</ExternalID>
    </Movie>
</Movies>

</Response>

EN1skynetBSKY2014102807462817
FR6SkyNetBSky860734770000000

请让我知道我们如何做到这一点。

您需要解析xml并删除属性。。可能的重复您需要解析xml并删除属性。。可能的重复