jackson fasterxml 将命名空间添加到根元素

Posted

技术标签:

【中文标题】jackson fasterxml 将命名空间添加到根元素【英文标题】:jackson fasterxml add namespaces to root element 【发布时间】:2016-05-10 02:54:34 【问题描述】:

如果我有课程A.java:

@JacksonXmlRootElement(localName = "A")
public class A 


产生的输出是:

 <A
    xmlns="">

我想在输出中添加更多命名空间,即 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.example.com example.xsd"

如何配置 A.java 以包含更多类似这样的自定义命名空间?

【问题讨论】:

A 所需的所有命名空间应由 Jackson 自动添加。你想添加一些“无用”的命名空间声明吗? 是的,如问题中所述。我需要在根元素中添加一些“无用”的命名空间 @Hooli,你考虑过使用 jaxb 【参考方案1】:

由于 xsi:schemaLocation 是一个属性,你可以这样添加:

public class A implements Serializable 

    @JacksonXmlProperty(isAttribute = true, localName = "xsi:schemaLocation")
    private String schemaLocation = "urn:path:to.your.schema";

它为我完成了这项工作。

【讨论】:

以上是关于jackson fasterxml 将命名空间添加到根元素的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 2.5.0 对于 Jackson Kotlin 类的支持,请在类路径中添加“com.fasterxml.jackson.module: jackson-module-kotlin

java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/TSFBuilder

JAVA - 使用 FasterXml.Jackson 将 XML 文件解析为 Map

Fasterxml Jackson-databind漏洞分析与利用

错误:编译 Java 文件时“包 com.fasterxml.jackson.databind 不存在”

Spring 2.2.1 构建错误找不到工件 com.fasterxml.jackson:jackson-bom:pom:2.10.5