我可以从@XmlRootElement忽略孩子的名称空间吗

时间:2018-11-06 14:05:11

标签: xml kotlin namespaces xml-namespaces package-info

我正在使用Kotlin 1.3,Java 8和Spring 4.0+。

我只是想将名称空间仅附加到ERROR Error: Could not find module 'nativescript-socket-tcp",而不是其子级。 但是,当我使用<HELLO>的@XmlRootElement定义名称空间时,<HELLO>也会获得默认名称空间,即使我没有定义任何名称空间。

<HI>

然后

@XmlRootElement(name = "HELLO", namespace = "http://www.hello.net")
public class Hello {

    @XmlElement(name = "HI")
    protected Hi hi;

是否可以从 <HELLO xmlns="http://www.hello.net"> <HI xmlns=""></HI> </HELLO> 中删除xmlns=""(默认名称空间)?

  

仅供参考(回答完后):

     

我正在使用Kotlin 1.3进行开发。我需要使用生成的Java类   使用xjc(JAXB)从XML中提取数据,因为程序(API)规范由XML处理   来自将与API通信的外部客户端。

     

使用不带-npa选项的xjc时,有一个 package-info.java   在仅使用两个loc生成的所有类上应用相同的名称空间,然后将这些类导出到我的项目中。   (ref:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/xjc.html

     

我认为,当我在XmlMapper(使用JacksonXmlModule)中注册JaxbAnnotationModule()时,package-info.java 中的 @XmlSchema(namespace =“ namespace1”)可以很好地工作。但是,似乎Jackson XmlMapper不完全支持xml注释。

     

您可以通过以下答案或添加XmlMarshaller(将xmlns添加到XML)来解决此问题。

     

jackson-dataformat-xml不支持软件包级别的名称空间:https://github.com/FasterXML/jackson-dataformat-xml/issues/18

1 个答案:

答案 0 :(得分:0)

如果要使其继承XML输出中的http://www.hello.net,则需要为其指定该名称空间。