He intentado envolver un conjunto de clases basadas en Simple XML (Java Serializer) alrededor de una fuente RSS. La alimentación de la muestra esXml simple - Elemento declarado error dos veces
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Coding Horror</title>
<link>http://www.codinghorror.com/blog/</link>
<description>programming and human factors - Jeff Atwood</description>
<language>en-us</language>
<lastBuildDate>Wed, 04 May 2011 20:34:18 -0700</lastBuildDate>
<pubDate>Wed, 04 May 2011 20:34:18 -0700</pubDate>
<generator>http://www.typepad.com/</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<title>Coding Horror</title>
<url>http://www.codinghorror.com/blog/images/coding-horror-official-logo-small.png</url>
<width>100</width>
<height>91</height>
<description>Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.</description>
<link>http://www.codinghorror.com/blog/</link>
</image>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/codinghorror" />
</channel>
</rss>
El error que estoy recibiendo mientras se ejecuta el código es
org.simpleframework.xml.core.PersistenceException: Element 'link' declared twice at line 24
Y el error es bastante justo porque el nombre de elemento particular se produce dos veces en el xml pero de diferentes maneras.
El primer elemento de enlace está aquí
<link>http://www.codinghorror.com/blog/</link>
Su directamente bajo la etiqueta de canal. Y luego el siguiente código de enlace es de nuevo bajo el canal en el siguiente formato
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/codinghorror" />
En la clase Channel.java no puedo tener dos variables con el mismo nombre de enlace. He intentado cambiar un nombre de variable a BLOGLINK y trató de dar nombre en la anotación de elementos y Eclipse me dio este error
Change was
@Element("name=link")
Result is
The attribute value is undefined for the annotation Element
sé que estoy perdiendo algo aquí, pero no puedo poner mi dedo en la llaga. Le agradecería cualquier ayuda en esto.
ACTUALIZACIÓN
Clase Canal
@Element(name="link")
@Namespace(reference="http://www.w3.org/2005/Atom",prefix="atom")
private atomlink atomlink;
public atomlink getAtomLink() {
return atomlink;
}
Enlace de clase
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Namespace;
import org.simpleframework.xml.Root;
@Root(name="link")
@Namespace(reference="http://www.w3.org/2005/Atom",prefix="atom10")
public class atomlink {
@Attribute
private String rel;
public String getRel() {
return rel;
}
}
he cambiado los nombres de las clases y sin embargo, todavía señala el mismo error.
fue esta vez resueltos? Estoy tratando de mapear las clases de RSS para simple-xml en este momento. Sería bueno si pudieras compartir. –
No, no pude. Envió un correo electrónico a la lista de correo y no recibió una respuesta. De acuerdo con los documentos, el espacio de nombres debería ser el truco, pero no lo fue para mí. Como el tiempo era una limitación para mí, implementé mi propia envoltura rss personalizada con dom xml. – vikramjb