java 6 中的 JAXB 未在编组 XML 文件中添加正确的名称空间前缀

发布于 2024-09-29 06:48:12 字数 576 浏览 8 评论 0原文

我有一个模式,在模式元素中具有以下属性:

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://abc.example.com" targetNamespace="http://abc.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">

我可以编译它并获取 java 类。使用这些类,我将数据填充到对象中并将其编组以获取 XML 文件。

但此编组文件中的 XML 元素没有前缀“abc”。

我在编组时使用 XMLStreamWriter.setPrefix 进行了一些调整,并且可以获得所有元素前缀为“abc”的 XML 文件。

现在,当我尝试解组同一个 XML 文件时,它会抛出错误:

[org.xml.sax.SAXParseException: 元素“abc:Name”的前缀“abc”未绑定。]

请帮助我如何让 JAXB知道 abc 是正确的前缀。

谢谢 普拉迪普

I have a schema with following attributes in schema element:

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://abc.example.com" targetNamespace="http://abc.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">

I could compile it and get java classes. Using these classes, I filled in data in an object and marshalled it to get an XML file.

But the XML elements in this marshalled file is not having the prefix "abc".

I tweaked a little using XMLStreamWriter.setPrefix while marshalling, and I could get the XML file with all elements prefixed as "abc".

Now when I try to unmarshall the same XML file, it throws error saying :

[org.xml.sax.SAXParseException: The prefix "abc" for element "abc:Name" is not bound.]

Please help me in how to let JAXB know that abc is correct prefix.

Thank You
Pradeep

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

大海や 2024-10-06 06:48:13

前缀的名称没有意义。它所做的只是在名称空间和属于该名称空间的标签之间建立连接。前缀是 abcnamespace01 或者因为使用默认命名空间而没有前缀并不重要。据我所知,您不能强制在 JAXB 中使用前缀或前缀的特定名称。

The name of the prefix is meaningless. All it does is make a connection between a namespace and the tags that belong to that namespace. Whether the prefix is abc or namespace01 or there is no prefix because the default namespace is used doesn't matter. As far as I know you can't force the usage of a prefix or the specific name of a prefix in JAXB.

春花秋月 2024-10-06 06:48:13

在下面的文章中,我演示了如何使用 JAXB RI 中的 NamespacePrefixMapper 以及带有 EclipseLink JAXB (MOXy)

In the article below I demonstrate how this can be achieved using NamespacePrefixMapper from the JAXB RI, and the @XmlSchema annotation with EclipseLink JAXB (MOXy):

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文