java - 我如何告诉 JAXB 编码器使用我的 bean 的包信息中提供的 schemaLocation?

标签 java xml jaxb

我试图让我的 JAXB 编码器使用提供的 schemaLocation 而不使用

marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "some location");

我看到有一个选项可以在我的 包描述符

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://my.website.com/TheClass"
  , elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
  , location = "http://my.website.com/TheClass TheClass.xsd"
)
package com.mypackage.beans;

但它不会在xml中打印

最佳答案

我认为您的主要问题是您的编码器生成的 XML 缺少所需的 namespace 。

您是否尝试添加 xmlns={@XmlNs(prefix="your_name_space", namespaceURI="http://my.website.com/TheClass")} 在包描述符的 XmlSchema 注释中?

(建议取自:JAXB namespace prefixes missing)

关于java - 我如何告诉 JAXB 编码器使用我的 bean 的包信息中提供的 schemaLocation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41746648/

相关文章:

java - JaxB 解码 - 创建对象引用

java - 使用 JAXB 在不同架构版本之间迁移对象

Java 序列化异常消息

c# - 2d-bin-packing 将矩形放置在 x,y 位置的算法?

xml - scala 字符串到 scala.xml.Elem

java - 用于 Spring 安全的 SpEL : Passing Values from XML to Java based SpEL configuration

xml - 如何使用 XML 根据图像大小调整 Android 组件的大小

java - 冒泡排序比较计数始终相同

java - Groovy Jersey 客户端无法解码 XML

java - JAXB 从 XML 检索单个元素