这是我的xml,需要将其转换为Java。我用过jaxb
<?xml version="1.0"?>
<lm:order Id="PLG24M240U" JD="" aCount="2" SUCount="1" xmlns:lm="http://www.ae.com/Event/Load">
<lm:master>
<lm:ID>3</lm:ID>
<lm:Number>313</lm:Number>
<lm:ANumber>323</lm:ANumber>
</lm:master>
<lm:detail>
<lm:ID>3</lm:ID>
<lm:Number>3131</lm:Number>
<lm:ANumber>3232</lm:ANumber>
</lm:detail>
<lm:detail>
<lm:ID>3</lm:ID>
<lm:Number>3131</lm:Number>
<lm:ANumber>3232</lm:ANumber>
</lm:detail>
<lm:detail>
<lm:ID>3</lm:ID>
<lm:Number>313</lm:Number>
<lm:ANumber>323</lm:ANumber>
</lm:detail>
</lm:order>
并引发以下异常javax.xml.bind.UnmarshalException:意外元素(uri:“
http://www.ae.com/Event/Load ”,本地:“
Order”)。期望的元素是<{} lm:Order>
这是我的解组代码
jaxbContext = JAXBContext.newInstance(Order.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Order order = (Order) jaxbUnmarshaller.unmarshal(file);
System.out.println(order );
订购Pojo班
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "lm:Order")
public class OrderPay {
@XmlAttribute
private String Id;
@XmlAttribute
private String JD;
@XmlAttribute
private String aCount;
@XmlAttribute
private String pCount;
/*@XmlElement
private Master master;
@XmlElement
private List<Detail> details = new ArrayList<Detail>();*/
}
您能否也帮助我阅读,当前正在读取文件,需要读取为XML String。
名称空间属性xmlns:lm="http://www.ae.com/Event/Load"
可能是此处的罪魁祸首。为了指定名称空间前缀,可以将@XmlSchema
注释添加到package- info.java
文件中,如下所示:
@XmlSchema(
namespace="http://www.ae.com/Event/Load",
elementFormDefault=XmlNsForm.QUALIFIED),
xmlns={@XmlNs(prefix="lm", namespaceURI="http://www.ae.com/Event/Load")})
package your.package;
import javax.xml.bind.annotation.*;
我在名称空间方面有问题。我需要从一个公共api (Prestashop)解组。该api使用xml作为xlink类型,如下所示: 每种产品的 API 为: 我为每个XML生成了两个包含pojo类的包。我想从产品列表中获取给定id的任何产品的属性。 我有一个产品,其中包含@XMLSchema命名空间,但这个命名空间仅针对一个路径是静态的。我知道这不是这样做的方法。 下面,我的客户类。 这里有代码:ht
我有一个简单的xml要解组。但是我在输出中只得到一个空列表。不会引发任何异常。这是一个第三方生成的xml,我需要使这一工作没有任何变化的xml。 XML: 用于动物的POJO豆: 猫咪的POJO豆 非马歇尔代码是: 最后一行给出了空指针异常。 我是否对 BEAN 类中的命名空间执行了操作?我是Jaxb的新手,这个问题现在困扰了我3天!我之前问过这个问题,但无法得到正确的答案,这是一个更准确的问题。
我想使用JAXB来 将xml解组为java对象, 将其封送回xml 并使用名称空间生成完全相同的输出 下面是原始的 XML: 我正在使用以下POJO: 我用于取消/编组的代码: 这实际上不起作用,我甚至无法解组初始xml。但是如果我尝试封送一个POJO,我只在代码中设置字段。我得到以下结果: 我如何摆脱这个ns3前缀?
我使用JAXB从SOAP响应中解析xml元素。我已经为xml元素定义了POJO类。我已经测试了没有名称空间和前缀的pojo类,它工作得很好。需求是解析来自SOAPMessage对象的输入
我正在开发一个客户端来使用 Web 服务,但由于某种原因,除非所有命名空间都正确且没有任何前缀,否则我的请求没有得到正确处理。 我所有的类都是由服务提供商使用提供的XSD和WSDL创建的。 NfeDadosMsg.class 包装信息.java TConsStatServ.class package br.inf.portalfiscal.nfe; 包装信息.java 输出xml: 由于某种原因,
我正在尝试使用JAXB解组一个xml文件。当我使用具有正确名称和命名空间的@XmlElement时,解组工作(例如@XmlElement(name=“name”,namespace=”http://www.test.com")) xml文件(test.xml)的内容: JAXBExample.java的内容是: 内容 包装stackoverflow.problem.jaxb.ns; 如果我取消注释