每个xml标记上的JAXB命名空间

我使用jaxb生成XML请求。 以下是所有代码详细信息。 我也尝试过package-info,但它对我没用。 就像我想在每个对象XML标签上添加命名空间一样。

希望你们明白我的意思。 我做错了什么或遗失了什么? 或者这种事情在JAXB Java中是可行的。

要求的输出

  1 20180518160833    2000 999000000016059109    

输出我得到

   1 20180518160833    2000 999000000016059109    

下面是我的JAXB父Java对象类

 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "resultHeader", "customizedBundlesResponseMessage" }) @XmlRootElement(name = "CustomizedBundlesSubscriptionPortalResultMsg") public class CustomizedBundlesSubscriptionPortalResultMsg { @XmlElement(name = "ResultHeader", namespace = "http://www.herman.pk/eil/common_service/types/common_types/v1") protected ResultHeaderType resultHeader; @XmlElement(name = "CustomizedBundlesResponseMessage") protected CustomizedBundlesResponseMessage customizedBundlesResponseMessage; } 

下面是我的内部JAXB对象Java类

 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "acctChgRec" }) @XmlRootElement(name = "CustomizedBundlesResponseMessage") public class CustomizedBundlesResponseMessage { @XmlElement(name = "AcctChgRec") protected List acctChgRec; } 

下面是我的AcctChgRecType JAXB对象类

 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "AcctChgRecType", propOrder = { }) public class AcctChgRecType { @XmlElement(name = "AccountType", required = true, nillable = true) protected String accountType; @XmlElement(name = "BalanceId", required = true, type = Long.class, nillable = true) } 

我想通过@MichaelKay向您推荐以下答案:

https://stackoverflow.com/a/50300327/303810

这不是同一个问题,但它是相同的答案:

在XML应用程序中,原则应该是:

(a)接收应用程序不应该关心如何编写XML的无关紧要的词法细节。 (实现此目的的最佳方法是使用可敬的XML解析器来读取XML。)

(b)编写应用程序应该可以自由使用他们认为方便的任何词汇约定。 (这意味着您可以使用任何可敬的序列化库来编写XML。)

基本上,你不应该在意。 如果这样做,那么处理XML的方式就会出现严重问题。 无论如何声明命名空间都无关紧要。 为什么要这样?

要回答您的问题,标准JAXB无法做到这一点。