簡體   English   中英

如何使用JAXB(JDK 7)設置默認名稱空間

[英]How to set default namespace with JAXB (JDK 7)

我在用JAXB設置默認名稱空間時遇到問題。 我從這里開始遵循技巧,但問題仍然存在。 這是我的package-info的樣子:

@XmlSchema(
        namespace = "my/xml/namespace",
        xmlns = {
                @XmlNs(namespaceURI="my/xml/namespace",prefix=""),
        },
        elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package my.xml.namespace;
import javax.xml.bind.annotation.XmlSchema;
import javax.xml.bind.annotation.XmlNs;
import javax.xml.XMLConstants;;

但是仍然創建的xml看起來像這樣:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:resp xmlns:ns2="my/xml/namespace">
....
</ns2:resp>

我想擺脫這些前綴,但是用盡了所有想法。 有人知道為什么嗎?

更新

我遵循建議並實現NamespacePrefixMapper和:

  1. com.sun.xml.bind.marshaller.NamespacePrefixMapper是至關重要的。 我使用了另一個,並得到了奇怪的例外。

  2. 它也不起作用-相同的問題仍然存在。 這是我的映射器:

    NamespacePrefixMapper映射器=新的NamespacePrefixMapper(){

      @Override public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) { if("amc/xml/pay03_entryresponse".equals(namespaceUri)) { return ""; }else return suggestion; } }; marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", mapper); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM