我正在尝试从 JAXB 参考实现转移到 EclipseLink JAXB (MOXy),因为当数据包含不可显示的字符时,它似乎可以解决 JAXB 输出无效 XML但我在显示命名空间标签时遇到问题。
这就是我创建一个JAXBContext
return JAXBContext.newInstance("org.musicbrainz.mmd2");
这是我得到的输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<metadata created="2013-02-27T12:12:13.305Z"
xmlns="http://musicbrainz.org/ns/mmd-2.0#"
xmlns:ext="http://musicbrainz.org/ns/ext#-2.0">
<annotation-list count="1" offset="0">
<annotation type="release" ext:score="100">
<entity>bdb24cb5-404b-4f60-bba4-7b730325ae47</entity>
<name>Pieds nus sur la braise</name>
<text>EAN: 0828768226629 - DiscID: TWj6cLku360MfFYAq_MEaT_stgc-</text>
</annotation>
</annotation-list>
</metadata>
我正在尝试使用 EclipseLink MOXy 获得相同的输出,我得到的上下文如下
Map<String, Object> properties = new HashMap<String, Object>(1);
properties.put(JAXBContextProperties.MEDIA_TYPE, "application/xml");
return JAXBContextFactory.createContext(new Class[]{Metadata.class}, properties);
这会产生
<?xml version="1.0" encoding="UTF-8"?>
<ns0:metadata
xmlns:ns0="http://musicbrainz.org/ns/mmd-2.0#"
xmlns:ext="http://musicbrainz.org/ns/ext#-2.0"
created="2013-02-27T12:11:35.511Z">
<ns0:annotation-list count="1" offset="0">
<ns0:annotation type="release" ext:score="100">
<ns0:entity>bdb24cb5-404b-4f60-bba4-7b730325ae47</ns0:entity>
<ns0:name>Pieds nus sur la braise</ns0:name>
<ns0:text>EAN: 0828768226629 - DiscID: TWj6cLku360MfFYAq_MEaT_stgc-</ns0:text>
</ns0:annotation>
</ns0:annotation-list>
</ns0:metadata>
我不想要 ns0 的东西,我可以摆脱它吗