Saturday, 20 May 2017

Atom Entry Element

Atom Entry element represents a standalone entry document. It is the child of Atom Feed element.

Following are the rules to consider while using Entry element.

a.   atom:entry elements MUST contain one or more atom:author elements, unless the atom:entry contains an atom:source element that contains an atom:author element or, in an Atom Feed Document, the atom:feed element contains an atom:author element itself.

b.   atom:entry elements MAY contain any number of atom:category elements.

c.   atom:entry elements MUST NOT contain more than one atom:content element.

d.   atom:entry elements MAY contain any number of atom:contributor elements.

e.   atom:entry elements MUST contain exactly one atom:id element.

f.    atom:entry elements that contain no child atom:content element MUST contain at least one atom:link element with a rel attribute value of "alternate".

g.   atom:entry elements MUST NOT contain more than one atom:link element with a rel attribute value of "alternate" that has the same combination of type and hreflang attribute values.

h.   atom:entry elements MAY contain additional atom:link elements beyond those described above.

i.     atom:entry elements MUST NOT contain more than one atom:published element.

j.    atom:entry elements MUST NOT contain more than one atom:rights element.

k.   atom:entry elements MUST NOT contain more than one atom:source element.

l.     atom:entry elements MUST contain an atom:summary element in either of the following cases:

l.1 the atom:entry contains an atom:content that has a "src" attribute (and is thus empty).
          
          l.2 the atom:entry contains content that is encoded in Base64;
         i.e., the "type" attribute of atom:content is a MIME media type
         [MIMEREG], but is not an XML media type [RFC3023], does not
         begin with "text/", and does not end with "/xml" or "+xml".
                  
m. atom:entry elements MUST NOT contain more than one atom:summary element.

n. atom:entry elements MUST contain exactly one atom:title element.

o. atom:entry elements MUST contain exactly one atom:updated element.

Example
<entry>
    <id>tag:blogger.com,1999:blog-3062500619105519975.post-918659526208416960</id>
    <published>2016-12-17T07:37:01.821Z</published>
    <updated>2016-12-17T07:37:01.821Z</updated>
    <title type="text">SWT: Slider Tutorial</title>
    <content type="html">Slider class is used to define Slider widget</content>
    <author>
      <name>Hari Krishna Gurram</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </author>
    <author>
      <name>Rama Krishna Gurram</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </author>
    <contributor>
      <name>Ritweek Mehenty</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </contributor>
    <contributor>
      <name>Sailaja Naakotla</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </contributor>
  </entry>

Following is the complete working application.


HelloWorld.java
package abdera_tutorial.abdera_tutorial;

import java.io.IOException;
import java.util.Date;

import org.apache.abdera.Abdera;
import org.apache.abdera.model.Content;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.model.Text;
import org.apache.abdera.writer.Writer;

public class HelloWorld {

 private static void addMetaData(Feed feed) {
  feed.setId("tag:blogger.com,1999:blog-3062500619105519975");
  feed.setUpdated(new Date());
  feed.setTitle("java tutorial : Blog to learn java programming");
  feed.setSubtitle("Learners Blog");
 }

 private static void addLinksToFeed(Feed feed) {
  /* Adding Links */
  String rel = "http://schemas.google.com/g/2005#feed";
  String type = "application/atom+xml";
  String href = "https://self-learning-java-tutorial.blogspot.com/feeds/posts/default";
  String title = "";
  String hreflang = "";
  long length = 0;

  feed.addLink(href, rel, type, title, hreflang, length);

  rel = "self";
  type = "application/atom+xml";
  href = "http://www.blogger.com/feeds/3062500619105519975/posts/default?alt=atom";

  feed.addLink(href, rel, type, title, hreflang, length);
 }

 private static void addAuthorToFeed(Feed feed) {
  String name = "hari krishna";
  String email = "noreply@blogger.com";
  String iri = "https://self-learning-java-tutorial.blogspot.com";

  feed.addAuthor(name, email, iri);
 }
 

 private static void addEntry(Feed feed) {

  Entry entry1 = feed.addEntry();
  entry1.setId("tag:blogger.com,1999:blog-3062500619105519975.post-918659526208416960");
  Date date = new Date();
  entry1.setPublished(date);
  entry1.setUpdated(date);
  entry1.setTitle("SWT: Slider Tutorial", Text.Type.TEXT);
  entry1.setContent("Slider class is used to define Slider widget", Content.Type.HTML);
  entry1.addAuthor("Hari Krishna Gurram", "noreply@blogger.com", "https://self-learning-java-tutorial.blogspot.com");
  entry1.addAuthor("Rama Krishna Gurram", "noreply@blogger.com", "https://self-learning-java-tutorial.blogspot.com");
  
  entry1.addContributor("Ritweek Mehenty", "noreply@blogger.com", "https://self-learning-java-tutorial.blogspot.com");
  entry1.addContributor("Sailaja Naakotla", "noreply@blogger.com", "https://self-learning-java-tutorial.blogspot.com");
  
  feed.addEntry(entry1);

 }

 public static void main(String args[]) throws IOException {
  Abdera abdera = new Abdera();

  /* Create a new Feed instance. */
  Feed feed = abdera.newFeed();

  /* Populate feed */
  addMetaData(feed);
  addLinksToFeed(feed);
  addAuthorToFeed(feed);
  addEntry(feed);

  /* Print the feed to console */
  Writer writer = abdera.getWriterFactory().getWriter("prettyxml");
  feed.writeTo(writer, System.out);
 }
}


Output
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:blogger.com,1999:blog-3062500619105519975</id>
  <updated>2016-12-17T07:37:01.796Z</updated>
  <title type="text">java tutorial : Blog to learn java programming</title>
  <subtitle type="text">Learners Blog</subtitle>
  <link href="https://self-learning-java-tutorial.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" title="" hreflang="" length="0"/>
  <link href="http://www.blogger.com/feeds/3062500619105519975/posts/default?alt=atom" rel="self" type="application/atom+xml" title="" hreflang="" length="0"/>
  <author>
    <name>hari krishna</name>
    <email>noreply@blogger.com</email>
    <uri>https://self-learning-java-tutorial.blogspot.com</uri>
  </author>
  <entry>
    <id>tag:blogger.com,1999:blog-3062500619105519975.post-918659526208416960</id>
    <published>2016-12-17T07:37:01.821Z</published>
    <updated>2016-12-17T07:37:01.821Z</updated>
    <title type="text">SWT: Slider Tutorial</title>
    <content type="html">Slider class is used to define Slider widget</content>
    <author>
      <name>Hari Krishna Gurram</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </author>
    <author>
      <name>Rama Krishna Gurram</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </author>
    <contributor>
      <name>Ritweek Mehenty</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </contributor>
    <contributor>
      <name>Sailaja Naakotla</name>
      <email>noreply@blogger.com</email>
      <uri>https://self-learning-java-tutorial.blogspot.com</uri>
    </contributor>
  </entry>
</feed>





Previous                                                 Next                                                 Home

No comments:

Post a Comment