<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>RSSBus - A Really Simple Service Bus</title>
    <link>http://blog.rssbus.com/</link>
    <description />
    <language>en-us</language>
    <copyright>/n software inc.</copyright>
    <lastBuildDate>Thu, 27 Mar 2008 14:57:36 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>info@rssbus.com</managingEditor>
    <webMaster>info@rssbus.com</webMaster>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=05cb1639-bde3-401a-84ae-c71be2037e07</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,05cb1639-bde3-401a-84ae-c71be2037e07.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We are excited to announce that <a href="http://www.rssbus.com/products/rssbus" target="_blank">RSSBus
Feed Server</a> has been nominated for the <em>2008 Great Indian Developer Awards</em> in
the Web Development category.  The RSSBus team is honored to be nominated for
this award, and we are excited to be recognized across the globe for facilitating
feed generation and enabling connected systems through simple services.
</p>
        <p>
This nomination "highlights product excellence, research and innovation, corporate
achievements, the strongest individual efforts, and the most compelling community
efforts among the entire IT developer fraternity in India."  For complete details
visit the 2008 Great Indian Developer Summit website - <a href="http://www.developersummit.com/awards.html" target="_blank">http://www.developersummit.com/awards.html</a></p>
        <img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=05cb1639-bde3-401a-84ae-c71be2037e07" />
      </body>
      <title>RSSBus Nominated for 2008 Great Indian Developer Awards</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,05cb1639-bde3-401a-84ae-c71be2037e07.aspx</guid>
      <link>http://blog.rssbus.com/RSSBusNominatedFor2008GreatIndianDeveloperAwards.aspx</link>
      <pubDate>Thu, 27 Mar 2008 14:57:36 GMT</pubDate>
      <description>&lt;p&gt;
We are excited to announce that &lt;a href="http://www.rssbus.com/products/rssbus" target=_blank&gt;RSSBus
Feed Server&lt;/a&gt; has been nominated for the &lt;em&gt;2008 Great Indian Developer Awards&lt;/em&gt; in
the Web Development category.&amp;nbsp; The RSSBus team is honored to be nominated for
this award, and we are excited to be recognized across the globe for facilitating
feed generation and enabling connected systems through simple services.
&lt;/p&gt;
&lt;p&gt;
This nomination "highlights product excellence, research and innovation, corporate
achievements, the strongest individual efforts, and the most compelling community
efforts among the entire IT developer fraternity in India."&amp;nbsp; For complete details
visit the 2008 Great Indian Developer Summit website - &lt;a href="http://www.developersummit.com/awards.html" target=_blank&gt;http://www.developersummit.com/awards.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=05cb1639-bde3-401a-84ae-c71be2037e07" /&gt;</description>
      <category>News</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=4baee0ad-4067-4672-b948-9d0352b76e63</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,4baee0ad-4067-4672-b948-9d0352b76e63.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <title>Using Amazon SimpleDB with RSSBus</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,4baee0ad-4067-4672-b948-9d0352b76e63.aspx</guid>
      <link>http://blog.rssbus.com/UsingAmazonSimpleDBWithRSSBus.aspx</link>
      <pubDate>Mon, 10 Mar 2008 16:35:05 GMT</pubDate>
      <description>Amazon recently released their new data service, known as SimpleDB, which allows one to store data in the cloud.&lt;br&gt;
&lt;br&gt;
SimpleDB is a very simple database system which works on the basis of domain (a table),
item (a row), and attributes (columns in a row).&amp;nbsp; These are very closely related
to an RSSBus feed which also contains a table (the feed itself), a row (the item),
and columns (attributes).&lt;br&gt;
&lt;br&gt;
The similarity of SimpleDB and RSSBus means two things:&amp;nbsp; Feeds can be easily
stored in a SimpleDB domain, and a SimpleDB domain can easily be represented as a
feed.&lt;br&gt;
&lt;br&gt;
We have created scripts illustrating both of the previously mentioned scenarios, and
both of these scripts in their entirety are included as demos when you &lt;a href="http://www.rssbus.com/connectors/info.aspx?con=nsoftware.RSSBus.SimpleDbOps.info"&gt;download
the new SimpleDB connector&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Store a feed in a SimpleDB domain:&lt;br&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green128\blue0;\red163\green21\blue21;\red255\green0\blue0;\red0\green0\blue0;}??\fs20 \cf1 &amp;lt;!--\cf3  Retrieve the feed \cf1 --&amp;gt;\par ??&amp;lt;\cf4 rsb:call\cf1  \cf5 op\cf1 =\cf0 "\cf1 feedGet?feed=[feedurl]\cf0 "\cf1  \cf5 out\cf1 =\cf0 "\cf1 myout\cf0 "\cf1 &amp;gt;\par ??  &amp;lt;!--\cf3  Enumerate through each attribute in the feed \cf1 --&amp;gt;\par ??\tab &amp;lt;\cf4 rsb:enum\cf1  \cf5 item\cf1 =\cf0 "\cf1 myout\cf0 "\cf1 &amp;gt;\par ??      &amp;lt;!--\cf3  Set the attribute name to be stored in the SimpleDB Database \cf1 --&amp;gt;\par ??\tab \tab \tab &amp;lt;\cf4 rsb:set\cf1  \cf5 attr\cf1 =\cf0 "\cf1 myin.attrs:[ _attr ]\cf0 "\cf1  \cf5 value\cf1 =\cf0 "\cf1 [ _value ]\cf0 "\cf1  /&amp;gt;\par ??\tab &amp;lt;/\cf4 rsb:enum\cf1 &amp;gt;\par ??\tab \par ??  &amp;lt;!--\cf3  Use the GUID as the ItemName so it is always unique \cf1 --&amp;gt;\par ??\tab &amp;lt;\cf4 rsb:set\cf1  \cf5 attr\cf1 =\cf0 "\cf1 myin.itemname\cf0 "\cf1  \cf5 value\cf1 =\cf0 "\cf1 [ rss:guid ]\cf0 "\cf1  /&amp;gt;\par ??  &amp;lt;!--\cf3  Push the item to SimpleDB \cf1 --&amp;gt;\par ??\tab &amp;lt;\cf4 rsb:call\cf1  \cf5 op\cf1 =\cf0 "\cf1 simpledbPutItem\cf0 "\cf1  \cf5 in\cf1 =\cf0 "\cf1 myin\cf0 "\cf1  /&amp;gt;\par ??&amp;lt;/\cf4 rsb:call\cf1 &amp;gt;}
--&gt;
&lt;div style="padding: 10px; background: whitesmoke none repeat scroll 0% 50%; font-family: Courier New; font-size: 9pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 1.1em;"&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Retrieve the
feed &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:call&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;op&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;feedGet?feed=[feedurl]&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;out&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myout&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Enumerate
through each attribute in the feed &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:enum&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;item&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myout&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Set
the attribute name to be stored in the SimpleDB Database &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:set&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;attr&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myin.attrs:[
_attr ]&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;value&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;[
_value ]&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:enum&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Use the
GUID as the ItemName so it is always unique &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:set&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;attr&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myin.itemname&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;value&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;[
rss:guid ]&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Push
the item to SimpleDB &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:call&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;op&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;simpledbPutItem&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;in&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myin&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:call&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
The script to create a feed from a SimpleDB domain is even easier:&lt;br&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green128\blue0;\red163\green21\blue21;\red255\green0\blue0;\red0\green0\blue0;}??\fs20 \cf1 &amp;lt;!--\cf3  Setting fetchattributes to True will automatically retrieve the attributes for each ItemName \cf1 --&amp;gt;\par ??&amp;lt;\cf4 rsb:set\cf1  \cf5 attr\cf1 =\cf0 "\cf1 myin.fetchattributes\cf0 "\cf1  \tab \cf5 value\cf1 =\cf0 "\cf1 True\cf0 "\cf1  /&amp;gt;\par ??\par ??&amp;lt;!--\cf3  Iterate through all of the items in the domain \cf1 --&amp;gt;\par ??&amp;lt;\cf4 rsb:call\cf1  \cf5 op\cf1 =\cf0 "\cf1 simpledbGetItems\cf0 "\cf1  \cf5 in\cf1 =\cf0 "\cf1 myin\cf0 "\cf1  \cf5 out\cf1 =\cf0 "\cf1 myout\cf0 "\cf1 &amp;gt;\par ??  &amp;lt;!--\cf3  Push each Item as an RSS Item \cf1 --&amp;gt;\par ??  &amp;lt;\cf4 rsb:push\cf1  \cf5 item\cf1 =\cf0 "\cf1 myout\cf0 "\cf1  /&amp;gt;\par ??&amp;lt;/\cf4 rsb:call\cf1 &amp;gt;}
--&gt;
&lt;div style="padding: 10px; background: whitesmoke none repeat scroll 0% 50%; font-family: Courier New; font-size: 9pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; line-height: 1.1em;"&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Setting fetchattributes
to True will automatically retrieve the attributes for each ItemName &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:set&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;attr&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myin.fetchattributes&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red;"&gt;value&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;True&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Iterate through
all of the items in the domain &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:call&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;op&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;simpledbGetItems&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;in&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myin&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;out&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myout&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color: green;"&gt; Push
each Item as an RSS Item &lt;/span&gt;&lt;span style="color: blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:push&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;item&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;myout&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;rsb:call&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
The new SimpleDB connector makes interacting with SimpleDB incredibly easy.&amp;nbsp;
Aside from the two scripts mentioned above, the new connector also has the ability
to perform any and all operations on a SimpleDB, such as creating a domain, deleting
a domain, adding and deleting rows, and adding and deleting attributes.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=4baee0ad-4067-4672-b948-9d0352b76e63" /&gt;</description>
      <category>Feeds;Tips</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=88e54f11-81a9-4a51-9263-9256cead942a</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,88e54f11-81a9-4a51-9263-9256cead942a.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img hspace="7" src="http://blog.rssbus.com/content/binary/jolt.jpg" align="right" border="0" />We
are proud to announce that <a href="http://www.rssbus.com/products/rssbus/">RSSBus
Feed Server</a> has received the Jolt Productivity Award in the ‘Web Development Tools’
category at the 18th Annual Jolt Product Excellence Awards (<a href="http://www.joltawards.com">www.joltawards.com</a>).   
</p>
        <p>
Jolt Awards are presented annually to products, books, and websites that have "jolted"
the industry over the past year, helping create faster, easier and more efficient
software.  The Jolt Product Awards recognize only the most innovative, trend-making,
and ahead-of-the-curve software solutions.  Winners are selected by an esteemed
panel of judges consisting of industry insiders, columnists, and technology leaders.
</p>
        <p>
For more information about the 2008 Jolt Awards - <a href="http://www.joltawards.com/press/030608.htm">http://www.joltawards.com/press/030608.htm</a></p>
        <img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=88e54f11-81a9-4a51-9263-9256cead942a" />
      </body>
      <title>RSSBus Wins Prestigious Jolt Productivity Award!</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,88e54f11-81a9-4a51-9263-9256cead942a.aspx</guid>
      <link>http://blog.rssbus.com/RSSBusWinsPrestigiousJoltProductivityAward.aspx</link>
      <pubDate>Fri, 07 Mar 2008 21:19:51 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img hspace=7 src="http://blog.rssbus.com/content/binary/jolt.jpg" align=right border=0&gt;We
are proud to announce that &lt;a href="http://www.rssbus.com/products/rssbus/"&gt;RSSBus
Feed Server&lt;/a&gt; has received the Jolt Productivity Award in the ‘Web Development Tools’
category at the 18th Annual Jolt Product Excellence Awards (&lt;a href="http://www.joltawards.com"&gt;www.joltawards.com&lt;/a&gt;).&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Jolt Awards are presented annually to products, books, and websites that have "jolted"
the industry over the past year, helping create faster, easier and more efficient
software.&amp;nbsp; The Jolt Product Awards recognize only the most innovative, trend-making,
and ahead-of-the-curve software solutions.&amp;nbsp; Winners are selected by an esteemed
panel of judges consisting of industry insiders, columnists, and technology leaders.
&lt;/p&gt;
&lt;p&gt;
For more information about the 2008 Jolt Awards - &lt;a href="http://www.joltawards.com/press/030608.htm"&gt;http://www.joltawards.com/press/030608.htm&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=88e54f11-81a9-4a51-9263-9256cead942a" /&gt;</description>
      <category>News</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=502ff858-2f08-4c12-86c3-e1b8c474fa2b</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,502ff858-2f08-4c12-86c3-e1b8c474fa2b.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
RSSBus Feed Server is primarily an infrastructure to host simple web services. It
allows one to quickly write scripts that take HTTP requests as input and produce simple
feeds as a response. The extensive number of <a href="http://www.rssbus.com/connectors/" target="_blank">Connectors</a> already
available makes it possible to access data from many different sources. Today we will
share our thoughts on some of the features that simplify the creation of service oriented
architectures based on RSSBus.
</p>
        <p>
Before we delve deeper into various options, let us remind ourselves of some guiding
principles. We would like the solution to be simple, quick to implement, and benefit
from the core promises of service oriented architectures. In doing so our solution
should maintain:
</p>
        <ul>
          <li>
            <em>loose coupling</em>: making sure that a service does not depend on implementation
details of another service, 
</li>
          <li>
            <em>reusability</em>: consistent use of simple and extensible modules, patterns and
formats, and 
</li>
          <li>
            <em>composability</em>: ability to create new services by assembling composite services.   
</li>
        </ul>
        <p>
          <strong>
            <a href="http://www.rssbus.com/about/connectors.aspx" target="_blank">RSSBus
Connectors</a>
          </strong>
        </p>
        <p>
RSSBus Connectors are .NET assemblies (modules) that are dynamically discovered by
the RSSBus Engine upon installation. They take advantage of the .NET Framework and
are extremely flexible in their capabilities. Each Connector is composed of one or
more operations for accessing data from a specific data source.  Operations include
only two functions, an Info function that describes the allowed inputs and outputs,
and an Exec function that does the work.  The RSSBus API also allows an operation
to call another operation, facilitating composability. Partitioning data access and
business logic into individual operations and formally defining their service contract
can help you implement new Connectors quickly in a predictable, extensible way. 
RSSBus Feed Server ships with 70 Connectors to common Internet and Enterprise Data
Sources, and you can easily create new Connectors using a simple API and .NET development
tools (see the example in the White Paper).
</p>
        <p>
          <strong>
            <a href="http://www.rssbus.com/about/scripts.aspx" target="_blank">RSBScript</a>
          </strong>
        </p>
        <p>
The operations included in RSSBus Connectors are written to accept a variety of HTTP
requests and host configuration inputs (for example the name of a SQL table to access
or the username of a POP mailbox to read) and they can produce a rich variety of response
output.  RSSBus makes it easy to configure operation inputs and outputs by wrapping
those calls inside RSBScript.  Besides manipulating input and output, the script
can be used to define user and role based security, manipulate response headers and
data format, enhance performance with built-in caching, and more.  RSBScript
allows invocation of one or more local or remote operations, and also has a number
of simple control logic features.  RSBscript makes it easy for an administrator
publishing the services to make the deployment decisions, while relying on developers
to build core data access functionality within the Connectors.
</p>
        <p>
RSBScript can also call other programming languages for implementation of more extensive
business logic. RSSBus currently supports <a href="http://blog.rssbus.com/PythonOpsUsingPythonToWriteRSBScript.aspx" target="_blank">Python</a>,
Tcl, VBscript, Jscript and PowerShell, through an extensible API that allows easy
creation of plug-ins for other languages.
</p>
        <p>
          <strong>
            <a href="http://www.rssbus.com/products/rsstools/default.aspx" target="_blank">RSSTools
and Client Side Processing</a>
          </strong>
        </p>
        <p>
Though RSS feeds can be consumed by RSS readers, email clients, and browsers; feeds
generated with RSSBus also have data points that other programs can use. The format
of data feeds generated by RSSBus is very simple, and most programming languages with
basic XML libraries can easily work with them. To make this even easier we supply
a set of tools for common development technologies. The ability to compute with feeds
on the client side makes it possible to publish services that are suitable for a broader
audience. 
</p>
        <p>
In addition to facilitating client side processing of feeds, RSSBus can alter the
service response using RSSBus Feed Formatters. It is a simple matter to present the
response of a service as HTML, CSV (comma-separated values), ATOM, JSON, etc, using
existing feed formatters.  These formatters can be used by supplying parameters
like (@json, @html, @csv) in the HTTP request. Moreover, extensibility via the <a href="http://blog.rssbus.com/CustomFeedFormattersFormattingFeedsYourWay.aspx" target="_blank">Feed
Formatter API</a> makes it possible to expand the existing set of response formats.
</p>
        <p>
To summarize: what we have laid out in this post are some of the options RSSBus offers
to move towards a more service oriented architecture. The benefits of SOA are well
known, and we hope we can help reduce the costs and accelerating uptake of SOA. 
There will be more details in future posts.<br /><br /></p>
        <img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=502ff858-2f08-4c12-86c3-e1b8c474fa2b" />
      </body>
      <title>Service Oriented Architecture with RSSBus </title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,502ff858-2f08-4c12-86c3-e1b8c474fa2b.aspx</guid>
      <link>http://blog.rssbus.com/ServiceOrientedArchitectureWithRSSBus.aspx</link>
      <pubDate>Fri, 01 Feb 2008 01:44:25 GMT</pubDate>
      <description>&lt;p&gt;
RSSBus Feed Server is primarily an infrastructure to host simple web services. It
allows one to quickly write scripts that take HTTP requests as input and produce simple
feeds as a response. The extensive number of &lt;a href="http://www.rssbus.com/connectors/" target=_blank&gt;Connectors&lt;/a&gt; already
available makes it possible to access data from many different sources. Today we will
share our thoughts on some of the features that simplify the creation of service oriented
architectures based on RSSBus.
&lt;/p&gt;
&lt;p&gt;
Before we delve deeper into various options, let us remind ourselves of some guiding
principles. We would like the solution to be simple, quick to implement, and benefit
from the core promises of service oriented architectures. In doing so our solution
should maintain:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;loose coupling&lt;/em&gt;: making sure that a service does not depend on implementation
details of another service, 
&lt;li&gt;
&lt;em&gt;reusability&lt;/em&gt;: consistent use of simple and extensible modules, patterns and
formats, and 
&lt;li&gt;
&lt;em&gt;composability&lt;/em&gt;: ability to create new services by assembling composite services.&amp;nbsp;&amp;nbsp; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.rssbus.com/about/connectors.aspx" target=_blank&gt;RSSBus
Connectors&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
RSSBus Connectors are .NET assemblies (modules) that are dynamically discovered by
the RSSBus Engine upon installation. They take advantage of the .NET Framework and
are extremely flexible in their capabilities. Each Connector is composed of one or
more operations for accessing data from a specific data source.&amp;nbsp; Operations include
only two functions, an Info function that describes the allowed inputs and outputs,
and an Exec function that does the work.&amp;nbsp; The RSSBus API also allows an operation
to call another operation, facilitating composability. Partitioning data access and
business logic into individual operations and formally defining their service contract
can help you implement new Connectors quickly in a predictable, extensible way.&amp;nbsp;
RSSBus Feed Server ships with 70 Connectors to common Internet and Enterprise Data
Sources, and you can easily create new Connectors using a simple API and .NET development
tools (see the example in the White Paper).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.rssbus.com/about/scripts.aspx" target=_blank&gt;RSBScript&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The operations included in RSSBus Connectors are written to accept a variety of HTTP
requests and host configuration inputs (for example the name of a SQL table to access
or the username of a POP mailbox to read) and they can produce a rich variety of response
output.&amp;nbsp; RSSBus makes it easy to configure operation inputs and outputs by wrapping
those calls inside RSBScript.&amp;nbsp; Besides manipulating input and output, the script
can be used to define user and role based security, manipulate response headers and
data format, enhance performance with built-in caching, and more.&amp;nbsp; RSBScript
allows invocation of one or more local or remote operations, and also has a number
of simple control logic features.&amp;nbsp; RSBscript makes it easy for an administrator
publishing the services to make the deployment decisions, while relying on developers
to build core data access functionality within the Connectors.
&lt;/p&gt;
&lt;p&gt;
RSBScript can also call other programming languages for implementation of more extensive
business logic. RSSBus currently supports &lt;a href="http://blog.rssbus.com/PythonOpsUsingPythonToWriteRSBScript.aspx" target=_blank&gt;Python&lt;/a&gt;,
Tcl, VBscript, Jscript and PowerShell, through an extensible API that allows easy
creation of plug-ins for other languages.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;a href="http://www.rssbus.com/products/rsstools/default.aspx" target=_blank&gt;RSSTools
and Client Side Processing&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Though RSS feeds can be consumed by RSS readers, email clients, and browsers; feeds
generated with RSSBus also have data points that other programs can use. The format
of data feeds generated by RSSBus is very simple, and most programming languages with
basic XML libraries can easily work with them. To make this even easier we supply
a set of tools for common development technologies. The ability to compute with feeds
on the client side makes it possible to publish services that are suitable for a broader
audience. 
&lt;/p&gt;
&lt;p&gt;
In addition to facilitating client side processing of feeds, RSSBus can alter the
service response using RSSBus Feed Formatters. It is a simple matter to present the
response of a service as HTML, CSV (comma-separated values), ATOM, JSON, etc, using
existing feed formatters.&amp;nbsp; These formatters can be used by supplying parameters
like (@json, @html, @csv) in the HTTP request. Moreover, extensibility via the &lt;a href="http://blog.rssbus.com/CustomFeedFormattersFormattingFeedsYourWay.aspx" target=_blank&gt;Feed
Formatter API&lt;/a&gt; makes it possible to expand the existing set of response formats.
&lt;/p&gt;
&lt;p&gt;
To summarize: what we have laid out in this post are some of the options RSSBus offers
to move towards a more service oriented architecture. The benefits of SOA are well
known, and we hope we can help reduce the costs and accelerating uptake of SOA.&amp;nbsp;
There will be more details in future posts.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=502ff858-2f08-4c12-86c3-e1b8c474fa2b" /&gt;</description>
      <category>News</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=e5472070-fe88-420b-986e-08e52a1c4ded</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,e5472070-fe88-420b-986e-08e52a1c4ded.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The API's on the web have simplified in the recent past. There are more REST-centric
APIs in the public domain than ever before. Various services from Google and Amazon
are a good example. Apart from being RESTful these services have a simple XML based
response format. The xmlHttp operation, included in XmlOps, makes it easy to access
such services and represent their results as RSS, HTML, an Excel spreadsheet, or <a href="http://blog.rssbus.com/CustomFeedFormattersFormattingFeedsYourWay.aspx">any
other output format supported by RSSBus</a>. 
</p>
        <p>
Today we show an example of using xmlHttp to access the Amazon ECS service. The XmlOps
connector includes this script as a demo.<br /></p>
        <p>
          <span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New">
            <span style="COLOR: blue">&lt;!--</span>
            <span style="COLOR: green"> Amazon
Books Feed </span>
            <span style="COLOR: blue">--&gt;</span>
            <span style="COLOR: blue">
              <br />
&lt;</span>
            <span style="COLOR: maroon">rsb:info</span>
            <span style="COLOR: blue">
            </span>
            <span style="COLOR: red">title</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">Amazon
Book Search</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">
            </span>
            <span style="COLOR: blue">
              <br />
  </span>
            <span style="COLOR: red">description</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">Use
the Amazon web-services API to search for a book.</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">&gt;</span>
            <span style="COLOR: blue">
              <br />
  &lt;</span>
            <span style="COLOR: maroon">input</span>
            <span style="COLOR: blue">
            </span>
            <span style="COLOR: red">name</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">query</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">
            </span>
            <span style="COLOR: red">req</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">true</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">
            </span>
            <span style="COLOR: red">desc</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">The
search text.</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue"> </span>
            <span style="COLOR: blue">
              <br />
        </span>
            <span style="COLOR: red">default</span>
            <span style="COLOR: blue">=</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue">Harry
Potter</span>
            <span style="COLOR: black">"</span>
            <span style="COLOR: blue"> /&gt;</span>
            <span style="COLOR: blue">
              <br />
&lt;/</span>
            <span style="COLOR: maroon">rsb:info</span>
            <span style="COLOR: blue">&gt;</span>
            <span style="COLOR: black">
            </span>
          </span> 
 <br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue"><br />
&lt;!--</span><span style="COLOR: green"> Create the input URL </span><span style="COLOR: blue">--&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">http://webservices.amazon.com/onca/xml</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]?Service=AWSECommerceService</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]</span><span style="COLOR: black">&amp;SubscriptionId</span><span style="COLOR: blue">=0E8MHMPRK05NWG9AJ8G2</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]</span><span style="COLOR: black">&amp;Operation</span><span style="COLOR: blue">=ItemSearch</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]</span><span style="COLOR: black">&amp;SearchIndex</span><span style="COLOR: blue">=Books</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]</span><span style="COLOR: black">&amp;ResponseGroup</span><span style="COLOR: blue">=Large</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.url</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[in.url]</span><span style="COLOR: black">&amp;Title</span><span style="COLOR: blue">=[query
| urlencode ]</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"></span></span>  
   <br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;!--</span><span style="COLOR: green"></span><span style="COLOR: green"><br />
  Specify the item XPath. An item is pushed each time this path is</span><span style="COLOR: green"><br />
  encountered in the XML response.</span><span style="COLOR: blue"><br />
--&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.item</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">/ItemSearchResponse/Items/Item</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"></span></span> 
 <br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;!--</span><span style="COLOR: green"> Specify
the XPath of the attributes to be pushed in an item. </span><span style="COLOR: blue">--&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ASIN</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">DetailPageURL</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">MediumImage/URL</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/Title</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/Author</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/NumberOfPages</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/ISBN</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/PublicationDate</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/Publisher</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/ReadingLevel</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in.attr#</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: blue"><br />
        </span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">ItemAttributes/ListPrice/FormattedPrice</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"></span></span>  
   <br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue"><br />
&lt;!--</span><span style="COLOR: green"> Use xmlHttp to get the results  </span><span style="COLOR: blue">--&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue"></span><span style="COLOR: red">op</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">xmlHttp</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">in</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">in</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">out</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">output</span><span style="COLOR: black">"</span><span style="COLOR: blue"> &gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">rss:link</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[DetailPageURL]</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">rss:guid</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[ASIN]</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue"></span><span style="COLOR: red">title</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[Title]</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
    &lt;</span><span style="COLOR: maroon">a</span><span style="COLOR: blue"></span><span style="COLOR: red">href</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[DetailPageURL]</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
      &lt;</span><span style="COLOR: maroon">img</span><span style="COLOR: blue"></span><span style="COLOR: red">src</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[URL]</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">alt</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[Title]</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
    &lt;/</span><span style="COLOR: maroon">a</span><span style="COLOR: blue">&gt;
&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Author: [Author | implode(',') ] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Pages: [NumberOfPages | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Price: [FormattedPrice | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    ISBN: [ISBN | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Publication Date: [PublicationDate | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Publisher: [Publisher | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: black"><br />
    Reading Level: [ReadingLevel | def('Unknown')] </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
    &lt;</span><span style="COLOR: maroon">hr</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
    &lt;/</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
&lt;/</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span><br /></p>
        <p>
In this template we use xmlHttp to call the Amazon ECS service and parse the response.
We first create the request URL by appending query string parameters, and then specify
the "item" and "attr#" parameters to parse the response. XmlHttp uses the Xpath notation
to specify locations of interest in the response XML. The "item" xpath specifies the
xpath for an item (an item is produced in the resulting feed each time this xpath
is seen), and the "attr#" specify the attributes that should be present in the items
of the resulting feed. The names of the attributes in the item are the same as the
name of the XML elements in the response. This can be changed by using the map input
parameter. The xmlHttp operation also allows you to specify the HTTP method (GET,
PUT, POST and DELETE), pick a file to post, and specify HTTP headers, among other
things needed to use simple XML API's.
</p>
        <hr />
Downloads: <a href="http://www.rssbus.com/download/download.aspx?file=modules/XmlOps.exe">XmlOps</a><p></p><img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=e5472070-fe88-420b-986e-08e52a1c4ded" /></body>
      <title>XmlOps: Accessing the Web 2.0 APIs</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,e5472070-fe88-420b-986e-08e52a1c4ded.aspx</guid>
      <link>http://blog.rssbus.com/XmlOpsAccessingTheWeb20APIs.aspx</link>
      <pubDate>Fri, 11 Jan 2008 19:16:43 GMT</pubDate>
      <description>&lt;p&gt;
The API's on the web have simplified in the recent past. There are more REST-centric
APIs in the public domain than ever before. Various services from Google and Amazon
are a good example. Apart from being RESTful these services have a simple XML based
response format. The xmlHttp operation, included in XmlOps, makes it easy to access
such services and represent their results as RSS, HTML, an Excel spreadsheet, or &lt;a href="http://blog.rssbus.com/CustomFeedFormattersFormattingFeedsYourWay.aspx"&gt;any
other output format supported by RSSBus&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Today we show an example of using xmlHttp to access the Amazon ECS service. The XmlOps
connector includes this script as a demo.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="COLOR: green"&gt; Amazon
Books Feed &lt;/span&gt;&lt;span style="COLOR: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:info&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;title&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;Amazon
Book Search&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: red"&gt;description&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;Use
the Amazon web-services API to search for a book.&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;input&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;name&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;query&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;req&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;true&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;desc&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;The
search text.&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: red"&gt;default&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;Harry
Potter&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:info&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&amp;nbsp;&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;!--&lt;/span&gt;&lt;span style="COLOR: green"&gt; Create the input URL &lt;/span&gt;&lt;span style="COLOR: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;http://webservices.amazon.com/onca/xml&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]?Service=AWSECommerceService&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]&lt;/span&gt;&lt;span style="COLOR: black"&gt;&amp;amp;SubscriptionId&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=0E8MHMPRK05NWG9AJ8G2&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]&lt;/span&gt;&lt;span style="COLOR: black"&gt;&amp;amp;Operation&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=ItemSearch&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]&lt;/span&gt;&lt;span style="COLOR: black"&gt;&amp;amp;SearchIndex&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=Books&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]&lt;/span&gt;&lt;span style="COLOR: black"&gt;&amp;amp;ResponseGroup&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=Large&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.url&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[in.url]&lt;/span&gt;&lt;span style="COLOR: black"&gt;&amp;amp;Title&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=[query
| urlencode ]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp;&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;
&lt;br&gt;
&amp;nbsp; Specify the item XPath. An item is pushed each time this path is&lt;/span&gt;&lt;span style="COLOR: green"&gt;
&lt;br&gt;
&amp;nbsp; encountered in the XML response.&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.item&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/ItemSearchResponse/Items/Item&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&amp;nbsp;&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="COLOR: green"&gt; Specify
the XPath of the attributes to be pushed in an item. &lt;/span&gt;&lt;span style="COLOR: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ASIN&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;DetailPageURL&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;MediumImage/URL&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/Title&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/Author&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/NumberOfPages&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/ISBN&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/PublicationDate&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/Publisher&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/ReadingLevel&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in.attr#&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;ItemAttributes/ListPrice/FormattedPrice&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp;&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;!--&lt;/span&gt;&lt;span style="COLOR: green"&gt; Use xmlHttp to get the results&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;op&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;xmlHttp&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;in&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;in&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;out&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;output&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;rss:link&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[DetailPageURL]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;rss:guid&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[ASIN]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;title&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[Title]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;a&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;href&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[DetailPageURL]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;img&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;src&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[URL]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;alt&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[Title]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;a&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Author: [Author | implode(',') ] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Pages: [NumberOfPages | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Price: [FormattedPrice | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; ISBN: [ISBN | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Publication Date: [PublicationDate | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Publisher: [Publisher | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; Reading Level: [ReadingLevel | def('Unknown')] &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;br&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;hr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
In this template we use xmlHttp to call the Amazon ECS service and parse the response.
We first create the request URL by appending query string parameters, and then specify
the "item" and "attr#" parameters to parse the response. XmlHttp uses the Xpath notation
to specify locations of interest in the response XML. The "item" xpath specifies the
xpath for an item (an item is produced in the resulting feed each time this xpath
is seen), and the "attr#" specify the attributes that should be present in the items
of the resulting feed. The names of the attributes in the item are the same as the
name of the XML elements in the response. This can be changed by using the map input
parameter. The xmlHttp operation also allows you to specify the HTTP method (GET,
PUT, POST and DELETE), pick a file to post, and specify HTTP headers, among other
things needed to use simple XML API's.
&lt;/p&gt;
&lt;hr&gt;
Downloads: &lt;a href="http://www.rssbus.com/download/download.aspx?file=modules/XmlOps.exe"&gt;XmlOps&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=e5472070-fe88-420b-986e-08e52a1c4ded" /&gt;</description>
      <category>Feeds;Tips</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=3a9e94e1-c809-43e7-a112-888e5968f957</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,3a9e94e1-c809-43e7-a112-888e5968f957.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="FLOAT: right" alt="jolt.jpg" hspace="7" src="http://blog.rssbus.com/content/binary/jolt.jpg" border="0" />We
are proud to announce that RSSBus Feed Server has been nominated as a finalist for
the upcoming 18th Annual Jolt Product Excellence Awards (<a href="http://www.joltawards.com">www.joltawards.com</a>)
in the ‘Web Development Tools’ category.   The Jolt awards is widely considered
the “Oscar's of the software industry”, recognizing only the most innovative, trend-making,
and ahead-of-the-curve software solutions.  The entire RSSBus team feels honored
to be considered for this highly prestigious industry award. 
<br />
 <br />
Stay tuned, winners will be announced March 5 at SDWest in Santa Clara, CA.
</p>
        <img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=3a9e94e1-c809-43e7-a112-888e5968f957" />
      </body>
      <title>RSSBus Named Jolt Award Finalist for 2007!</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,3a9e94e1-c809-43e7-a112-888e5968f957.aspx</guid>
      <link>http://blog.rssbus.com/RSSBusNamedJoltAwardFinalistFor2007.aspx</link>
      <pubDate>Fri, 04 Jan 2008 21:46:50 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="FLOAT: right" alt=jolt.jpg hspace=7 src="http://blog.rssbus.com/content/binary/jolt.jpg" border=0&gt;We
are proud to announce that RSSBus Feed Server has been nominated as a finalist for
the upcoming 18th Annual Jolt Product Excellence Awards (&lt;a href="http://www.joltawards.com"&gt;www.joltawards.com&lt;/a&gt;)
in the ‘Web Development Tools’ category.&amp;nbsp;&amp;nbsp; The Jolt awards is widely considered
the “Oscar's of the software industry”, recognizing only the most innovative, trend-making,
and ahead-of-the-curve software solutions.&amp;nbsp; The entire RSSBus team feels honored
to be considered for this highly prestigious industry award. 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Stay tuned, winners will be announced March 5 at SDWest in Santa Clara, CA.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=3a9e94e1-c809-43e7-a112-888e5968f957" /&gt;</description>
      <category>News</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=5224c784-8bc0-4a35-92c4-2a4f233c167a</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,5224c784-8bc0-4a35-92c4-2a4f233c167a.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">The RSSBus Admin Console makes it easy
to browse through connectors, try available operations, and create feeds using operations.
It has a wizard that walks you through the process of creating and publishing a feed
from an operation in just a few clicks. While the wizard helps you create a basic
feed, it doesn't come close to harnessing the capabilities of RSBScript. Using RSBScript
you can customize and change every aspect of the feed declaratively. In this article,
will discuss a few popular customizations. 
<p><span style="FONT-SIZE: 10pt"><strong>Changing the title and description of the feed: </strong></span></p><p>
The title and description of a feed are derived from the title and description defined
in the operation's metadata and can be easily modified in script. For example, the
following snippet would change the title and description in the channel of the feed. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:info</span><span style="COLOR: blue"></span><span style="COLOR: red">title</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">Customer
List</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">desc</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">List
of new customers</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><span style="FONT-SIZE: 10pt"><strong>Adding other attributes to the channel: </strong></span></p><p>
The channel of a feed is represented by the _meta item. To add an attribute to the
channel, simply add the attribute to _meta item of the feed. For this to be effective,
you need to add the attribute to _meta before the first item is pushed. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">_meta.rss:webmaster</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">me@my.com</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue"></span><span style="COLOR: red">op</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">fileListDir</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;/</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><span style="FONT-SIZE: 10pt"><strong>Changing the title and description of the feed
items: </strong></span></p><p>
The title and description of each item in a feed can be modified by using the <span style="FONT-SIZE: 10pt"><em>&lt;rsb:push&gt;</em></span> keyword.
The title can be modified by changing the title parameter of the push keyword, and
the description can be modified by changing its contents. Note that you can freely
use template substitution to compose the description of each item. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue"></span><span style="COLOR: red">title</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">[message]</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span><br />
  [paypal:payername] made a purchase for the amount of [paypal:netamount]<br /><span style="COLOR: black">  Content produced by </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">a</span><span style="COLOR: blue"></span><span style="COLOR: red">href</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">http://www.nsoftware.com</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black">RSSBus</span><span style="COLOR: blue">&lt;/</span><span style="COLOR: maroon">a</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">.<br />
&lt;/</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><span style="FONT-SIZE: 10pt"><strong>Removing an attribute from the feed items: </strong></span></p><p>
Normally, a feed generated by the Feed Creation Wizard will push all the attributes
produced by the underlying operation to the output stream. To remove attributes from
the feed simply unset them. For example, the following snippet removes the file:mtime
and file:atime from a file listing. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue"></span><span style="COLOR: red">op</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">fileListDir</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:unset</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">_.file:mtime</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:unset</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">_.file:atime</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;/</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><span style="FONT-SIZE: 10pt"><strong>Adding an attribute to the feed items: </strong></span></p><p>
To add an attribute to all the items of a feed simply add it to the item being worked
on. For example, the following snippet adds an author attribute to each item. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue"></span><span style="COLOR: red">op</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">sqliteQuery</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:set</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">_.author</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">me@my.com</span><span style="COLOR: black">"</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue">/&gt;</span><span style="COLOR: blue"><br />
&lt;/</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><span style="FONT-SIZE: 10pt"><strong>Pushing items that satisfy a certain criterion: </strong></span></p><p>
To filter items produced by an operation you can use any of the <em>conditional keywords</em> (rsb:select,
rsb:check, rsb:equals etc.) in RSBScript. For example, the following snippet will
create a feed containing just the <em>directories</em> and no <em>files</em>. 
</p><p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue"></span><span style="COLOR: red">op</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">fileListDir</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
  &lt;</span><span style="COLOR: maroon">rsb:equals</span><span style="COLOR: blue"></span><span style="COLOR: red">attr</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">file:isdir</span><span style="COLOR: black">"</span><span style="COLOR: blue"></span><span style="COLOR: red">value</span><span style="COLOR: blue">=</span><span style="COLOR: black">"</span><span style="COLOR: blue">true</span><span style="COLOR: black">"</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
    &lt;</span><span style="COLOR: maroon">rsb:push</span><span style="COLOR: blue"> /&gt;</span><span style="COLOR: blue"><br />
  &lt;/</span><span style="COLOR: maroon">rsb:equals</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue"><br />
&lt;/</span><span style="COLOR: maroon">rsb:call</span><span style="COLOR: blue">&gt;</span><span style="COLOR: black"></span></span></p><p><br />
While we have shown some of the more common customizations, there is more that
can be done using RSBScript. Please look at the <a href="http://rssbus.com/docs/userguide.pdf">Scripting</a> section
of the user's guide for more details. 
</p><img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=5224c784-8bc0-4a35-92c4-2a4f233c167a" /></body>
      <title>Customizing feeds</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,5224c784-8bc0-4a35-92c4-2a4f233c167a.aspx</guid>
      <link>http://blog.rssbus.com/CustomizingFeeds.aspx</link>
      <pubDate>Thu, 20 Dec 2007 22:49:13 GMT</pubDate>
      <description>The RSSBus Admin Console makes it easy to browse through connectors, try available operations, and create feeds using operations. It has a wizard that walks you through the process of creating and publishing a feed from an operation in just a few clicks. While the wizard helps you create a basic feed, it doesn't come close to harnessing the capabilities of RSBScript. Using RSBScript you can customize and change every aspect of the feed declaratively. In this article, will discuss a few popular customizations. 
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Changing the title and description of the feed: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
The title and description of a feed are derived from the title and description defined
in the operation's metadata and can be easily modified in script. For example, the
following snippet would change the title and description in the channel of the feed. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:info&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;title&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;Customer
List&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;desc&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;List
of new customers&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Adding other attributes to the channel: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
The channel of a feed is represented by the _meta item. To add an attribute to the
channel, simply add the attribute to _meta item of the feed. For this to be effective,
you need to add the attribute to _meta before the first item is pushed. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;_meta.rss:webmaster&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;me@my.com&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;op&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;fileListDir&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Changing the title and description of the feed
items: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
The title and description of each item in a feed can be modified by using the &lt;span style="FONT-SIZE: 10pt"&gt;&lt;em&gt;&amp;lt;rsb:push&amp;gt;&lt;/em&gt;&lt;/span&gt; keyword.
The title can be modified by changing the title parameter of the push keyword, and
the description can be modified by changing its contents. Note that you can freely
use template substitution to compose the description of each item. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;title&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;[message]&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;
&lt;br&gt;
&amp;nbsp; [paypal:payername] made a purchase for the amount of [paypal:netamount]&lt;br&gt;
&lt;span style="COLOR: black"&gt;&amp;nbsp; Content produced by &lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;a&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;href&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;http://www.nsoftware.com&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;RSSBus&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;a&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;.&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Removing an attribute from the feed items: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Normally, a feed generated by the Feed Creation Wizard will push all the attributes
produced by the underlying operation to the output stream. To remove attributes from
the feed simply unset them. For example, the following snippet removes the file:mtime
and file:atime from a file listing. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;op&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;fileListDir&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:unset&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;_.file:mtime&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:unset&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;_.file:atime&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Adding an attribute to the feed items: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
To add an attribute to all the items of a feed simply add it to the item being worked
on. For example, the following snippet adds an author attribute to each item. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;op&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;sqliteQuery&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:set&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;_.author&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;me@my.com&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;strong&gt;Pushing items that satisfy a certain criterion: &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
To filter items produced by an operation you can use any of the &lt;em&gt;conditional keywords&lt;/em&gt; (rsb:select,
rsb:check, rsb:equals etc.) in RSBScript. For example, the following snippet will
create a feed containing just the &lt;em&gt;directories&lt;/em&gt; and no &lt;em&gt;files&lt;/em&gt;. 
&lt;/p&gt;
&lt;p style="BACKGROUND: whitesmoke 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;op&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;fileListDir&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:equals&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;attr&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;file:isdir&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt; &lt;/span&gt;&lt;span style="COLOR: red"&gt;value&lt;/span&gt;&lt;span style="COLOR: blue"&gt;=&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;true&lt;/span&gt;&lt;span style="COLOR: black"&gt;"&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:push&lt;/span&gt;&lt;span style="COLOR: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:equals&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;
&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: maroon"&gt;rsb:call&lt;/span&gt;&lt;span style="COLOR: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
While we&amp;nbsp;have shown some of the more common customizations, there is more that
can be done using RSBScript. Please look at the &lt;a href="http://rssbus.com/docs/userguide.pdf"&gt;Scripting&lt;/a&gt; section
of the user's guide for more details. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=5224c784-8bc0-4a35-92c4-2a4f233c167a" /&gt;</description>
      <category>Feeds;Tips</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=e428f7a2-904d-4953-afb9-76889193ba5a</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,e428f7a2-904d-4953-afb9-76889193ba5a.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We are happy to announce that <a href="http://www.rssbus.com/products/rssbus/desktop.aspx">RSSBus
Desktop</a> V1 has received the official 'thumbs-up' from our QA team and is now available
for download.  RSSBus Desktop is a FREE, full-featured version of RSSBus designed
for individual Desktop use. 
</p>
        <p>
RSSBus Desktop enables users to harness the integration potential of RSSBus Connectors
directly from the Windows desktop.  With RSSBus Desktop, users can create and
configure local RSS feeds for individual consumption, aggregate and manipulate external
feeds, process and pipeline items, and much more.  In addition, RSSBus Desktop
provides an excellent platform for testing and configuring feeds before deployment
to RSSBus Feed Server.
</p>
        <p>
Once again we would like to thank the countless testers who have provided us with
their valuable feedback throughout the RSSBus Desktop Betas.  
</p>
        <p>
To download the RSSBus Desktop V1 release, go to - <a href="http://www.rssbus.com/download/">http://www.rssbus.com/download/</a>.  
<br /></p>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=e428f7a2-904d-4953-afb9-76889193ba5a" />
      </body>
      <title>RSSBus Desktop V1 Now Available!</title>
      <guid isPermaLink="false">http://blog.rssbus.com/PermaLink,guid,e428f7a2-904d-4953-afb9-76889193ba5a.aspx</guid>
      <link>http://blog.rssbus.com/RSSBusDesktopV1NowAvailable.aspx</link>
      <pubDate>Tue, 18 Dec 2007 20:48:16 GMT</pubDate>
      <description>&lt;p&gt;
We are happy to announce that&amp;nbsp;&lt;a href="http://www.rssbus.com/products/rssbus/desktop.aspx"&gt;RSSBus
Desktop&lt;/a&gt; V1 has received the official 'thumbs-up' from our QA team and is now available
for download.&amp;nbsp; RSSBus Desktop is a FREE, full-featured version of RSSBus designed
for individual Desktop use. 
&lt;/p&gt;
&lt;p&gt;
RSSBus Desktop enables users to harness the integration potential of RSSBus Connectors
directly from the Windows desktop.&amp;nbsp; With RSSBus Desktop, users can create and
configure local RSS feeds for individual consumption, aggregate and manipulate external
feeds, process and pipeline items, and much more.&amp;nbsp; In addition, RSSBus Desktop
provides an excellent platform for testing and configuring feeds before deployment
to RSSBus Feed Server.
&lt;/p&gt;
&lt;p&gt;
Once again we would like to thank the countless testers who have provided us with
their valuable feedback throughout the RSSBus Desktop Betas.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To download the RSSBus Desktop V1 release, go to -&amp;nbsp;&lt;a href="http://www.rssbus.com/download/"&gt;http://www.rssbus.com/download/&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.rssbus.com/aggbug.ashx?id=e428f7a2-904d-4953-afb9-76889193ba5a" /&gt;</description>
      <category>News</category>
    </item>
    <item>
      <trackback:ping>http://blog.rssbus.com/Trackback.aspx?guid=9a18a81d-f6bb-4685-bef9-4c7423f13fa7</trackback:ping>
      <pingback:server>http://blog.rssbus.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.rssbus.com/PermaLink,guid,9a18a81d-f6bb-4685-bef9-4c7423f13fa7.aspx</pingback:target>
      <dc:creator>RSSBus</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
RSSBus Feed Server uses RSBScript to map content from a <a href="http://www.rssbus.com/about/connectors.aspx">connector</a> to
a URL. For e.g. <a href="http://www.rssbus.com/connectors/info.aspx?con=nsoftware.RSSBus.FileOps.info">FileOps</a> is
a connector that provides operations to get data from a file system, but to transfer
this content over HTTP we write a simple script <em>fileList.rsb</em> as shown below. 
</p>
        <div style="background: white none repeat scroll 0% 50%; font-size: 10pt; color: black; font-family: Courier New; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
          <p style="margin: 0px;">
            <span style="color: blue;">&lt;</span>
            <span style="color: maroon;">rsb:set</span>
            <span style="color: blue;">
            </span>
            <span style="color: red;">attr</span>
            <span style="color: blue;">=</span>"<span style="color: blue;">mask</span>"<span style="color: blue;"></span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">*.rst</span>"<span style="color: blue;">/&gt;</span></p>
          <p style="margin: 0px;">
            <span style="color: blue;">&lt;</span>
            <span style="color: maroon;">rsb:call</span>
            <span style="color: blue;">
            </span>
            <span style="color: red;">op</span>
            <span style="color: blue;">=</span>"<span style="color: blue;">fileListDir</span>"<span style="color: blue;">&gt;</span></p>
          <p style="margin: 0px;">
            <span style="color: blue;">  &lt;</span>
            <span style="color: maroon;">rsb:push</span>
            <span style="color: blue;">/&gt;</span>
          </p>
          <p style="margin: 0px;">
            <span style="color: blue;">&lt;/</span>
            <span style="color: maroon;">rsb:call</span>
            <span style="color: blue;">&gt;</span>
          </p>
        </div>
        <br />
This allows us to access the content produced from fileListDir in the browser at the
URL <em>http://server/virtual_dir/fileList.rsb</em>. RSBScript not only glues the
HTTP request to the underlying connector, but also allows us to manipulate the items
produced by the connector. By making small changes to the script above, we can add/remove
attributes (rsb:set/rsb:unset keywords), chain items from one operation to another
(rsb:pipe keyword), or in general program with feeds produced from the connectors.
Today I will demonstrate how we can do similar things using Python. 
<p>
Although RSSBus Feed Server uses RSBScript by default, it can be extended with language
connectors that allow us to work in the language of our choice. PythonOps is one such
connector that allows us to write python code to manipulate items and feeds. 
</p><p>
The following script written in Python replicates the behavior of the script above. 
</p><div style="background: white none repeat scroll 0% 50%; font-size: 10pt; color: black; font-family: Courier New; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><p style="margin: 0px;"><span style="color: blue;">&lt;</span><span style="color: maroon;">rsb:script</span><span style="color: blue;"></span><span style="color: red;">language</span><span style="color: blue;">=</span>"<span style="color: blue;">python</span>"<span style="color: blue;">&gt;</span></p><p style="margin: 0px;">
  input = {“mask”:”*.rst”}
</p><p style="margin: 0px;">
  rsb.call(“fileListDir”,input)
</p><p style="margin: 0px;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">rsb:script</span><span style="color: blue;">&gt;</span></p></div><p>
The script above first establishes the language using the <em>language</em> parameter
of the rsb:script keyword. This is followed by two lines of python, one to create
a python dictionary object with the input parameters, and another to call the operation.
To communicate with the RSSBus Engine, the python language connector introduces the
"rsb" object in the script namespace. Let us look at the methods available in the
"rsb" object before we dissect the script.
</p><p><br /></p><div><table style="border-collapse: collapse;" border="0"><colgroup><col style="width: 319px;" /><col style="width: 319px;" /></colgroup><tbody valign="top"><tr><td style="border-style: solid none; border-color: rgb(79, 129, 189) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>Method</strong></span></p></td><td style="border-style: solid none; border-color: rgb(79, 129, 189) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>Description</strong></span></p></td></tr><tr style="background: rgb(211, 223, 238) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><td style="border-left: medium none; border-right: medium none; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>string get(name)</strong></span></p></td><td style="border-left: medium none; border-right: medium none; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);">The get method gets an input attribute. It
can be used to get the attributes specified from the URL line.</span></p></td></tr><tr><td style="padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>set(name, value)</strong></span></p></td><td style="padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);">The set method sets an attribute in the output
item.</span></p></td></tr><tr style="background: rgb(211, 223, 238) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><td style="border-left: medium none; border-right: medium none; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>push([title, description])</strong></span></p></td><td style="border-left: medium none; border-right: medium none; padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);">The push method pushes the current output item
to the response. Normally one pushes several items from the script to create a feed.</span></p></td></tr><tr><td style="padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>dict getitem()</strong></span></p></td><td style="padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);">The getitem method returns a python dictionary
containing all the input attributes.</span></p></td></tr><tr style="background: rgb(211, 223, 238) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><td style="border-left: medium none; border-right: medium none; border-bottom: 1pt solid rgb(79, 129, 189); padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);"><strong>list call(operation[,input[,push]])</strong></span></p></td><td style="border-left: medium none; border-right: medium none; border-bottom: 1pt solid rgb(79, 129, 189); padding-right: 7px; padding-left: 7px;"><p><span style="color: rgb(54, 95, 145);">The call method calls an installed operation
and returns a list of dictionaries. The list is the entire feed, each dictionary in
the list is an item, and keys in the dictionary are attributes in the item. </span></p><p><span style="color: rgb(54, 95, 145);">The optional parameter <em>input</em> is a
dictionary that can be used to specify input parameters. If it is not specified, or
if it is <em>None,</em> then the input parameters to the python script are transferred
to the called operation. </span></p><p><span style="color: rgb(54, 95, 145);">The optional parameter <em>push</em> is a boolean
used to specify if the items produced by the called operation are also simultaneously
pushed to the response. It is <em>True</em> by default.</span></p></td></tr></tbody></table></div><p>
 
</p><p>
From the description above we can see that this python script simply, sets input parameters
in a python dictionary, calls an operation, and allows the called operation to push
the items to the response. As a next step we will use the methods described above
to pipe the results from one operation to another operation. Here is a simple example
that calls <a href="http://www.rssbus.com/connectors/info.aspx?con=nsoftware.RSSBus.FileOps.info&amp;op=fileListDir"><em>fileListDir</em></a> and
sends an email (using <a href="http://www.rssbus.com/connectors/info.aspx?con=nsoftware.RSSBus.SmtpOps.info&amp;op=smtpSendMessage"><em>smtpSendMessage</em></a>)
for each item returned by it. 
</p><div style="background: white none repeat scroll 0% 50%; font-size: 10pt; color: black; font-family: Courier New; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><p style="margin: 0px;"><span style="color: blue;">&lt;!--</span><span style="color: green;"> Send an email
for each file in the directory. </span><span style="color: blue;">--&gt;</span></p><p style="margin: 0px;"><span style="color: blue;">&lt;</span><span style="color: maroon;">rsb:info</span><span style="color: blue;"></span><span style="color: red;">desc</span><span style="color: blue;">=</span>"<span style="color: blue;">Sends
an email for each file found in the current directory.</span>"<span style="color: blue;">&gt;</span></p><p style="margin: 0px;"><span style="color: blue;">  &lt;</span><span style="color: maroon;">input</span><span style="color: blue;"></span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">from</span>"<span style="color: blue;"></span><span style="color: red;">desc</span><span style="color: blue;">=</span>"<span style="color: blue;">From
address</span>"<span style="color: blue;"></span><span style="color: red;">default</span><span style="color: blue;">=</span>"<span style="color: blue;">demo@rssbus.com</span>"<span style="color: blue;">/&gt;</span></p><p style="margin: 0px;"><span style="color: blue;">  &lt;</span><span style="color: maroon;">input</span><span style="color: blue;"></span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">mask</span>"<span style="color: blue;"></span><span style="color: red;">desc</span><span style="color: blue;">=</span>"<span style="color: blue;">File
mask</span>"<span style="color: blue;"></span><span style="color: red;">default</span><span style="color: blue;">=</span>"<span style="color: blue;">*.*</span>"<span style="color: blue;">/&gt;</span></p><p style="margin: 0px;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">rsb:info</span><span style="color: blue;">&gt;</span></p><p style="margin: 0px;"><span style="color: blue;">&lt;</span><span style="color: maroon;">rsb:script</span><span style="color: blue;"></span><span style="color: red;">language</span><span style="color: blue;">=</span>"<span style="color: blue;">python</span>"<span style="color: blue;">&gt;</span><br /></p><p style="margin: 0px;"><br /></p><p style="margin: 0px;">
input = {<span style="color: maroon;">"mask"</span>:rsb.get(<span style="color: maroon;">"mask"</span>)}
</p><div style="background: white none repeat scroll 0% 50%; font-size: 10pt; color: black; font-family: Courier New; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><p style="margin: 0px;">
mail_from = rsb.get(<span style="color: maroon;">"from"</span>)
</p><p style="margin: 0px;">
mail_server = <span style="color: maroon;">"MY_MAIL_SERVER"</span></p><p style="margin: 0px;">
mail_to = <span style="color: maroon;">"MY_EMAIL_ID"</span></p><p style="margin: 0px;">
 
</p><p style="margin: 0px;">
fileListFeed = rsb.call(<span style="color: maroon;">"fileListDir"</span>, input,
False)
</p><p style="margin: 0px;">
 
</p><p style="margin: 0px;">
email_body = <span style="color: maroon;">'''</span></p><p style="margin: 0px;"><span style="color: maroon;">The file %(file:name)s was accessed on %(file:atime)s.</span></p><p style="margin: 0px;"><span style="color: maroon;">&lt;p&gt;</span></p><p style="margin: 0px;"><span style="color: maroon;">Other Details&lt;hr&gt;</span></p><p style="margin: 0px;"><span style="color: maroon;">Size : %(file:size)s&lt;br&gt;</span></p><p style="margin: 0px;"><span style="color: maroon;">Creation Time : %(file:ctime)s&lt;br&gt;</span></p><p style="margin: 0px;"><span style="color: maroon;">'''</span></p><p style="margin: 0px;">
 
</p><p style="margin: 0px;"><span style="color: b