如何通过使用EclipseLink Moxy的注释来指定XML名称空间,schemaLocation和名称空间URI?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过使用EclipseLink Moxy的注释来指定XML名称空间,schemaLocation和名称空间URI?相关的知识,希望对你有一定的参考价值。

我希望使用带有注释的EclipseLink Moxy使用XMl文档标签,如下所示:-

<Document xmlns=“urn:iso:std:20022:tech:xsd:pacs.009.001.08” xsi:schemaLocation=“urn”iso:std:20022:tech:xsd:pacs.009.001.08 schema.xsd” xmlns:xsi=“https://www.w3.org/2001/XMLSchema-instance”>

我正在如下使用package-info.java:-

@XmlSchema(namespace = "usn:iso:std:20022:tech:xsd:pacs.009.001.08", elementFormDefault=javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED, xmlns = {@XmlNs(namespaceURI = "https://www.w3.org/2001/XMLSchema-instance", prefix="swift-pacs") })

而我的java模型类具有@XmlRootElement,如下所示:-XmlRootElement(name="Document", namespace="urn:iso:std:20022:tech:xsd:pacs.009.001.08")

有了这个,我得到的输出为:-

<ns0:Document xmlns:ns0="urn:iso:std:20022:tech:xsd:pacs.009.001.08" xmlns:swift-pacs="https://www.w3.org/2001/XMLSchema-instance">

但是我想向其中添加“ xsi:schemaLocation =” urn“ iso:std:20022:tech:xsd:pacs.009.001.08 schema.xsd”并希望输出如下所示:-

<Document xmlns=“urn:iso:std:20022:tech:xsd:pacs.009.001.08” xsi:schemaLocation=“urn”iso:std:20022:tech:xsd:pacs.009.001.08 schema.xsd” xmlns:xsi=“https://www.w3.org/2001/XMLSchema-instance”>

如何做?如果可能的话,谁能建议如何删除文档前的ns0前缀(ns0:Document)和xmlns后的ns0后缀(xmlns:ns0)

我想使用带有注释的EclipseLink Moxy,如下所述使用XMl文档标签:-

答案

elementFormDefault注释上的@XmlSchema属性设置为XmlNsForm.QUALIFIED

以上是关于如何通过使用EclipseLink Moxy的注释来指定XML名称空间,schemaLocation和名称空间URI?的主要内容,如果未能解决你的问题,请参考以下文章

MOXy @XmlPath 被忽略

添加带有 JPA 注释的现有方法签名的接口会破坏 Eclipselink

如何使用Moxy将xml属性解析为键值

Eclipselink 未检测到脏实体

从 JSON 输出球衣 moxy 中删除“类型”

EclipseLink 的 @UuidGenerator 导致 NullPointerException