Skip to content

Google Base

Google Base is an extension for RSS and Atom feeds that allows to transport many additional content-related informations.

Sample

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g-core="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <title>Title</title>
    <link>https://example.org/feed</link>
    <description>Description</description>
    <item>
      <title>Title</title>
      <link>https://example.org/entry</link>
      <description>Description</description>
      <guid>https://example.org/entry</guid>
      <g-core:year>2000</g-core:year>
      <g-core:model>Insight</g-core:model>
      <g-core:make>Honda</g-core:make>
    </item>
  </channel>
</rss>

Create feed

// create entry
SyndContent description = new SyndContentImpl();
description.setValue("Description");

GoogleBaseImpl vehicle = new GoogleBaseImpl();
vehicle.setMake("Honda");
vehicle.setModel("Insight");
vehicle.setYear(new YearType("2000"));

SyndEntry entry = new SyndEntryImpl();
entry.setTitle("Title");
entry.setDescription(description);
entry.setLink("https://example.org/entry");
entry.getModules().add(vehicle);

// assemble feed
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setTitle("Title");
feed.setDescription("Description");
feed.setLink("https://example.org/feed");
feed.getEntries().add(entry);

// output feed
String xml = new SyndFeedOutput().outputString(feed);
System.out.println(xml);

Read feed

Reader reader = new StringReader(xml);
SyndFeed feed = new SyndFeedInput().build(reader);

for (SyndEntry entry : feed.getEntries()) {

    GoogleBase googleBase = (GoogleBase) entry.getModule(GoogleBaseImpl.URI);
    String make = googleBase.getMake();
    String model = googleBase.getModel();
    YearType year = googleBase.getYear();

    System.out.println(make);
    System.out.println(model);
    System.out.println(year);

}