我想从XML创建一些对象,但是当我尝试时,我得到了这个错误:
[26/07/12 16:20:03:763 CEST] ERROR sitemap.SitemapXMLServlet:
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.sitemaps.org/schemas/sitemap/0.9", local:"urlset"). Expected elements are <{}url>
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.sitemaps.org/schemas/sitemap/0.9", local:"urlset"). Expected elements are <{}url>
我找不到问题所在,也不明白为什么会出问题。这是我尝试过的:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://LINK/shop/hoofdcategorie</loc>
<lastmod>2012-07-26</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>
http://LINK/shop/hoofdcategorie/subcategorie
</loc>
<lastmod>2012-07-26</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</urlset>
public void getXML() {
final JAXBContext context = JAXBContext.newInstance(SitemapXML.class);
final Unmarshaller unmarshaller = context.createUnmarshaller();
String xml = URLReader.readUrlHttpClient("http://LINK/shop/sitemap.xml");
final UrlSet urlSet = (UrlSet) unmarshaller.unmarshal(new StreamSource(new StringReader(xml)));
}
UrlSet类
@XmlRootElement(name = "urlset")
public class UrlSet {
@XmlAttribute
String xmlns;
@XmlElement(name = "url")
ArrayList<SitemapXML> sitemaps;
public ArrayList<SitemapXML> getSitemaps() {
return sitemaps;
}
public void setSitemaps(ArrayList<SitemapXML> sitemaps) {
this.sitemaps = sitemaps;
}
@XmlAttribute
public String getXmlns() {
return xmlns;
}
public void setXmlns(String xmlns) {
this.xmlns = xmlns;
}
}
SitemapXML类我映射到url的内容
@XmlRootElement(name = "url")
public class SitemapXML {
String loc;
Date lastmod;
String changefreq;
Double priority;
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public Date getLastmod() {
return lastmod;
}
public void setLastmod(Date lastmod) {
this.lastmod = lastmod;
}
public String getChangefreq() {
return changefreq;
}
public void setChangefreq(String changefreq) {
this.changefreq = changefreq;
}
public Double getPriority() {
return priority;
}
public void setPriority(Double priority) {
this.priority = priority;
}
}
您的xml使用了一个名称空间,但是您的注释没有提到名称空间。可以在XmlRootElement批注中指定命名空间,也可以在包级别添加XmlSchema批注。
问题内容: 如何使用下面的代码解组XML字符串并将其映射到下面的JAXB对象? 问题答案: 要传递XML内容,您需要将内容包装在中,然后将其解组:
错误中的SOAP WSDL URL是Spring Boot应用程序中的另一个web服务。试图理解为什么这会出现在错误中。 UnmarshalException:意外元素(URI:“”,local:“message”)。需要的元素是<{http://soap_wsdl_url}jaxb_pojo_name>
我有这样一个XML字符串: 当我试图将字符串读入这样的对象时 我得到以下错误: 我在类中使用@JsonProperty是因为@XmlElement还有其他问题。如果我在ResultModel类中排除字段QueryResults,那么字符串的解析工作正常,看起来是正确的。我做错了什么?我对Java中XML字符串的解析非常陌生,所以我希望有一些简单的方法来解决这个问题。。。
我必须在JAXB中将xml解析为字符串对象。但是如何为这个xml创建对象 Country.xml 为了解析这个xml,我创建了一个类来映射对象,它创建对象并在控制台中打印出来。却不知道自己做错了什么。 当我运行程序时,我会得到 com . sun . XML . internal . bind . v2 . runtime . illegalanotationexception:illegalan
问题内容: 是的,是的,我知道有关此主题的问题很多。但是我仍然找不到解决我问题的方法。我有一个带属性的Java对象。例如客户,如本例所示。我想要它的字符串表示形式。为此,Google建议使用JAXB。但是在所有示例中,创建的XML文件都会打印到文件或控制台,如下所示: 但是我必须使用该对象并以XML格式通过网络发送。所以我想得到一个表示XML的字符串。 我怎样才能做到这一点? 问题答案: 您可以使
问题解决 将XmlElementRef注释更改为@XmlElementRef(name=“Option”,type=Option.class,required=false)后,将@XmlRootElement(name=“Option”)添加到选项中。班 更新: 根据laune的建议,我添加了两个类(Options和Option),并修改了GuimopProperties类,如下所示 但当我必须新