0

I have this class defintion:

@XmlRootElement
public class RssRoot {

private String _version;

private String _xmlns_content;

@XmlAttribute()
public String get_version() {
    return _version;
}

@XmlAttribute()
public String get_xmlns_content() {
    return _xmlns_content;
}

public void set_version(String version) {
  _version = version;
 }

 public void set_xmlns_content(String xmlnsContent) {
  _xmlns_content = xmlnsContent;
 }

 public RssRoot() {
  super();

  this._version = "2.0";
  this._xmlns_content = "http://purl.org/rss/1.0/modules/content/";
 }

}

And it generates this xml:

<rssRoot xmlnsContent="http://purl.org/rss/1.0/modules/content/" version="2.0"/>

However, I need to rename xmlnsContent to xmlns:content, and rssRoot, to rss. How can I do this?

I tried with @XmlAttribute(name = "xmlns:content") above the getter and near to the property declaration, but no luck. The thing fails with this message:

Root Exception stack trace: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnno tationExceptions Class has two properties of the same name "_xmlns_content" this problem is related to the following location: RssRoot

What else can I do?

1 Answer 1

2

It may be better to use existing libraries for RSS support (such as ROME) instead of creating your own.

But if you actually want:

  • xmlns:content is not an attribute, it's a namespace declaration. JAXB adds it to the resulting XML automatically when resulting XML contains elements in that namespace (namespace of elements can be specified using namespace attribute in @XmlElement, @XmlRootElement, etc).

  • To rename rssRoot to rss, write @XmlRootElement(name = "rss").

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.