- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我尝试将 XML 解码回 java 代码时,出现以下异常。好像我在某处缺少命名空间声明,但我不确定在哪里。
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"wg_provider").
Expected elements are <{http://www.warriorgateway.org/WGProvider.xsd}wg_provider>
此文件最初是使用此处的 JAXB 编码器创建的:
JAXBContext providerContext = JAXBContext.newInstance(WgProvider.class);
Marshaller providerMarshaller = providerContext.createMarshaller();
providerMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter providerWriter = new StringWriter();
providerMarshaller.marshal(provider, providerWriter);
这是架构文件的顶部:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.warriorgateway.org/WGProvider.xsd"
xmlns:ns1="http://www.warriorgateway.org/WGProvider.xsd"
elementFormDefault="qualified">
<xsd:element name="wg_provider">
<xsd:complexType>
这是要解码的 XML 文件的顶部:
<?xml version="1.0" encoding="UTF-8"?>
<wg_provider xmlns="http://www.warriorgateway.org/WGProvider.xsd">
<ein>26-0081701</ein>
<name>MOMS CLUB</name>
<is_virtual>false</is_virtual>
<description>
</description>
这是 JAXB 生成的 Java 文件的顶部:
@XmlRootElement(name = "wg_provider" )
public class WgProvider {
我尝试将命名空间元素添加到注释中,但没有任何区别。
这里是 package-info.xml 的内容:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.warriorgateway.org/WGProvider.xsd", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.warriorgateway.api.model.wg;
最后是解码代码:
for (String wrappedProviderXML : wrappedProviderXMLList) {
DocumentBuilderFactory documentbuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentbuilder = documentbuilderFactory.newDocumentBuilder();
ByteArrayInputStream xmlStream = new ByteArrayInputStream(wrappedProviderXML.getBytes());
Document providerXMLDocument = documentbuilder.parse(xmlStream);
JAXBContext wgProviderContext;
try {
wgProviderContext = JAXBContext.newInstance(WgProvider.class);
Unmarshaller wgProviderUnmarshaller = wgProviderContext.createUnmarshaller();
WgProvider wgProvider = (WgProvider) wgProviderUnmarshaller.unmarshal(providerXMLDocument);
} catch (JAXBException ex) {
Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, null, ex);
}
提前致谢
吉多
附言我正在使用 Netbeans 7 生成绑定(bind)。
最佳答案
在您的示例中,您需要将 DocumentBuilderFactory
设置为命名空间感知:
DocumentBuilderFactory documentbuilderFactory = DocumentBuilderFactory.newInstance();
documentbuilderFactory.setNamespaceAware(true);
您也可以直接解码 ByteArrayInputStream
:
unmarshaller.unmarshal(xmlStream);
关于java - UnmarshalException - 命名空间问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914319/
我遵循了本教程:https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html#5 我在命令提示符下
我正在尝试解码我的 DOM 解析文档,以便我可以更新我的 XML。但我收到以下命名空间错误: javax.xml.bind.UnmarshalException: unexpected element
当我尝试将 XML 解码回 java 代码时,出现以下异常。好像我在某处缺少命名空间声明,但我不确定在哪里。 javax.xml.bind.UnmarshalException: unexpected
我尝试复制 http://www.ejbtutorial.com/java-rmi/a-step-by-step-implementation-tutorial-for-java-rmi 中的教程在
我们正在将应用程序从 Jboss 6 迁移到 Wildfly 10,大多数 Web 服务都运行正常,但我们面临来自外部 Web 服务的响应中日期标签为空的问题: java.security.Privi
所以我试图解析一个 xml 并将其解码为一个程序。这是示例 xml: FINACLE 2014-06-21T19
异常javax.xml.bind.UnmarshalException:意外元素(uri:“http://services.forddirect.fordvehicles.com/searchTest
这是我第一次使用 RMI,这是我写的主要内容: public class Main { public static void main(String[] args) {
当我想反序列化已从字节数组序列化的 JAXBElement 时遇到问题。我有异常(exception): Exception in thread "main" javax.xml.bind.Unmar
情景 我正在使用 JAXB 2.0,并且我有一个从需要解码的 Web 服务接收 xml 文件的进程。名称由网络服务提供,格式为: ESA08021701#99152015AA00024175#2015
我收到以下错误: javax.xml.bind.UnmarshalException: unexpected element(uri:"http://www.docsite.com/ClientCon
我们的生产环境面临问题。我们在网上到处搜索,但没有找到任何答案。当从受管服务器 1 到管理服务器 2 进行 ejb 查找时,会发生此错误(下面的堆栈跟踪)。查找时使用虚拟 IP。它间歇性地、随机地发生
我有一个 java rmi 服务器和一个 java rmi 客户端在两台独立且不同的机器。 服务器基本上是一个斐波那契计算器。它接收一堆数字并根据它们计算斐波那契数列。 客户端只需发送一堆数字供服务器
我会尽力使这篇文章尽可能小,以便根据要求添加更多信息和代码。 场景:我正在编写一个服务器/客户端应用程序来跟踪公司的一些流程,因此用户将创建小标签,这些标签将根据工作流程从一个用户的屏幕转到另一个用户
我遵循了几个关于运行 RMI 应用程序的教程。但是,我似乎无法让它工作,因为我一直卡在同一个异常上。 我目前只运行一个服务器,因此不涉及客户端通信。 我有一个简单的 RMI 程序,包括: 服务器类 S
本文整理了Java中org.eclipse.persistence.exceptions.XMLMarshalException.unmarshalException()方法的一些代码示例,展示了XM
尝试使用 jaxb 将 xml 响应转换为 java 对象时出现以下错误 javax.xml.bind.UnmarshalException: unexpected element (u
调用 Web 服务时,出现以下异常: [javax.xml.bind.UnmarshalException:意外元素(uri:“urn:partner.soap.sforce.com”,本地:“met
Closed. This question is not reproducible or was caused by typos。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-to
我使用以下代码通过 JAXB 解码 XML。 responseXML 包含从 Web 服务调用返回的 XML 字符串。 StringReader reader = new StringRead
我是一名优秀的程序员,十分优秀!