<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>ideaton</title>
	<atom:link href="http://ideaton.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ideaton.wordpress.com</link>
	<description>Technology, social networking, projects and me</description>
	<lastBuildDate>Sun, 17 Oct 2010 20:40:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ideaton.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>ideaton</title>
		<link>http://ideaton.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ideaton.wordpress.com/osd.xml" title="ideaton" />
	<atom:link rel='hub' href='http://ideaton.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Composing URL’s in XSLT</title>
		<link>http://ideaton.wordpress.com/2010/09/28/composing-url%e2%80%99s-in-xslt/</link>
		<comments>http://ideaton.wordpress.com/2010/09/28/composing-url%e2%80%99s-in-xslt/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 20:11:51 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=98</guid>
		<description><![CDATA[Composing a complex URL can be very ugly in XSLT, using a very long formula of concatenations and encodings. E.g the REST URL for this YQL query: select * from html where url=&#8221;http://www.doorstroming.net/index.php/actua/49-qnationalisme-is-nationalismeq.html&#8221; and xpath=&#8217;//*[contains(concat( " ", @class, " " ), concat( " ", "MsoNormal", " " ))]&#8216; Is ugly as sin: http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.doorstroming.net%2Findex.php%2Factua%2F49-qnationalisme-is-nationalismeq.html%22%20and%0A%20%20%20%20%20%20xpath%3D&#8217;%2F%2F*%5Bcontains(concat(%20%22%20%22%2C%20%40class%2C%20%22%20%22%20)%2C%20concat(%20%22%20%22%2C%20%22MsoNormal%22%2C%20%22%20%22%20))%5D&#8217;&#038;diagnostics=true&#038;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys Two possible [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=98&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Composing a complex URL can be very ugly in XSLT, using a very long formula of concatenations and encodings.<br />
E.g the REST URL for this YQL query:</p>
<p>select * from html where url=&#8221;http://www.doorstroming.net/index.php/actua/49-qnationalisme-is-nationalismeq.html&#8221; and<br />
xpath=&#8217;//*[contains(concat( " ", @class, " " ), concat( " ", "MsoNormal", " " ))]&#8216;</p>
<p>Is ugly as sin:</p>
<p>http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.doorstroming.net%2Findex.php%2Factua%2F49-qnationalisme-is-nationalismeq.html%22%20and%0A%20%20%20%20%20%20xpath%3D&#8217;%2F%2F*%5Bcontains(concat(%20%22%20%22%2C%20%40class%2C%20%22%20%22%20)%2C%20concat(%20%22%20%22%2C%20%22MsoNormal%22%2C%20%22%20%22%20))%5D&#8217;&#038;diagnostics=true&#038;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys</p>
<p>Two possible improvements:</p>
<h2>Dedicated URL composition template</h2>
<p>Create a template that can be called like this:</p>
<p>&lt;xsl:call-template name=”url”&gt;<br />
&lt;xsl:with-param name=”decom”&gt;<br />
&lt;url&gt;<br />
&lt;base&gt;http://query.yahooapis.com/v1/public/yql&lt;/base&gt;<br />
&lt;query&gt;<br />
&lt;name&gt;q&lt;/name&gt;<br />
&lt;value&gt;&lt;xsl:value-of select=”$query”/&gt;&lt;/value&gt;<br />
&lt;/query&gt;<br />
&lt;query&gt;<br />
&lt;name&gt;diagnostics&lt;/name&gt;<br />
&lt;value&gt;false&lt;/value&gt;<br />
&lt;/query&gt;<br />
&lt;query&gt;<br />
&lt;name&gt;env&lt;/name&gt;<br />
&lt;value&gt;store://datatables.org/alltableswithkeys&lt;/name&gt;<br />
&lt;/query&gt;<br />
&lt;/url&gt;<br />
&lt;/xsl:with-param&gt;<br />
&lt;/xsl:call-template&gt;</p>
<p>I’m  not elaborating this template here. It should be quite straightforward,  but there may be a more generic and even more elegant solution:</p>
<h2>String Replacement Template</h2>
<p>Using the replace template that was created in the <a href="https://docs.google.com/document/edit?id=1J544HgrUv_ekFkQd0o-g1zQDD4ayaU1NDxcWyT6Lmvk&amp;hl=nl#">XML Translation</a> project.</p>
<p>&lt;xsl:call-template name=”replace”&gt;<br />
&lt;xsl:with-param name=”string”&gt;<br />
&lt;xsl:text&gt;http://query.yahooapis.com/v1/public/yql?q=$query&amp;diagnostics=true&amp;env=$env&lt;/xsl:text&gt;<br />
&lt;/xsl:with-param&gt;<br />
&lt;xsl:with-param name=”parameters”&gt;<br />
&lt;query&gt;&lt;xsl:value-of select=”encode-for-uri($query)”/&gt;&lt;/query&gt;<br />
&lt;env&gt;&lt;xsl:value-of select=”encode-for-uri(‘store://datatables.org/alltableswithkeys’)”/&gt;&lt;/env&gt;<br />
&lt;/xsl:with-param&gt;<br />
&lt;/xsl:call-template&gt;</p>
<p>This is the replace template:</p>
<p>&lt;xsl:template name=&#8221;replace&#8221;&gt;<br />
&lt;xsl:param name=&#8221;string&#8221;/&gt;<br />
&lt;xsl:param name=&#8221;parameters&#8221;/&gt;<br />
&lt;xsl:choose&gt;<br />
&lt;xsl:when test=&#8221;count($parameters/*) &amp;gt; 0&#8243;&gt;<br />
&lt;xsl:variable name=&#8221;string2&#8243;&gt;<br />
&lt;xsl:value-of select=&#8221;replace($string,concat(&#8216;\$&#8217;,name($parameters/*[1])),normalize-space($parameters/*[1]))&#8221;/&gt;<br />
&lt;/xsl:variable&gt;<br />
&lt;xsl:call-template name=&#8221;replace&#8221;&gt;<br />
&lt;xsl:with-param name=&#8221;string&#8221; select=&#8221;$string2&#8243;/&gt;<br />
&lt;xsl:with-param name=&#8221;parameters&#8221;&gt;<br />
&lt;xsl:copy-of select=&#8221;$parameters/*[position() &amp;gt; 1]&#8220;/&gt;<br />
&lt;/xsl:with-param&gt;<br />
&lt;/xsl:call-template&gt;<br />
&lt;/xsl:when&gt;<br />
&lt;xsl:otherwise&gt;<br />
&lt;xsl:value-of select=&#8221;$string&#8221;/&gt;<br />
&lt;/xsl:otherwise&gt;<br />
&lt;/xsl:choose&gt;<br />
&lt;/xsl:template&gt;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=98&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/09/28/composing-url%e2%80%99s-in-xslt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Vorstalarm</title>
		<link>http://ideaton.wordpress.com/2010/09/25/vorstalarm/</link>
		<comments>http://ideaton.wordpress.com/2010/09/25/vorstalarm/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 19:59:06 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=95</guid>
		<description><![CDATA[YQL Open Table Design use &#8220;http://github.com/vicmortelmans/yql-tables/raw/master/weather/weather.frost.xml&#8221;  as weather.frost;select * from weather.frost where location = &#8220;Ringsaker&#8221; (note: this location is somewhere in northern Scandinavia, where it&#8217;s more likely to freeze Google Weather API Google&#8217;s secret weather API: http://www.google.com/ig/api?weather=antwerpen YQL Open Table Execute var url = &#8220;http://www.google.com/ig/api?weather=$location&#8220;; url = url.replace(/\$location/,encode-uri(location)); xml = y.query(&#8220;select * from xml where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=95&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>YQL Open Table Design</h2>
<p><a id="d1j4" title="use &quot;http://github.com/vicmortelmans/yql-tables/raw/master/weather/weather.frost.xml&quot;  as weather.frost;select * from weather.frost where location = &quot;Ringsaker&quot;" href="http://y.ahoo.it/tMu7g5iv">use   &#8220;http://github.com/vicmortelmans/yql-tables/raw/master/weather/weather.frost.xml&#8221;   as weather.frost;select * from weather.frost where location =  &#8220;Ringsaker&#8221;</a></p>
<p>(note: this location is somewhere in northern Scandinavia, where it&#8217;s more likely to freeze <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Google Weather API</h2>
<p><a id="kuvo" title="Google's secret weather API" href="http://blog.programmableweb.com/2010/02/08/googles-secret-weather-api/">Google&#8217;s secret weather API</a>:</p>
<p><a id="eqji" title="http://www.google.com/ig/api?weather=antwerpen" href="http://www.google.com/ig/api?weather=antwerpen">http://www.google.com/ig/api?weather=antwerpen</a></p>
<h2>YQL Open Table Execute</h2>
<p>var url = &#8220;<a id="llp1" title="http://www.google.com/ig/api?weather=antwerpen" href="http://www.google.com/ig/api?weather=antwerpen">http://www.google.com/ig/api?weather=$location</a>&#8220;;<br />
url = url.replace(/\$location/,encode-uri(location));<br />
xml = y.query(&#8220;select * from xml where url=&#8217;<a id="imd2" title="http://www.google.com/ig/api?weather=antwerpen" href="http://www.google.com/ig/api?weather=antwerpen">http://www.google.com/ig/api?weather=antwerpen</a>&#8216;&#8221;).results;<br />
var seq = new String();<br />
for each (var lowtemp in xml..forecast_conditions.low.@data) {<br />
seq += (lowtemp &gt; 32 ? &#8216;+&#8217; : &#8216;-&#8217;);<br />
}<br />
seq = seq.substr(0,3);<br />
var output = new String();<br />
switch (seq) {<br />
case &#8220;+++&#8221;:<br />
output = &#8220;Aanhoudende dooi in $location&#8221;;<br />
break;<br />
case &#8220;++-&#8221;:<br />
output = &#8220;Overmorgen gaat het vriezen in $location&#8221;;<br />
break;<br />
case &#8220;+-+&#8221;:<br />
case &#8220;+&#8211;&#8221;:<br />
output = &#8220;Morgen gaat het vriezen in $location&#8221;;<br />
break;<br />
case &#8220;&#8212;&#8221;:<br />
case &#8220;-+-&#8221;:<br />
case &#8220;&#8211;+&#8221;:<br />
output = &#8220;Aanhoudende vorst in $location&#8221;;<br />
break;<br />
case &#8220;-++&#8221;:<br />
output = &#8220;Morgen dooit het in $location&#8221;;<br />
break;<br />
}<br />
output = output.replace(/\$location/,location);</p>
<h3>YQL XML open table returns no data when strange characters are in the XML</h3>
<p>When  running a query on the Google weather API for a city in France, very  often the returned XML contains strange characters, like e.g. in  &#8220;Avignon, Provence-Alpes-Côte d&#8217;Azur&#8221;. When querying for this xml  through YQL XML open table, <a id="hij7" title="nothing is returned" href="http://y.ahoo.it/kj3JVRT5">nothing is returned</a>!</p>
<p>The Google API is not providing encoding information:</p>
<p><span>&lt;?xml version=&#8221;1.0&#8243;?&gt;</span></p>
<p>Based on an octal dump, I&#8217;d say it&#8217;s UTF8:</p>
<p><span>0000300   s   -   C <strong>303 264</strong> t   e       d   &amp;   #   3   9   ;   A   z</span></p>
<h2>Yahoo weather YQL tables</h2>
<p><a id="r08y" title="select * from weather.woeid where w in (select woeid from geo.places where text=&quot;paris&quot;)" href="http://y.ahoo.it/McV5cloV">select * from weather.woeid where w in (select woeid from geo.places where text=&#8221;paris&#8221;)</a></p>
<p>Not very useful&#8230; only one day forecast, and e.g. for &#8216;Paris&#8217; returning all cities with the name.</p>
<p>Creating a pipe works better:</p>
<p><a id="etdb" title="http://pipes.yahoo.com/pipes/pipe.run?_id=4f9865c59104e4f105c331c5fbee4116&amp;_render=rss&amp;location=antwerpen" href="http://pipes.yahoo.com/pipes/pipe.run?_id=4f9865c59104e4f105c331c5fbee4116&amp;_render=rss&amp;location=antwerpen">http://pipes.yahoo.com/pipes/pipe.run?_id=4f9865c59104e4f105c331c5fbee4116&amp;_render=rss&amp;location=antwerpen</a></p>
<p>The <a id="b9b2" title="pipe" href="http://pipes.yahoo.com/vicmortelmans/weatherforecast">pipe</a> first gets the woeid for the location using the YQL woeid open table (see above), then loads the weather info from the <a id="afa-" title="Yahoo Weather RSS feed" href="http://www.google.be/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBUQFjAA&amp;url=http%3A%2F%2Fdeveloper.yahoo.com%2Fweather%2F&amp;ei=9QCeTPbyMsmMOLOy9JML&amp;usg=AFQjCNG3mtQFA3IbffyGwec1_PuCqSulVw&amp;sig2=o7nIzZzy737jWYMNJuf4zQ">Yahoo Weather RSS feed</a>.</p>
<p>The result is formatted html, so extracting the low temp values requires text parsing.</p>
<h2>World Weather Online API</h2>
<p>Registration  required, a simple API, but it won&#8217;t take &#8216;Antwerpen&#8217;, but only the  english name of this flemish city&#8230; not so nice!</p>
<p><a id="m98c" title="http://www.worldweatheronline.com/feed/weather.ashx?q=antwerp&amp;format=xml&amp;num_of_days=3&amp;key=81e058dc89161948102509" href="http://www.worldweatheronline.com/feed/weather.ashx?q=antwerp&amp;format=xml&amp;num_of_days=3&amp;key=81e058dc89161948102509">http://www.worldweatheronline.com/feed/weather.ashx?q=antwerp&amp;format=xml&amp;num_of_days=3&amp;key=<span>81e058dc89161948102509</span></a></p>
<p>So  let&#8217;s use the YQL geo.places open table for getting the coordinates of  our location, and feed this to the longitude/latitude World Weather  Online API:</p>
<p><a id="f-4i" title="http://www.worldweatheronline.com/feed/weather.ashx?q=51.22,4.40&amp;format=xml&amp;num_of_days=3&amp;key=81e058dc89161948102509" href="http://www.worldweatheronline.com/feed/weather.ashx?q=51.22,4.40&amp;format=xml&amp;num_of_days=3&amp;key=81e058dc89161948102509">http://www.worldweatheronline.com/feed/weather.ashx?q=51.22,4.40&amp;format=xml&amp;num_of_days=3&amp;key=81e058dc89161948102509</a></p>
<p>This operation chain is performed in this <a id="i0t4" title="pipe" href="http://pipes.yahoo.com/pipes/pipe.info?_id=70a400f5404b6a454caf850de3f62d33">pipe</a>.</p>
<p>This pipe, on it&#8217;s turn, can be used as source for YQL open table execute scripting, via the JSON open table query:</p>
<p><a id="d_wb" title="select * from json where url=&quot;http://pipes.yahoo.com/pipes/pipe.run?_id=70a400f5404b6a454caf850de3f62d33&amp;_render=json&amp;location=paris&quot; and itemPath=&quot;//tempMinC&quot;" href="http://y.ahoo.it/SAmCX52T">select  * from json where  url=&#8221;http://pipes.yahoo.com/pipes/pipe.run?_id=70a400f5404b6a454caf850de3f62d33&amp;_render=json&amp;location=<strong>paris</strong>&#8221; and itemPath=&#8221;//tempMinC&#8221;</a></p>
<p>The final weather.frost open table allows for an extra parameter: the target language.</p>
<p><a id="lwde" title="use &quot;http://github.com/vicmortelmans/yql-tables/raw/master/weather/weather.frost.xml&quot;  as weather.frost;select * from weather.frost where location = &quot;Antwerpen&quot; and language=&quot;nl&quot;" href="http://y.ahoo.it/mvglPr96">use   &#8220;http://github.com/vicmortelmans/yql-tables/raw/master/weather/weather.frost.xml&#8221;   as weather.frost;select * from weather.frost where location =  &#8220;Antwerpen&#8221; and language=&#8221;nl&#8221;</a></p>
<h2>Yahoo Pipe</h2>
<p>The wrapper pipe is needed to turn the YQL query output into RSS format.</p>
<p><a id="lyjo" title="http://pipes.yahoo.com/pipes/pipe.info?_id=145e579bd145fb0b01f9473f69b7e4c1" href="http://pipes.yahoo.com/pipes/pipe.info?_id=145e579bd145fb0b01f9473f69b7e4c1">http://pipes.yahoo.com/pipes/pipe.info?_id=145e579bd145fb0b01f9473f69b7e4c1</a></p>
<p>RSS:</p>
<p><a id="zrzh" title="http://pipes.yahoo.com/pipes/pipe.run?_id=145e579bd145fb0b01f9473f69b7e4c1&amp;_render=rss&amp;language=en&amp;location=Paris" href="http://pipes.yahoo.com/pipes/pipe.run?_id=145e579bd145fb0b01f9473f69b7e4c1&amp;_render=rss&amp;language=en&amp;location=Paris">http://pipes.yahoo.com/pipes/pipe.run?_id=145e579bd145fb0b01f9473f69b7e4c1&amp;_render=rss&amp;language=en&amp;location=Paris</a></p>
<p>encoded:</p>
<p>http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3D145e579bd145fb0b01f9473f69b7e4c1%26_render%3Drss%26language%3Den%26location%3DParis</p>
<h2>Todo</h2>
<p>It would be nice if the language could be automatically detected, based on the provided city name! (but what about Brussels?).</p>
<h2>Google Gadget</h2>
<p>The original Frost Alert <a id="z7bc" title="article" href="../2009/10/30/frost-alert/">article</a> refers to the Google <a id="s8nn" title="Webpage" href="https://sites.google.com/site/vorstalarm/">Webpage</a> where the Google gadget is published.</p>
<p>Managing the site is done in sites.google.com, but that&#8217;s OK.</p>
<p>Editing the gadget is done in the iGoogle Gadget Editor. This is the gadget code:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;Module&gt;<br />
&lt;ModulePrefs title=&#8221;Vorstalarm!&#8221; height=&#8221;401&#8243; width=&#8221;576&#8243;  author=&#8221;Vic Mortelmans&#8221; author_email=&#8221;vic.mortelmans@telenet.be&#8221;/&gt;<br />
&lt;Content type=&#8221;html&#8221;&gt;&lt;![CDATA[<br />
&lt;script type="text/javascript"&gt;<br />
htmlTemplate = '&lt;a  href="http://www.addtoany.com/subscribe?linkname=Vorstalarm!&amp;amp;linkurl=http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3F_id%3D145e579bd145fb0b01f9473f69b7e4c1%26_render%3Drss%26language%3Dnl%26location%3D_LOCATION_"  target="_blank"&gt;&lt;img  src="http://static.addtoany.com/buttons/subscribe_120_16.gif"  width="120" height="16" border="0" alt="Subscribe"/&gt;&lt;/a&gt;';<br />
function displayGetRSS () {<br />
var html = htmlTemplate.replace(/_LOCATION_/,document.getElementById('input').value);<br />
document.getElementById('content_div').innerHTML = html;<br />
}<br />
&lt;/script&gt;<br />
&lt;div&gt;<br />
&lt;img  src="http://farm4.static.flickr.com/3520/4058180670_ed979a4099_o.jpg"  width="576" height="401" alt="breughel_hunters" /&gt;<br />
&lt;div  style="position: relative; background: white; top: -350px; left: 193px;  width: 190px; height: 110px; padding: 10px" &gt;<br />
&lt;div style="text-align: center"&gt;<br />
&lt;form&gt;<br />
&lt;p&gt;<br />
&lt;b&gt;Woonplaats:&lt;/b&gt;<br />
&lt;br/&gt;<br />
&lt;input id="input" name="location" onkeyup="displayGetRSS()" type="text"/&gt;<br />
&lt;/p&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;div id="content_div" style="text-align: center"&gt;<br />
&lt;img src="http://static.addtoany.com/buttons/subscribe_120_16.gif"  width="120" height="16" border="0" alt="Subscribe"/&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
]]&gt;<br />
&lt;/Content&gt;<br />
&lt;/Module&gt;</p>
<p>Note that it seems the gagdet must be published (and re-inserted into the webpage) before changes take effect !?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=95&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/09/25/vorstalarm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Google docs spreadsheet as database</title>
		<link>http://ideaton.wordpress.com/2010/09/22/google-docs-spreadsheet-as-database/</link>
		<comments>http://ideaton.wordpress.com/2010/09/22/google-docs-spreadsheet-as-database/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 19:50:00 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=92</guid>
		<description><![CDATA[I have a spreadsheet containing a terminology list, translated in multiple languages: https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&#38;hl=nl Access via list-based feed Documentation: http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed Example: https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic(note: public visibility requires the spreadsheet to be published) (note: the key, I got when publishing the document) Result: &#60;feed&#62; &#60;title type=&#8216;text&#8217;&#62;Blad1&#60;/title&#62; &#60;entry&#62; &#60;title type=&#8216;text&#8217;&#62;christmas&#60;/title&#62; &#60;content type=&#8216;text&#8217;&#62;nl: kerstmis, fr: noel&#60;/content&#62; &#60;/entry&#62; &#60;title type=&#8216;text&#8217;&#62;easter&#60;/title&#62; &#60;content type=&#8216;text&#8217;&#62;nl: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=92&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">I have a spreadsheet containing a terminology list, translated in multiple languages:</span><br />
<a href="https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl</span></a><br />
<a href="https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl"></a></p>
<h5><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Access via list-based feed</span></h5>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Documentation:</span><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed<br class="kix-line-break" /></span></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Example:</span><br />
<a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic<br class="kix-line-break" /></span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">(note: public visibility requires the spreadsheet to be published)</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">(note: the key, I got when publishing the document)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Result:</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;feed&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Blad1</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">christmas</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">nl: kerstmis, fr: noel</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">easter</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">nl: pasen, fr: paques</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/feed&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">I have my data, but I’ll have to do some more regex-ing to parse the entries of the feed&#8230;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A specific row can be selected using a list feed structured query:</span><br />
<a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas</span></a><br />
<a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas"></a></p>
<h5><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Access via Google Visualization API Query Language<br class="kix-line-break" /></span></h5>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Documentation:</span><br />
<a href="http://blog.ouseful.info/2009/05/18/using-google-spreadsheets-as-a-databace-with-the-google-visualisation-api-query-language/"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://blog.ouseful.info/2009/05/18/using-google-spreadsheets-as-a-databace-with-the-google-visualisation-api-query-language/</span></a><br />
<a href="http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html</span></a><br />
<a href="http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Example:</span><br />
<a href="http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE</span></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Hmmm&#8230; smells like JSON</span><br />
<a href="https://docs.google.com/document/edit?id=1J544HgrUv_ekFkQd0o-g1zQDD4ayaU1NDxcWyT6Lmvk&amp;hl=nl"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;tq=select%20C%20where%20A%20%3D%20&#8242;easter&#8217;</span></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The  column identifier is the column index (‘A’, ‘B’, &#8230;) and not the  label. That’s a pity. Could be solved by having another table that makes  the relationship between the language names and the column indices, but  that’s not very clean.</span></p>
<h5><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Access via table feed</span></h5>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Documentation:</span><br />
<a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed</span></a><br />
<a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Example:</span><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/tables"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/tables</span></a><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/0"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">0<br class="kix-line-break" />Nothing there&#8230;? This is a bit silly. Seems that you can access the data using this very simple URL-based API, but to</span><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#CreatingTables"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">create a table</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">, you must use the DATA API and perform a POST request containing the table definition and  with</span><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#Authenticating"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">authenticated header</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">. </span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So setting a ‘range’ in the GUI is not sufficient (as I first assumed).</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Further study of the</span><a href="http://code.google.com/apis/spreadsheets/overview/#spreadsheets_data_api"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">Spreadsheets Data API</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> is needed.</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">If you are curious about how the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:italic;text-decoration:none;vertical-align:baseline;">Google Data APIs</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> work at the basic level using XML and HTTP, you can read the</span><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide_protocol.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">Protocol Guide</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">.  This guide details the requests and responses that the Data API servers  expect and return. To learn more about the structure of these requests  and responses, read the</span><a href="http://code.google.com/apis/spreadsheets/data/3.0/reference.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">Reference Guide</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">. This guide defines the API&#8217;s feed types, HTTP request parameters, HTTP response codes, and XML elements.</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">To make working with the API easier, we have a number of</span><a href="http://code.google.com/apis/spreadsheets/code.html#client_libraries"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">client libraries</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> that abstract the API into a language-specific object model. There are Developer&#8217;s Guides for</span><a href="http://code.google.com/apis/spreadsheets/developers_guide_java.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">Java</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">,</span><a href="http://code.google.com/apis/spreadsheets/developers_guide_dotnet.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">.NET</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">,</span><a href="http://code.google.com/apis/spreadsheets/developers_guide_php.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">PHP</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">, and</span><a href="http://code.google.com/apis/spreadsheets/developers_guide_python.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:underline;vertical-align:baseline;">Python</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;"> as well as sample code.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So I guess I’m left with these alternatives:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">building a small java application to create the table</span></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">start fiddling about with</span><a href="http://github.com/cloudhead/http-console"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http console</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> or curl-like tools to POST the request manually</span></li>
</ul>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Let’s not fiddle&#8230; And take a tour with the</span><a href="http://code.google.com/p/gdata-java-client/"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">Java client library</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Here  are examples:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><a href="http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/spreadsheet/worksheet/WorksheetDemo.java"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/spreadsheet/worksheet/WorksheetDemo.java</span></a></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java</span></a></li>
</ul>
<p><a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java"></a><br />
<a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Client library</span><a href="http://code.google.com/p/gdata-java-client/downloads/list"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">download</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> (installation is unzipping).</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">There’s also an</span><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">Eclipse plugin</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> provided, so I probably should not waste effort using NetBeans.</span></p>
<ol>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/wiki/Installation"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">Installation</span></a><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;"> of the plugin</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/wiki/TemplateDemo"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">TemplateDemo</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &#8211; creating a first project (targeting Spreadsheet rather than Documents)</span></li>
</ol>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Got  this error: “java.lang.NoClassDefFoundError:  com/google/common/collect/Maps”, because I also need the Google  Collections (a.k.a</span><a href="http://code.google.com/p/guava-libraries/downloads/detail?name=guava-r06.zip"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">Guava</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">).</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Installation is unzipping, and adding guava-r06.jar and guava-src-r06.zip to the project’s libraries.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now the program runs and gives me a list of my spreadsheets:</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Getting Spreadsheet entries&#8230;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> Terminology liturgical days</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> spiegelserre</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> krantenwaaier</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> Lexfeed defects</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> Kindermissaal</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> klapluik</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> multigrade</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Total Entries: 7</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A few modifications of the example in “</span><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#CreatingTables"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">create a table</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">” and some browsing through the client’s library</span><a href="http://code.google.com/intl/nl/apis/gdata/javadoc/index.html?com/google/gdata/data/spreadsheet/TableEntry.html"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">javadoc</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">// Create a new Spreadsheet service</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> SpreadsheetService myService = new SpreadsheetService(&#8220;My Application&#8221;);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> myService.setUserCredentials(args[0],args[1]);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> TableEntry tableEntry = new TableEntry();</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> FeedURLFactory factory = FeedURLFactory.getDefault();</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> URL tableFeedUrl = factory.getTableFeedUrl(&#8220;0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&#8221;);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">// Delete table if it already exists</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> TableFeed tableFeed = myService.getFeed(tableFeedUrl, TableFeed.class);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> for (TableEntry table : tableFeed.getEntries()) {</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> String currTitle = table.getTitle().getPlainText();</span></p>
<p style="margin-left:36pt;text-indent:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">if (currTitle.equals(&#8220;Terminology&#8221;)) {</span></p>
<p style="text-indent:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> table.delete();</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> break;</span></p>
<p style="text-indent:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> }</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;"> }</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> // Specify a basic table:</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableEntry.setTitle(new PlainTextConstruct(&#8220;Terminology&#8221;));</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableEntry.setWorksheet(new Worksheet(&#8220;Blad1&#8243;));</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableEntry.setHeader(new Header(1));</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> // Specify columns in the table, start row, number of rows.</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> Data tableData = new Data();</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableData.setNumberOfRows(</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">200</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> // Start row index cannot overlap with header row.</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableData.setStartIndex(2);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> // This table has only one column.</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableData.addColumn(new Column(&#8220;A&#8221;, &#8220;en&#8221;));</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableData.addColumn(new Column(&#8220;B&#8221;, &#8220;fr&#8221;));</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableData.addColumn(new Column(&#8220;C&#8221;, &#8220;nl&#8221;));</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> tableEntry.setData(tableData);</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> myService.insert(tableFeedUrl, tableEntry);</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">To  change the number of rows (if defined as ‘0’, there are no rows &#8211;  obviously?), I have to remove the table if it already exists (see bold  above).</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">When  retrieving the table feed, I must supply a table number, which seems to  increment when tables are deleted and added. So now I can retrieve the  data from:</span><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">1</span></a><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">But damn me! The records are still printed like “</span><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">fr: kerstmis, nl: noel, en: christmas</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”&#8230;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A specific record can be retrieved using a structured query:</span><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas</span></a><br />
<a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas"></a></p>
<h5><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Cell based feed</span></h5>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">First I need the</span><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#WorksheetFeeds"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">worksheets feed</span></a><br />
<a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#WorksheetFeeds"></a><br />
<a href="https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full</span></a><br />
<a href="https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">In the returned feed, this tag can be found:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;id&gt;https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full/od6&lt;/id&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The ‘od6’ is the ID of the worksheet, to be used in the</span><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#CellFeeds"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">cell based feed</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> URL:</span></p>
<p><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">od6</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">/private/full</span></a><br />
<a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The return contains individual cells:</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A1</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dinsdag 21 september 2010 21:36</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">en</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">B1</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dinsdag 21 september 2010 21:36</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">fr</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">C1</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dinsdag 21 september 2010 21:36</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nl</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Or as xml:</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;feed&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A1</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">en</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;en&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">en</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">B1</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">fr</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;fr&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">fr</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">C1</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nl</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;nl&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nl</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A2</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">christmas</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;christmas&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">christmas</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">kerstmis</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;kerstmis&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">kerstmis</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">C2</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">noel</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;noel&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">noel</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">A3</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">easter</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;1&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;easter&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">easter</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">B3</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pasen</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;2&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;pasen&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pasen</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;title</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">C3</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/title&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;content</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> type=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;text&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">paques</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/content&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;gs:cell</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> row=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> col=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8217;3&#8242;</span><span style="font-size:11pt;font-family:Arial;color:#774000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> inputValue=</span><span style="font-size:11pt;font-family:Arial;color:#660000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;paques&#8217;</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">paques</span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/gs:cell&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/entry&gt;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000088;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/feed&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This should be queriable by a clever XPath via YQL.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">feed/entry[gs:col/@col  = (&lt;column where first row is $language&gt;) and gs:row/@row = (row  where first column is $text)]/content</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">/feed/entry[gs:col/@col  = (/feed/entry[gs:cell/@row = ‘1’ and content = $language]/@col) and  gs:row/@row = (/feed/entry[gs:cell/@col = ‘A’ and  content=$text]/@row)]/content</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">But -alas!- there seems to be an issue. The XML table isn’t returning any data at all:</span></p>
<p><a href="http://y.ahoo.it/nA3CuIxZ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">select  * from xml where  url=&#8221;https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full&#8221;</span></a><br />
<a href="http://y.ahoo.it/nA3CuIxZ"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Even after putting https in front of the yql URL&#8230; (I suspect it’s because the google feed URL is on https)&#8230;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt; The</span><a href="http://developer.yahoo.net/forum/?showtopic=7088&amp;st=0&amp;gopid=19048&amp;cookiecheckonly=1#entry19048"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">explanation</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> is easy: this feed requires authentication&#8230;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&gt;&gt; Wait a minute&#8230; after reading</span><a href="http://tutorialzine.com/2010/08/dynamic-faq-jquery-yql-google-docs/"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">this</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">, I just did ‘Publish as webpage’ and selected ‘Atom’ and ‘Cells’ as options, and got this URL:</span></p>
<p><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic</span></a><br />
<a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This URL is public, so it works in YQL !!</span></p>
<p><a href="http://y.ahoo.it/0zFwF3Tw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">select  * from xml where  url=&#8221;https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic&#8221;</span></a><br />
<a href="http://y.ahoo.it/0zFwF3Tw"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">I can also get the data in CSV format (been reading</span><a href="http://tutorialzine.com/2010/08/dynamic-faq-jquery-yql-google-docs/"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">this</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and</span><a href="http://blancer.com/tutorials/61163/how-to-create-a-web-service-in-a-matter-of-minutes/"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">this</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">)</span></p>
<p><a href="https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv</span></a><br />
<a href="https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">And perform this query on the CSV open table,</span></p>
<p><a href="http://y.ahoo.it/a+AzGUHT"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">select  * from csv where  url=&#8221;https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv&#8221;</span></a><br />
<a href="http://y.ahoo.it/a+AzGUHT"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">which on it’s turn can be fed into the XML table&#8230;.</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">- or I should be able to add to the query </span><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">‘and columns = “en,fr,nl” and en=”christmas”’</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">, the column names list being whatever is appropriate for the queried Spreadsheet.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Or wait,</span></p>
<ol>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">publish the spreadsheet as CSV</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">turn the CSV into XML using YQL CSV open table<br class="kix-line-break" /></span><a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22https%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%3D0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE%26hl%3Dnl%26single%3Dtrue%26gid%3D0%26output%3Dcsv%22&amp;diagnostics=true"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">REST URL</span></a></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">query the XML using YQL XML table</span></li>
</ol>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The query:</span></p>
<p><a href="http://y.ahoo.it/O290n3P/"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">select * from xml where itemPath = &#8220;/query/results/row/*[../*[name(.) = name(../../row[1]/*[. = '</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">en</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">'])] = &#8216;</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">easter</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">&#8216; and name(.) = name(../../row[1]/*[. = '</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">nl</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">'])]&#8221;  and  url =  &#8220;http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22https%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:underline;vertical-align:baseline;">3D0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:underline;vertical-align:baseline;">%26hl%3Dnl%26single%3Dtrue%26gid%3D0%26output%3Dcsv%22&amp;diagnostics=false&#8221;</span></a><br />
<a href="http://y.ahoo.it/O290n3P/"></a><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This is equivalent to:</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">nl </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">from </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">key </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">where </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">en </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">= &#8216;</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">easter</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8216;</span></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden;">
<div id="header">Google docs spreadsheet as database</div>
<div id="contents"><!-- ol { margin: 0pt; padding: 0pt; }p { margin: 0pt; }.c5 { color: rgb(0, 0, 153); font-size: 11pt; text-decoration: underline; font-family: Arial; }.c0 { color: rgb(0, 0, 0); font-size: 8pt; font-family: Courier New; font-weight: bold; }.c7 { padding-left: 0pt; line-height: 1.15; direction: ltr; margin-left: 36pt; }.c9 { color: rgb(0, 0, 0); font-size: 8pt; font-family: Courier New; }.c16 { line-height: 1.15; text-indent: 36pt; direction: ltr; }.c10 { color: rgb(119, 64, 0); font-size: 11pt; font-family: Arial; }.c12 { color: rgb(0, 0, 0); font-size: 11pt; font-family: Courier New; }.c19 { color: rgb(0, 0, 0); font-size: 24pt; font-family: Arial; }.c3 { line-height: 1.15; text-indent: 0pt; direction: ltr; }.c1 { color: rgb(0, 0, 0); font-size: 11pt; font-family: Arial; }.c4 { color: rgb(0, 0, 136); font-size: 11pt; font-family: Arial; }.c13 { color: rgb(102, 0, 0); font-size: 11pt; font-family: Arial; }.c6 { padding-top: 11pt; padding-bottom: 2pt; }.c18 { padding-top: 24pt; padding-bottom: 6pt; }.c17 { margin-left: 18pt; }.c21 { list-style-type: disc; }.c2 { font-weight: bold; }.c11 { margin-left: 36pt; }.c20 { margin-left: 90pt; }.c8 { font-style: italic; }.c15 { list-style-type: decimal; }.c14 { background-color: rgb(255, 255, 255); } --></p>
<p class="c3 c18"><a name="h.l6fpwak131fm"></a><span class="c2 c19">Google docs spreadsheet as database</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3 c17"><span class="c5"><a href="https://docs.google.com/document/pub?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4#h.l6fpwak131fm">Google docs spreadsheet as database</a></span></p>
<p class="c3 c20"><span class="c5"><a href="https://docs.google.com/document/pub?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4#h.r86tp3y0tel">Access via list-based feed</a></span></p>
<p class="c3 c20"><span class="c5"><a href="https://docs.google.com/document/pub?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4#h.ni4po7euwufl">Access via Google Visualization API Query Language</a></span></p>
<p class="c3 c20"><span class="c5"><a href="https://docs.google.com/document/pub?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4#h.59hcfou0twot">Access via table feed</a></span></p>
<p class="c3 c20"><span class="c5"><a href="https://docs.google.com/document/pub?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4#h.g1d005whu03n">Cell based feed</a></span></p>
<p><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">I have a spreadsheet containing a terminology list, translated in multiple languages:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl">https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/ccc?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl"> </a></span></p>
<p class="c3 c6"><a name="h.r86tp3y0tel"></a><span class="c1 c2">Access via list-based feed</span></p>
<p class="c3"><span class="c1 c2"> </span></p>
<p class="c3"><span class="c1">Documentation:</span><span class="c1"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed"> </a></span><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed">http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#ListFeed</a></span></p>
<p class="c3"><span class="c1">Example:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic">https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic</a></span><span class="c1">(note: public visibility requires the spreadsheet to be published)</span></p>
<p class="c3"><span class="c1">(note: the key, I got when publishing the document)</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Result:</span></p>
<p class="c3 c11"><span class="c4">&lt;feed&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">Blad1</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span><span class="c1"> </span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1 c2">christmas</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1 c2">nl: kerstmis, fr: noel</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1 c2">easter</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1 c2">nl: pasen, fr: paques</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3 c11"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3 c11"><span class="c4">&lt;/feed&gt;</span></p>
<p class="c3"><span class="c4"> </span></p>
<p class="c3"><span class="c1">I have my data, but I’ll have to do some more regex-ing to parse the entries of the feed&#8230;</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">A specific row can be selected using a list feed structured query:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas">https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/list/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/1/public/basic?sq=en%3Dchristmas"> </a></span></p>
<p class="c3 c6"><a name="h.ni4po7euwufl"></a><span class="c1 c2">Access via Google Visualization API Query Language</span></p>
<p class="c3"><span class="c1">Documentation:</span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fblog.ouseful.info%2F2009%2F05%2F18%2Fusing-google-spreadsheets-as-a-databace-with-the-google-visualisation-api-query-language%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHtGTSdmO0LxT1FDR8o6VHcif1FzQ">http://blog.ouseful.info/2009/05/18/using-google-spreadsheets-as-a-databace-with-the-google-visualisation-api-query-language/</a></span></p>
<p class="c3"><span class="c5"><a href="http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html">http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html</a></span></p>
<p class="c3"><span class="c5"><a href="http://code.google.com/intl/nl/apis/visualization/documentation/querylanguage.html"> </a></span></p>
<p class="c3"><span class="c1">Example:</span></p>
<p class="c3"><span class="c5"><a href="http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE">http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE</a></span></p>
<p class="c3"><span class="c1">Hmmm&#8230; smells like JSON</span></p>
<p class="c3"><span class="c5"><a href="https://docs.google.com/document/edit?id=1J544HgrUv_ekFkQd0o-g1zQDD4ayaU1NDxcWyT6Lmvk&amp;hl=nl">http://spreadsheets.google.com/a/google.com/tq?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;tq=select%20C%20where%20A%20%3D%20&#8242;easter&#8217;</a></span></p>
<p class="c3"><span class="c1">The  column identifier is the column index (‘A’, ‘B’, &#8230;) and not the  label. That’s a pity. Could be solved by having another table that makes  the relationship between the language names and the column indices, but  that’s not very clean.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3 c6"><a name="h.59hcfou0twot"></a><span class="c1 c2">Access via table feed</span></p>
<p class="c3"><span class="c1">Documentation:</span></p>
<p class="c3"><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed">http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed</a></span></p>
<p class="c3"><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/reference.html#TableFeed"> </a></span></p>
<p class="c3"><span class="c1">Example:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/tables">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/tables</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/0">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/</a></span><span class="c1">0<br />
Nothing there&#8230;? This is a bit silly. Seems that you can access the data using this very simple URL-based API, but to</span><span class="c1"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#CreatingTables"> </a></span><span class="c5"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#CreatingTables">create a table</a></span><span class="c1">, you must use the DATA API and perform a POST request containing the table definition and  with</span><span class="c1"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#Authenticating"> </a></span><span class="c5"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#Authenticating">authenticated header</a></span><span class="c1">. </span></p>
<p class="c3"><span class="c1">So setting a ‘range’ in the GUI is not sufficient (as I first assumed).</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Further study of the</span><span class="c1"><a href="http://code.google.com/apis/spreadsheets/overview/#spreadsheets_data_api"> </a></span><span class="c5"><a href="http://code.google.com/apis/spreadsheets/overview/#spreadsheets_data_api">Spreadsheets Data API</a></span><span class="c1"> is needed.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3 c11"><span class="c1 c8">If you are curious about how the </span><span class="c1 c2 c8">Google Data APIs</span><span class="c1 c8"> work at the basic level using XML and HTTP, you can read the</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide_protocol.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide_protocol.html">Protocol Guide</a></span><span class="c1 c8">.  This guide details the requests and responses that the Data API servers  expect and return. To learn more about the structure of these requests  and responses, read the</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/data/3.0/reference.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/data/3.0/reference.html">Reference Guide</a></span><span class="c1 c8">. This guide defines the API&#8217;s feed types, HTTP request parameters, HTTP response codes, and XML elements.</span></p>
<p class="c3 c11"><span class="c1 c8">To make working with the API easier, we have a number of</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/code.html#client_libraries"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/code.html#client_libraries">client libraries</a></span><span class="c1 c8"> that abstract the API into a language-specific object model. There are Developer&#8217;s Guides for</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_java.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_java.html">Java</a></span><span class="c1 c8">,</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_dotnet.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_dotnet.html">.NET</a></span><span class="c1 c8">,</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_php.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_php.html">PHP</a></span><span class="c1 c8">, and</span><span class="c1 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_python.html"> </a></span><span class="c5 c8"><a href="http://code.google.com/apis/spreadsheets/developers_guide_python.html">Python</a></span><span class="c1 c8"> as well as sample code.</span></p>
<p class="c3"><span class="c1 c8"> </span></p>
<p class="c3"><span class="c1">So I guess I’m left with these alternatives:</span></p>
<ol class="c21">
<li class="c7"><span class="c1">building a small java application to create the table</span></li>
<li class="c7"><span class="c1">start fiddling about with</span><span class="c1"><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fcloudhead%2Fhttp-console&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHl7eWg1AQXRsBdhz9wUbMufgZ66A"> </a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fcloudhead%2Fhttp-console&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHl7eWg1AQXRsBdhz9wUbMufgZ66A">http console</a></span><span class="c1"> or curl-like tools to POST the request manually</span></li>
</ol>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Let’s not fiddle&#8230; And take a tour with the</span><span class="c1"><a href="http://code.google.com/p/gdata-java-client/"> </a></span><span class="c5"><a href="http://code.google.com/p/gdata-java-client/">Java client library</a></span><span class="c1">.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Here  are examples:</span></p>
<ol class="c21">
<li class="c7"><span class="c5"><a href="http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/spreadsheet/worksheet/WorksheetDemo.java">http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/spreadsheet/worksheet/WorksheetDemo.java</a></span></li>
<li class="c7"><span class="c5"><a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java">http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java</a></span></li>
</ol>
<p class="c3"><span class="c5"><a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java"> </a></span></p>
<p class="c3"><span class="c5"><a href="http://ga-api-java-samples.googlecode.com/svn/trunk/src/v1/SpreadsheetExporter.java"> </a></span></p>
<p class="c3"><span class="c1">Client library</span><span class="c1"><a href="http://code.google.com/p/gdata-java-client/downloads/list"> </a></span><span class="c5"><a href="http://code.google.com/p/gdata-java-client/downloads/list">download</a></span><span class="c1"> (installation is unzipping).</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">There’s also an</span><span class="c1"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/"> </a></span><span class="c5"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/">Eclipse plugin</a></span><span class="c1"> provided, so I probably should not waste effort using NetBeans.</span></p>
<ol class="c15">
<li class="c7"><span class="c5"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/wiki/Installation">Installation</a></span><span class="c5"> of the plugin</span></li>
<li class="c7"><span class="c5"><a href="http://code.google.com/p/gdata-java-client-eclipse-plugin/wiki/TemplateDemo">TemplateDemo</a></span><span class="c1"> &#8211; creating a first project (targeting Spreadsheet rather than Documents)</span></li>
</ol>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Got  this error: “java.lang.NoClassDefFoundError:  com/google/common/collect/Maps”, because I also need the Google  Collections (a.k.a</span><span class="c1"><a href="http://code.google.com/p/guava-libraries/downloads/detail?name=guava-r06.zip"> </a></span><span class="c5"><a href="http://code.google.com/p/guava-libraries/downloads/detail?name=guava-r06.zip">Guava</a></span><span class="c1">).</span></p>
<p class="c3"><span class="c1">Installation is unzipping, and adding guava-r06.jar and guava-src-r06.zip to the project’s libraries.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Now the program runs and gives me a list of my spreadsheets:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3 c11"><span class="c12">Getting Spreadsheet entries&#8230;</span></p>
<p class="c3 c11"><span class="c12"> Terminology liturgical days</span></p>
<p class="c3 c11"><span class="c12"> spiegelserre</span></p>
<p class="c3 c11"><span class="c12"> krantenwaaier</span></p>
<p class="c3 c11"><span class="c12"> Lexfeed defects</span></p>
<p class="c3 c11"><span class="c12"> Kindermissaal</span></p>
<p class="c3 c11"><span class="c12"> klapluik</span></p>
<p class="c3 c11"><span class="c12"> multigrade</span></p>
<p class="c3 c11"><span class="c12">Total Entries: 7</span></p>
<p class="c3"><span class="c12"> </span></p>
<p class="c3"><span class="c1">A few modifications of the example in “</span><span class="c5"><a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#CreatingTables">create a table</a></span><span class="c1">” and some browsing through the client’s library</span><span class="c1"><a href="http://code.google.com/intl/nl/apis/gdata/javadoc/index.html?com/google/gdata/data/spreadsheet/TableEntry.html"> </a></span><span class="c5"><a href="http://code.google.com/intl/nl/apis/gdata/javadoc/index.html?com/google/gdata/data/spreadsheet/TableEntry.html">javadoc</a></span><span class="c1">.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span><span class="c9">// Create a new Spreadsheet service</span></p>
<p class="c3"><span class="c9"> SpreadsheetService myService = new SpreadsheetService(&#8220;My Application&#8221;);</span></p>
<p class="c3"><span class="c9"> myService.setUserCredentials(args[0],args[1]);</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> TableEntry tableEntry = new TableEntry();</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> FeedURLFactory factory = FeedURLFactory.getDefault();</span></p>
<p class="c3"><span class="c9"> URL tableFeedUrl = factory.getTableFeedUrl(&#8220;0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&#8221;);</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> </span><span class="c0">// Delete table if it already exists</span></p>
<p class="c3"><span class="c0"> TableFeed tableFeed = myService.getFeed(tableFeedUrl, TableFeed.class);</span></p>
<p class="c3"><span class="c0"> for (TableEntry table : tableFeed.getEntries()) {</span></p>
<p class="c3"><span class="c0"> String currTitle = table.getTitle().getPlainText();</span></p>
<p class="c16 c11"><span class="c0">if (currTitle.equals(&#8220;Terminology&#8221;)) {</span></p>
<p class="c16"><span class="c0"> table.delete();</span></p>
<p class="c3"><span class="c0"> break;</span></p>
<p class="c16"><span class="c0"> }</span></p>
<p class="c3"><span class="c0"> }</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> // Specify a basic table:</span></p>
<p class="c3"><span class="c9"> tableEntry.setTitle(new PlainTextConstruct(&#8220;Terminology&#8221;));</span></p>
<p class="c3"><span class="c9"> tableEntry.setWorksheet(new Worksheet(&#8220;Blad1&#8243;));</span></p>
<p class="c3"><span class="c9"> tableEntry.setHeader(new Header(1));</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> // Specify columns in the table, start row, number of rows.</span></p>
<p class="c3"><span class="c9"> Data tableData = new Data();</span></p>
<p class="c3"><span class="c9"> tableData.setNumberOfRows(</span><span class="c0">200</span><span class="c9">);</span></p>
<p class="c3"><span class="c9"> // Start row index cannot overlap with header row.</span></p>
<p class="c3"><span class="c9"> tableData.setStartIndex(2);</span></p>
<p class="c3"><span class="c9"> // This table has only one column.</span></p>
<p class="c3"><span class="c9"> tableData.addColumn(new Column(&#8220;A&#8221;, &#8220;en&#8221;));</span></p>
<p class="c3"><span class="c9"> tableData.addColumn(new Column(&#8220;B&#8221;, &#8220;fr&#8221;));</span></p>
<p class="c3"><span class="c9"> tableData.addColumn(new Column(&#8220;C&#8221;, &#8220;nl&#8221;));</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c9"> tableEntry.setData(tableData);</span></p>
<p class="c3"><span class="c9"> myService.insert(tableFeedUrl, tableEntry);</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c1">To  change the number of rows (if defined as ‘0’, there are no rows &#8211;  obviously?), I have to remove the table if it already exists (see bold  above).</span></p>
<p class="c3"><span class="c1">When retrieving the  table feed, I must supply a table number, which seems to increment when  tables are deleted and added. So now I can retrieve the data from:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/</a></span><span class="c5 c2"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1">1</a></span></p>
<p class="c3"><span class="c5 c2"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1"> </a></span></p>
<p class="c3"><span class="c1">But damn me! The records are still printed like “</span><span class="c12">fr: kerstmis, nl: noel, en: christmas</span><span class="c1">”&#8230;</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">A specific record can be retrieved using a structured query:</span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas">https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas</a></span></p>
<p class="c3"><span class="c5 c2"><a href="https://spreadsheets.google.com/feeds/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/records/1?sq=en%3Dchristmas"> </a></span></p>
<p class="c3 c6"><a name="h.g1d005whu03n"></a><span class="c1 c2">Cell based feed</span></p>
<p class="c3"><span class="c1 c2"> </span></p>
<p class="c3"><span class="c1">First I need the</span><span class="c1"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#WorksheetFeeds"> </a></span><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#WorksheetFeeds">worksheets feed</a></span></p>
<p class="c3"><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#WorksheetFeeds"> </a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full">https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full"> </a></span></p>
<p class="c3"><span class="c1">In the returned feed, this tag can be found:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c9">&lt;id&gt;https://spreadsheets.google.com/feeds/worksheets/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/private/full/od6&lt;/id&gt;</span></p>
<p class="c3"><span class="c9"> </span></p>
<p class="c3"><span class="c1">The ‘od6’ is the ID of the worksheet, to be used in the</span><span class="c1"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#CellFeeds"> </a></span><span class="c5"><a href="http://code.google.com/intl/nl/apis/spreadsheets/data/3.0/developers_guide.html#CellFeeds">cell based feed</a></span><span class="c1"> URL:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full">https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/</a></span><span class="c5 c2"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full">od6</a></span><span class="c5"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full">/private/full</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full"> </a></span></p>
<p class="c3"><span class="c1">The return contains individual cells:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3 c11"><span class="c12">A1</span></p>
<p class="c3 c11"><span class="c12">dinsdag 21 september 2010 21:36</span></p>
<p class="c3 c11"><span class="c12">en</span></p>
<p class="c3 c11"><span class="c12">B1</span></p>
<p class="c3 c11"><span class="c12">dinsdag 21 september 2010 21:36</span></p>
<p class="c3 c11"><span class="c12">fr</span></p>
<p class="c3 c11"><span class="c12">C1</span></p>
<p class="c3 c11"><span class="c12">dinsdag 21 september 2010 21:36</span></p>
<p class="c3 c11"><span class="c12">nl</span></p>
<p class="c3"><span class="c12"> </span></p>
<p class="c3"><span class="c1">Or as xml:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c4">&lt;feed&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">A1</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">en</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;en&#8217;</span><span class="c4">&gt;</span><span class="c1">en</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">B1</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">fr</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;fr&#8217;</span><span class="c4">&gt;</span><span class="c1">fr</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">C1</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">nl</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;nl&#8217;</span><span class="c4">&gt;</span><span class="c1">nl</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">A2</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">christmas</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;christmas&#8217;</span><span class="c4">&gt;</span><span class="c1">christmas</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">kerstmis</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;kerstmis&#8217;</span><span class="c4">&gt;</span><span class="c1">kerstmis</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">C2</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">noel</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;noel&#8217;</span><span class="c4">&gt;</span><span class="c1">noel</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">A3</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">easter</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;1&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;easter&#8217;</span><span class="c4">&gt;</span><span class="c1">easter</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">B3</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">pasen</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;2&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;pasen&#8217;</span><span class="c4">&gt;</span><span class="c1">pasen</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;entry&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;title</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">C3</span><span class="c4">&lt;/title&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;content</span><span class="c10"> type=</span><span class="c13">&#8216;text&#8217;</span><span class="c4">&gt;</span><span class="c1">paques</span><span class="c4">&lt;/content&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;gs:cell</span><span class="c10"> row=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> col=</span><span class="c13">&#8217;3&#8242;</span><span class="c10"> inputValue=</span><span class="c13">&#8216;paques&#8217;</span><span class="c4">&gt;</span><span class="c1">paques</span><span class="c4">&lt;/gs:cell&gt;</span></p>
<p class="c3"><span class="c1"> </span><span class="c4">&lt;/entry&gt;</span></p>
<p class="c3"><span class="c4">&lt;/feed&gt;</span></p>
<p class="c3"><span class="c4"> </span></p>
<p class="c3"><span class="c1">This should be queriable by a clever XPath via YQL.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">feed/entry[gs:col/@col  = (&lt;column where first row is $language&gt;) and gs:row/@row = (row  where first column is $text)]/content</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">/feed/entry[gs:col/@col  = (/feed/entry[gs:cell/@row = ‘1’ and content = $language]/@col) and  gs:row/@row = (/feed/entry[gs:cell/@col = ‘A’ and  content=$text]/@row)]/content</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">But -alas!- there seems to be an issue. The XML table isn’t returning any data at all:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FnA3CuIxZ&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHoKFkW3TZYMO2fXEfo5Vpg4SYZDw">select  * from xml where  url=&#8221;https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/private/full&#8221;</a></span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FnA3CuIxZ&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHoKFkW3TZYMO2fXEfo5Vpg4SYZDw"> </a></span></p>
<p class="c3"><span class="c1">Even after putting https in front of the yql URL&#8230; (I suspect it’s because the google feed URL is on https)&#8230;</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">&gt; The</span><span class="c1"><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.net%2Fforum%2F%3Fshowtopic%3D7088%26st%3D0%26gopid%3D19048%26cookiecheckonly%3D1%23entry19048&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNH-9aTYsXLaQj2BBDoekiaaorSr_A"> </a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.net%2Fforum%2F%3Fshowtopic%3D7088%26st%3D0%26gopid%3D19048%26cookiecheckonly%3D1%23entry19048&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNH-9aTYsXLaQj2BBDoekiaaorSr_A">explanation</a></span><span class="c1"> is easy: this feed requires authentication&#8230;</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">&gt;&gt; Wait a minute&#8230; after reading</span><span class="c1"><a href="http://www.google.com/url?q=http%3A%2F%2Ftutorialzine.com%2F2010%2F08%2Fdynamic-faq-jquery-yql-google-docs%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEx0f2UrFbvBMVj9W3-d89PnUCOIQ"> </a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Ftutorialzine.com%2F2010%2F08%2Fdynamic-faq-jquery-yql-google-docs%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEx0f2UrFbvBMVj9W3-d89PnUCOIQ">this</a></span><span class="c1">, I just did ‘Publish as webpage’ and selected ‘Atom’ and ‘Cells’ as options, and got this URL:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic">https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic"> </a></span></p>
<p class="c3"><span class="c1">This URL is public, so it works in YQL !!</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2F0zFwF3Tw&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEWqheEl-oHc6Kps7vBR5KZqzop7Q">select  * from xml where  url=&#8221;https://spreadsheets.google.com/feeds/cells/0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE/od6/public/basic&#8221;</a></span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2F0zFwF3Tw&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEWqheEl-oHc6Kps7vBR5KZqzop7Q"> </a></span></p>
<p class="c3"><span class="c1">I can also get the data in CSV format (been reading</span><span class="c1"><a href="http://www.google.com/url?q=http%3A%2F%2Ftutorialzine.com%2F2010%2F08%2Fdynamic-faq-jquery-yql-google-docs%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEx0f2UrFbvBMVj9W3-d89PnUCOIQ"> </a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Ftutorialzine.com%2F2010%2F08%2Fdynamic-faq-jquery-yql-google-docs%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEx0f2UrFbvBMVj9W3-d89PnUCOIQ">this</a></span><span class="c1"> and</span><span class="c1"><a href="http://www.google.com/url?q=http%3A%2F%2Fblancer.com%2Ftutorials%2F61163%2Fhow-to-create-a-web-service-in-a-matter-of-minutes%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGfPKGuhV0TaZfutlBqORvID8qiwA"> </a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fblancer.com%2Ftutorials%2F61163%2Fhow-to-create-a-web-service-in-a-matter-of-minutes%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGfPKGuhV0TaZfutlBqORvID8qiwA">this</a></span><span class="c1">)</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv">https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv</a></span></p>
<p class="c3"><span class="c5"><a href="https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv"> </a></span></p>
<p class="c3"><span class="c1">And perform this query on the CSV open table,</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2Fa%2BAzGUHT&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHNX5jMPY8VQRHEI7b1DXM54IsB3Q">select  * from csv where  url=&#8221;https://spreadsheets.google.com/pub?key=0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE&amp;hl=nl&amp;single=true&amp;gid=0&amp;output=csv&#8221;</a></span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2Fa%2BAzGUHT&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHNX5jMPY8VQRHEI7b1DXM54IsB3Q"> </a></span></p>
<p class="c3"><span class="c1">which on it’s turn can be fed into the XML table&#8230;.</span></p>
<p class="c3"><span class="c1">- or I should be able to add to the query </span><span class="c12">‘and columns = “en,fr,nl” and en=”christmas”’</span><span class="c1">, the column names list being whatever is appropriate for the queried Spreadsheet.</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">Or wait,</span></p>
<ol class="c15">
<li class="c7"><span class="c1">publish the spreadsheet as CSV</span></li>
<li class="c7"><span class="c1">turn the CSV into XML using YQL CSV open table</span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fquery.yahooapis.com%2Fv1%2Fpublic%2Fyql%3Fq%3Dselect%2520*%2520from%2520csv%2520where%2520url%253D%2522https%253A%252F%252Fspreadsheets.google.com%252Fpub%253Fkey%253D0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE%2526hl%253Dnl%2526single%253Dtrue%2526gid%253D0%2526output%253Dcsv%2522%26diagnostics%3Dtrue&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFro-Zzwyjh_xVKUsTCHXQI6jZ0PA">REST URL</a></span></li>
<li class="c7"><span class="c1">query the XML using YQL XML table</span></li>
</ol>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">The query:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">select * from xml where itemPath = &#8220;/query/results/row/*[../*[name(.) = name(../../row[1]/*[. = '</a></span><span class="c5 c2"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">en</a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">'])] = &#8216;</a></span><span class="c5 c2"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">easter</a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">&#8216; and name(.) = name(../../row[1]/*[. = '</a></span><span class="c5 c2"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">nl</a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">'])]&#8221;  and  url =  &#8220;http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22https%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%</a></span><span class="c5 c2"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">3D0Au659FdpCliwdG44Q2htMWJEQUxVQ3NfRlZUdlZaalE</a></span><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw">%26hl%3Dnl%26single%3Dtrue%26gid%3D0%26output%3Dcsv%22&amp;diagnostics=false&#8221;</a></span></p>
<p class="c3"><span class="c5"><a href="http://www.google.com/url?q=http%3A%2F%2Fy.ahoo.it%2FO290n3P%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGHXwzBe-HsZha1-mVaruA7bJlEpw"> </a></span></p>
<p class="c3"><span class="c1">This is equivalent to:</span></p>
<p class="c3"><span class="c1"> </span></p>
<p class="c3"><span class="c1">select </span><span class="c1 c2">nl </span><span class="c1">from </span><span class="c1 c2">key </span><span class="c1">where </span><span class="c1 c2">en </span><span class="c1">= &#8216;</span><span class="c1 c2">easter</span><span class="c1">&#8216;</span></p>
<p class="c3"><span class="c1"> </span></p>
</div>
<div id="footer"><a title="Google docs spreadsheet as database" href="https://docs.google.com/document/edit?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4" target="_blank">Deze pagina bewerken</a> (als u toestemming heeft)<span class="dash">–</span>Gepubliceerd door <a title="Learn more about Google Docs" href="https://docs.google.com/" target="_blank">Google Documenten</a> <span class="dash">–</span><a href="https://docs.google.com/abuse?id=1652-FS-MOu08uGu1n67y47IkKI04GRF8Ks9d6TkQmE4">Misbruik rapporteren </a><span class="dash">–</span>Automatisch elke 5 minuten bijgewerkt</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=92&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/09/22/google-docs-spreadsheet-as-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Dapper clone</title>
		<link>http://ideaton.wordpress.com/2010/09/13/dapper-clone/</link>
		<comments>http://ideaton.wordpress.com/2010/09/13/dapper-clone/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 11:05:06 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=89</guid>
		<description><![CDATA[Using SelectorGadget and YQL community open table data.html.cssselect It’s fairly simple to mimick (some of) the behaviour of Dapper using these two tools. I’m into this, because I bumped into a Dapper disadvantage (well, in most cases it’s an advantage, but not in my particular case): it reduces the captured html fragments to plain text, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=89&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Using<a id="internal-source-marker_0.6817123606415804" href="http://www.selectorgadget.com/"> SelectorGadget</a> and <a href="http://y.ahoo.it/n2ACuASu">YQL community open table  data.html.cssselect </a></p>
<p>It’s fairly simple to mimick (some of) the  behaviour of Dapper using these two tools. I’m into this, because I  bumped into a Dapper disadvantage (well, in most cases it’s an  advantage, but not in my particular case): it reduces the captured html  fragments to plain text, which is good for a simple RSS update, but bad  if you want to retain formatting in captured text (e.g. italics may be  important and relevant for reflecting the content of a text).</p>
<p>Procedure:</p>
<ol>
<li>Install the <a id="internal-source-marker_0.6817123606415804" href="http://www.selectorgadget.com/">SelectorGadget</a> in your browser (it’s  a bookmarklet, so you can simply drag it into your bookmarks)</li>
<li>Open the webpage you  want to retrieve data from (or at least a very similar webpage)</li>
<li>Start the  SelectorGadget</li>
<li>Play around until  you’ve selected the right sections</li>
<li>Copy the displayed CSS  selector</li>
<li>Open the <a href="http://y.ahoo.it/OnKYdY9h">YQL console</a><br />
You’ll see a sample queryselect * from  data.html.cssselect where url=&#8221;http://www.doorstroming.net/index.php/actua/49-qnationalisme-is-nationalismeq.html&#8221; and css=&#8221;.MsoNormal&#8221;</li>
<li>Replace the value for  ‘css’ with the CSS selector generated by SelectorGadget</li>
<li>Replace the value for  ‘url’ with the URL of the page containing your data. This can be any  page with a similar structure to the page you’ve used originally.</li>
<li>Execute the query or  copy the REST URL</li>
</ol>
<p>The REST URL looks like this:<br />
<a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.html.cssselect%20where%20url%3D%22http%3A%2F%2Fwww.doorstroming.net%2Findex.php%2Factua%2F49-qnationalisme-is-nationalismeq.html%22%20and%20css%3D%22.MsoNormal%22&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys">http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.html.cssselect%20where%20url%3D%22http%3A%2F%2Fwww.doorstroming.net%2Findex.php%2Factua%2F49-qnationalisme-is-nationalismeq.html%22%20and%20css%3D%22.MsoNormal%22&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys</a><br />
By replacing the bold  sections with resp. the (url-encoded) URL of the website and the  applicable CSS Selector (also url-encoded!), you can apply any query on  any webpage.</p>
<p>Restrictions:</p>
<ul>
<li>for more complex  selections, SelectorGadget returns stuff like this<br />
:nth-child(3) , .article-meta<br />
It looks like the YQL table can’t cope with this  (probably the :nth-child() is something coming from a newer CSS standard  than supported by the YQL table)</li>
<li>Dapper can do lots  more, like capturing multiple fields, grouping, rendering RSS and other  output formats,&#8230;</li>
<li>Dapper has an  intuitive GUI</li>
</ul>
<h2>Using html open table</h2>
<p>To solve the first  restriction, using the html open table is a good solution.  SelectorGadget has a button for converting the CSS selector into an  XPath expression. The query then looks like this:<br />
<a href="http://y.ahoo.it/VutrXsNi">select * from html where url=&#8221;http://www.doorstroming.net/index.php/actua/49-qnationalisme-is-nationalismeq.html&#8221; and xpath=&#8217;//*[contains(concat(  " ", @class, " " ), concat( " ", "MsoNormal", " " ))]&#8216;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=89&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/09/13/dapper-clone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Serna plugin development</title>
		<link>http://ideaton.wordpress.com/2010/08/23/serna-plugin-development/</link>
		<comments>http://ideaton.wordpress.com/2010/08/23/serna-plugin-development/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 10:13:31 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=84</guid>
		<description><![CDATA[Problem I spent a couple of days figuring out some weird behaviour of Serna. When trying to develop my own plugin, it always rendered my content in editable text fields, rather than word-processor-like inline editable text. Looking at the FO-tree dump, it appeared to be rendered using the serna-extensions. Strip-down I decided to strip-down the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=84&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Problem</h2>
<p>I spent a couple of  days figuring out some weird behaviour of Serna. When trying to develop  my own plugin, it always rendered my content in editable text fields,  rather than word-processor-like inline editable text. Looking at the  FO-tree dump, it appeared to be rendered using the serna-extensions.</p>
<h2>Strip-down</h2>
<p>I decided to  strip-down the resume project, up to the level at which my own plugin  was built up, to see where the text fields would show up.</p>
<p>The trigger for  getting the editable text fields, is removing this line from the source  resume xml:</p>
<pre>&lt;!DOCTYPE resume PUBLIC "-//Sean Kelly//DTD Resume  1.5.1//EN" "http://xmlresume.sourceforge.net/dtd/resume.dtd" []&gt;</pre>
<p>A clue on the web?:</p>
<blockquote><p><em>It&#8217;s not a bug  per  se.  That final decision rests with the folks at Syntext.  Serna has the  capability to support entities (which XML Schema does not have).  In  order to do get that capability, Serna uses in-line DOCTYPE. </em></p>
<p><em><br />
That said, to process  those documents in the Toolkit one needs to do one of the following:</em></p>
<p><em> a) remove the  DOCTYPE from the XML docs; you get XSD validation</em></p>
<p><em> b) remove xmlxs:xsi  namespace and xsi:noNamespaceSchemaLocation attribute from the XML docs;   you get DTD validation</em></p>
<p><em> c) modify the DTDs in the Toolkit  to  include xmlxs:xsi namespace and xsi:noNamespaceSchemaLocation attribute;   you get DTD validation</em></p>
<p><em><br />
Changing the XML parser parameters will not  do anything useful since it is dependent on what appears in the XML  docs.  The easiest one to do ay this point would be to modify the DTDs  in the Toolkit.  That would allow you to process the documents without  having to modify each one them.</em></p></blockquote>
<p>Further stripping down of the resume example  shows how the DTD declares a FIXED xmlns-attribute to the top-level  element. Setting or unsetting this attribute would cause Serna to behave  differently regarding presentation of the element text in wysiwyg-view.  After removing the DTD alltogether, the xmlns-attribute doesn’t seem to  be needed at all.</p>
<h2>Bare-bone Serna plug-in</h2>
<p>This is the complete specification of a  bare-bone Serna plug-in that can be used for displaying, editing and  saving xml-files using a custom stylesheet.</p>
<h3>Serna Document  Template (sdt)</h3>
<pre>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
&lt;!DOCTYPE  t:document-template PUBLIC "-//Syntext//DTD Syntext Document Template  V2.0//EN" "doctemplate2.dtd"&gt;
&lt;t:document-template  xmlns:t="http://www.syntext.com/Extensions/DocTemplate-2.0"&gt;
 &lt;t:name&gt;Resume&lt;/t:name&gt;
 &lt;t:category&gt;XML  Resume&lt;/t:category&gt;
 &lt;t:xml-stylesheet&gt;$SERNA_TEMPLATE_DIR/xsl/<span style="text-decoration:underline;"><strong>resume.xsl</strong></span>&lt;/t:xml-stylesheet&gt;
 &lt;t:xml-schema&gt;$SERNA_TEMPLATE_DIR/xsd/<span style="text-decoration:underline;"><strong>resumex.xsd</strong></span>&lt;/t:xml-schema&gt;
 &lt;t:root-elements&gt;resume&lt;/t:root-elements&gt;
 &lt;t:category-pixmap&gt;resume_1_5_1_template&lt;/t:category-pixmap&gt;
 &lt;t:rootelem-guess-string&gt;resume&lt;/t:rootelem-guess-string&gt;
 &lt;t:document-skeleton&gt;
  &lt;t:name&gt;Resume&lt;/t:name&gt;
 &lt;/t:document-skeleton&gt;
&lt;/t:document-template&gt;</pre>
<h3>XML Schema (<span style="text-decoration:underline;"><strong>resumex.xsd</strong></span>)</h3>
<pre>&lt;?xml  version="1.0"?&gt;
&lt;xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
 &lt;xs:element  name="misc"&gt;
  &lt;xs:complexType&gt;
   &lt;xs:sequence&gt;
    &lt;xs:element ref="para"   maxOccurs="unbounded"/&gt;
   &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;
 &lt;/xs:element&gt;
 &lt;xs:element  name="para"&gt;
  &lt;xs:complexType mixed="true" /&gt;
 &lt;/xs:element&gt;
 &lt;xs:element  name="resume"&gt;
  &lt;xs:complexType&gt;
   &lt;xs:sequence&gt;
    &lt;xs:element ref="misc"   maxOccurs="unbounded"/&gt;
   &lt;/xs:sequence&gt;
  &lt;/xs:complexType&gt;
 &lt;/xs:element&gt;
&lt;/xs:schema&gt;</pre>
<h3>Stylesheet (<strong><span style="text-decoration:underline;">resume.xsl</span></strong>)</h3>
<pre>&lt;xsl:stylesheet  version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:fo="http://www.w3.org/1999/XSL/Format"&gt;

&lt;xsl:include  href="http://www.syntext.com/xslbricks-1.0/fo/fo.xsl"/&gt;

&lt;xsl:strip-space  elements="*"/&gt;

&lt;xsl:template name="heading"&gt;
 &lt;fo:block&gt;
  &lt;xsl:value-of  select="local-name(.)"/&gt;
 &lt;/fo:block&gt;
&lt;/xsl:template&gt;

&lt;xsl:template  match="para"&gt;
 &lt;fo:block&gt;
  &lt;xsl:call-template name = "bold.inline"/&gt;
 &lt;/fo:block&gt;
&lt;/xsl:template&gt;

&lt;xsl:template  match="misc"&gt;
 &lt;fo:block&gt;
 &lt;xsl:call-template name="heading"/&gt;
 &lt;xsl:apply-templates/&gt;
 &lt;/fo:block&gt;
&lt;/xsl:template&gt;

&lt;xsl:template  match="resume"&gt;
 &lt;xsl:call-template name="div"/&gt;
&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</pre>
<h3>Example XML</h3>
<pre>&lt;?xml version='1.0'  encoding='UTF-8'?&gt;
&lt;resume&gt;
 &lt;misc&gt;
  &lt;para&gt;User  Documentation developer&lt;/para&gt;
  &lt;para&gt;Strip-downer&lt;/para&gt;
 &lt;/misc&gt;
&lt;/resume&gt;
</pre>
<h2>Conclusion</h2>
<p>I seem to have solved  my problem, but I still don’t understand why Serna behaves the way it  does. Anyway, lesson learned (once again): if a stylesheet is behaving  strange, 9 to 10 a namespace is in your way!</p>
<h2 id="internal-source-marker_0.43974650616627275">[Update!] Conclusion 2</h2>
<p>I must have been  completely deceived&#8230;. now it seems more like that the element  definition in the xsd controls the behaviour of Serna:<br />
This definition  renders text fields:</p>
<pre>&lt;xs:element name="hyperlink"  type="xs:string" minOccurs="0" maxOccurs="1"/&gt;</pre>
<p>And omitting the  ‘type=”xs:string”’ renders wordprocessor-style inline text:</p>
<pre>&lt;xs:element  name="title" minOccurs="0" maxOccurs="1"/&gt;</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=84&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/08/23/serna-plugin-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Bibleref YQL Open Table</title>
		<link>http://ideaton.wordpress.com/2010/07/07/bibleref-yql-open-table/</link>
		<comments>http://ideaton.wordpress.com/2010/07/07/bibleref-yql-open-table/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 08:46:09 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=81</guid>
		<description><![CDATA[Bibleref is a new YQL Open Table that can parse complex bible references into a series of references to single verses in a standardized format. Check the documentation and the development notes for more details.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=81&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bibleref is a new <a href="http://developer.yahoo.com/yql/">YQL</a> <a href="http://developer.yahoo.com/yql/guide/yql-opentables-chapter.html">Open Table</a> that can parse complex bible references into a series of references to single  verses in a standardized format.</p>
<p>Check the <a href="http://docs.google.com/View?id=ddq89pzk_200fmmzdthf">documentation</a> and the <a href="http://docs.google.com/document/pub?id=1SCXglJ4ll-_xk9nd6BvjEI7EhVqvMtAjlYbyGEeO5F0">development notes</a> for more details.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=81&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/07/07/bibleref-yql-open-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Perl complex data structures</title>
		<link>http://ideaton.wordpress.com/2010/06/21/77/</link>
		<comments>http://ideaton.wordpress.com/2010/06/21/77/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 11:01:15 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=77</guid>
		<description><![CDATA[From the Perl Data Structures Cookbook: You want the get the contents of something that is only a reference: Perl doesn&#8217;t (ever) implicitly dereference your variables. If you want to get at the thing a reference is referring to, then you have to do this yourself using either prefix typing indicators, like ${$blah}, @{$blah}, @{$blah[$i]}, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=77&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From the <a href="http://search.cpan.org/~jesse/perl-5.12.1/pod/perldsc.pod">Perl Data Structures Cookbook</a>:</p>
<p>You want the get the contents of something that is only a reference:</p>
<p style="padding-left:30px;">Perl doesn&#8217;t (ever) implicitly dereference your variables. If you want  to get at the thing a reference is referring to, then you have to do  this yourself using either prefix typing indicators, like <code>${$blah}</code>,  <code>@{$blah}</code>, <code>@{$blah[$i]}</code>, or else postfix  pointer arrows, like <code>$a-&gt;[3]</code>, <code>$h-&gt;{fred}</code>,  or even <code>$ob-&gt;method()-&gt;[3]</code>.</p>
<p>You want to copy the contents of something that is only a reference:</p>
<p style="padding-left:30px;">In fact, except for passing arguments to functions, I seldom like to  see the gimme-a-reference operator (backslash) used much at all in code.  Instead, I advise beginners that they (and most of the rest of us)  should try to use the much more easily understood constructors <code>[]</code> and <code>{}</code> instead of relying upon lexical (or dynamic)  scoping and hidden reference-counting to do the right thing behind the  scenes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=77&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/06/21/77/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Deep data</title>
		<link>http://ideaton.wordpress.com/2010/06/02/68/</link>
		<comments>http://ideaton.wordpress.com/2010/06/02/68/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 19:33:25 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=68</guid>
		<description><![CDATA[Hi, here’s a report on a quest in persuit of harvesting data from multi-page websites. Handling single pages is trivial, using tools like Dapper or YQL. It’s becoming tricky when targeting data that’s stored on separate webpages, like e.g. this one: http://www.kerknet.be/zoek_parochie.php?allbisdom=1 The complete list of parishes is split over 7 separate pages, and I’d [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=68&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Hi,</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">here’s a report on a  quest in persuit of harvesting data from multi-page websites. Handling  single pages is trivial, using tools like Dapper or YQL. It’s becoming  tricky when targeting data that’s stored on separate webpages, like e.g.  this one:</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHmOMSFC5pcdxcrEDjmqlgwJ6LlYQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://www.kerknet.be/zoek_parochie.php?allbisdom=1</span></a></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The complete list of  parishes is split over 7 separate pages, and I’d like to have them all  together. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Before diving into the  series of attempts, first let’s distinct two typicaly situations:</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">1) split data; the  data is split over multiple pages and the pages are sequentially linked  together</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">2)  deep data; the main  page only contains links to the pages where the  actual data is available</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The above example is actually a combination  of both, with as special factor that each datapage contains a single  datarecord with different datafields.</span><br />
<img src="https://lh5.googleusercontent.com/H12Bp6Y7WRmioTCxO3v5lmZ55ooHJfrwTL07c7j94KqZUvyu-dTpyyc8Mj6M9HtiDWCeHJQ6jU2C1GpA_OulvgsxJ-9JWHUooSyPXKrcIiwynEtD" alt="" width="299px;" height="296px;" /></p>
<h2><span style="font-size:18pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Deep data</span></h2>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">First attempt: YQL (failed)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This YQL query fetches  the links on a single page:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select href from html where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243; and xpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a&#8221;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Results are like this:</span></p>
<p><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=24&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=21&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=22&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &#8230;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now I thought that the  result of this query could be used as subquery for providing the actual  dataquerey the list of pages using the “url in ()” statement, but  overlooked the fact that the retrieved urls are relative.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So this YQL query is  not working at all:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html where xpath = &#8220;//table[@class='contact  first']&#8221; and url in (select href from html where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243; and xpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a&#8221;)</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Second attempt: Dapper  + YQL (succes on deep data issue)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now I created a Dapper to extract the  links from the overview page. Luckily, Dapper returns full paths,  because it’s designed to render RSS feeds. The Dapper is configured such  that it returns xml data-items such as this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  dataType=&#8221;RawString&#8221; fieldName=&#8221;item&#8221;  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=65&#8243;  originalElement=&#8221;a&#8221; type=&#8221;field&#8221;&gt;SINT-ANNA&lt;/item&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The output of the  Dapper can now be queried by YQL:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select item.href from xml where url =  &#8220;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdeephtml&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8230; and submitted to  the “url in ()” statement:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html where xpath =  &#8220;//table[@class='contact first']&#8221; and url in (select item.href from xml  where url =  &#8220;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdeephtml&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This works, but it’s  not addressing the split data on the &#8216;next&#8217; list pages.</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Third attempt: Yahoo  Pipes + Dapper (success on split data issue)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">YQL cannot solve the  split data issue without creating a dedicated table and do some  javascript coding. This table might have an interface looking like this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from deepdata</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and urlxpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a/@href&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and nextxpath =  &#8220;//span[@class='pagelinks']/a[current()="Volgende"]/@href&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and xpath =  &#8220;//table[@class='contact first']&#8220;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Where:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">url</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is  the starting listing page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">urlxpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is  the xpath for fetching links to the datapages from the listing pages</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nextxpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is the xpath for  fetching the link to the next listing pages</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">xpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is the xpath for  extracting the data from the datapages</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">But as proof of  concept, my next attempt involves Yahoo Pipes. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Conceptually, for  retrieving each next page, a recursive setup would be ideal. A pipe  cannot be called recursively out of the box, but I found the answer </span><a href="http://www.google.com/url?q=http%3A%2F%2Fwww.nassauwalks.org%2FWhitePaper.pdf&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF0VEi_2VZd720vo0PFwpwgDoHdnQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">here</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">:</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">Note that, in Yahoo!  Pipes, recursion is performed by calling the pipe.run method of the  &lt;pipes.yahoo.com&gt; service with the unique ID of the Pipe,  parameters, and desired output format (e.g., JSON). Attempting to  include a Pipe as a subpipe to itself directly may work while using the  Pipes Editor, but does not when the Pipe is run outside the editor.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">And after (quite) a  while, here’s my pipe that returns the dapper result for the provided  page + the dapper results for the next pages, by calling itself  recursively. Note that it doesn’t do the actual deep data retrieval yet !</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.edit%3F_id%3D3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEaBBa8FABpONacqRwf0IhDQWrJ4Q"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://pipes.yahoo.com/pipes/pipe.edit?_id=3f5c8fc808ae3f27b3d6a5b578aa0da0</span></a></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">These are it’s input  fields:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">ListPage</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">url  for the list page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">ListDapper</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dapper  for parsing the list page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">NextDapper</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dapper  for retrieving the next page link</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">An example of running  the pipe for rendering as rss:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">http://pipes.yahoo.com/pipes/pipe.run?ListDapper=KerknetParochiesdeephtml&amp;ListPage=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;NextDapper=KerknetParochiesdeephtmlnext&amp;_id=3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;_render=rss</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Note that it takes  easily up to 2 minutes for the pipe to return! That’s for accessing 7  pages and returing a feed of ~300 items. What to expect when in the end  ~300 pages must be downloaded and analyzed !!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Some notes that I made  during debugging:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">for debugging, using  the pipe description page is giving better debug info than the  development screen!</span></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pipes are meant for  processing rss data; generic xml data is bound to give errors.</span></li>
</ul>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Fourth attempt: Yahoo  Pipes + Dapper + YQL (failed)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Combination of attempts 2 and 3 gives this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html  where xpath = &#8220;//table[@class='contact first']&#8221; and url in (select link  from feed where url =  &#8220;http://pipes.yahoo.com/pipes/pipe.run?ListDapper=KerknetParochiesdeephtml&amp;ListPage=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;NextDapper=KerknetParochiesdeephtmlnext&amp;_id=3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;_render=rss</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8220;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The main downside is  that YQL returns messy extracts from (as messy) html code. So either a  dedicated YQL table containing javascript code should be deviced, or  dapper is called to the rescue again. Prepare for really bad performance  this time!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Pipes won’t managing  the dapper output&#8230; it has a hard time managing the XML data outside  RSS context.</span></p>
<p><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Fifth  attempt: Yahoo Pipes + Dapper + YQL (success, but&#8230;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Attacking the problem  the other way around, the output of the messy YQL query can be submitted  to dapper for extracting the data in a proper format. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The rest url becomes  unreadible, but for sake of reference, it’s here:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">http://www.dapper.net/RunDapp?dappName=KerknetParochiespipe&amp;v=1&amp;applyToUrl=http%3A%2F%2Fquery.yahooapis.com%2Fv1%2Fpublic%2Fyql%3Fq%3Dselect%2520*%2520from%2520html%2520where%2520xpath%2520%3D%2520%2522%2F%2Ftable%255b%40class%3D%27contact%2520first%27%255d%2522%2520and%2520url%2520in%2520%28select%2520link%2520from%2520feed%2520where%2520url%2520%3D%2520%2522http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3FListDapper%3DKerknetParochiesdeephtml%26ListPage%3Dhttp%253A%252F%252Fwww.kerknet.be%252Fzoek_parochie.php%253Fallbisdom%253D1%26NextDapper%3DKerknetParochiesdeephtmlnext%26_id%3D3f5c8fc808ae3f27b3d6a5b578aa0da0%26_render%3Drss%2522%29%26diagnostics%3Dtrue</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The main problem for  debugging is that all these services use thorough caching and on top,  dapper is quite unreliable. So every once in a while, either you’ve made  a typo, or dapper is refusing service, and somewhere in the chain, you  end up with faulty data, which is cached and re-appearing on subsequent  calls. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Also, performance of  this setup is really bad. It could be used for offline data-retrieval,  but not for interactive systems. </span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Sixth attempt: Same ingredients in  different order</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So  I’ll use</span></p>
<ol>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Yahoo Pipes because it has a clear interface  to the end-user; my only fear is still that it won’t output custom xml  formats</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">YQL because it allows to program part of the logic and  because it’s very performant</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Dapper because it has  an excellent combination of logical data-extraction power and  user-friendlyness </span></li>
</ol>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The pipe will pick up the parameters and call  the YQL query. The query calls the dappers and collects the data.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Parameters:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">datadapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">listdapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">nextdapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">url</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">mandatory</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">optional</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">optional</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">mandatory</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">scenario:</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">single  page</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“split  data”</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“deep  data”</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“split  deep data”</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This is the “split deep data” scenario  query logic in pseudo-code:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">list = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=listdapper&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">url</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">foreach dataurl in  list {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">newdata = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=datadapper&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">dataurl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, newdata)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nexturl = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=nextdapper&amp;url=url”)</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">if next {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nextdata = yql(select *  from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">splitdeepdata</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where datadapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">datadapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and listdapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">listdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and nextdapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nextdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nexturl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, nextdata)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">return data</span></p>
<h4><span style="font-size:12pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Listdapper</span></h4>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select href, content  from xml where  url=&#8221;http://www.dapper.net/RunDapp?dappName=kerknetparochieslist&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;  and itemPath=&#8221;//item&#8221;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">returns</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=24&#8243;&gt;O.-L.-VROUW  TEN HEMEL OPGENOMEN&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=21&#8243;&gt;SINT-ANDRIES&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8230;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">note: the dapper must  be configured to return hyperlinks to the datapages as ‘item’ elements</span></p>
<h4><span style="font-size:12pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Datadapper</span></h4>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from xml  where itemPath=&#8221;//item&#8221; and  url=&#8221;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdata&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fparochie%2Fparochie_fiche.php%3FparochieID%3D24&amp;v=1&#8243;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">returns</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  groupName=&#8221;item&#8221; type=&#8221;group&#8221;&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;parochie dataType=&#8221;RawString&#8221;  fieldName=&#8221;parochie&#8221; originalElement=&#8221;th&#8221; type=&#8221;field&#8221;&gt;O.-L.-VROUW  TEN HEMEL OPGENOMEN, ANTWERPEN&lt;/parochie&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis  dataType=&#8221;RawString&#8221; fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;th&#8221;  type=&#8221;field&#8221;&gt;Za&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis dataType=&#8221;RawString&#8221;  fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;td&#8221; type=&#8221;field&#8221;&gt;16.00u  Eucharistieviering 17.00u Eucharistieviering&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis  dataType=&#8221;RawString&#8221; fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;th&#8221;  type=&#8221;field&#8221;&gt;Zo&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis dataType=&#8221;RawString&#8221;  fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;td&#8221; type=&#8221;field&#8221;&gt;09.00u  Eucharistieviering 10.30u Eucharistieviering 12.00u Eucharistieviering  17.00u Eucharistieviering&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;email  dataType=&#8221;RawString&#8221; fieldName=&#8221;email&#8221;  href=&#8221;http://www.kerknet.be/parochie/mailto.php?parochieID=24&amp;amp;mailto=92&#8243;  originalElement=&#8221;a&#8221; type=&#8221;field&#8221;&gt;E-mail&lt;/email&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;adres1  dataType=&#8221;RawString&#8221; fieldName=&#8221;adres1&#8243; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;Sint-Pieterstraat 1&lt;/adres1&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;adres2  dataType=&#8221;RawString&#8221; fieldName=&#8221;adres2&#8243; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;2000 Antwerpen&lt;/adres2&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;telefoon  dataType=&#8221;RawString&#8221; fieldName=&#8221;telefoon&#8221; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;Tel. 03/213.99.60&lt;/telefoon&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">note: the dapper must  be configured such that it groups elements in groups named ‘item’ !</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Trying it out (</span><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2F3b45e87a7b407fcf5bf9679505feb0a188bedbbf%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF515tUgGH_AtDQ150UeeOwc6kRDA"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">see the open  table logic on git</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">):</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">use  &#8216;http://github.com/vicmortelmans/yql-tables/raw/master/data/deepdapper.xml&#8217;  as deepdapper;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from deepdapper where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and datadapper =  &#8220;KerknetParochiesdata&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and nextdapper =  &#8220;KerknetParochiesdeephtmlnext&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and listdapper = &#8220;kerknetparochieslist&#8221;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Damn! bumping already  into YQL’s execution rate limits:</span></p>
<h4><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The following rate limits apply to  executions within Open Data Tables:</span></h4>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Item</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Limit</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Total Time for Execution</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">30  seconds</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Hey! it shouldn’t be giving an error  sounding like this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Exception: Circular table reference detected while using  &#8216;deepdapper&#8217;. This table was already used in the call stack deepdapper</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.net%2Fforum%2Findex.php%3Fshowtopic%3D5764&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGq_Q_05sjGwwVYWC1rnXFMH_znGw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">So, can’t I do  recursion in YQL?</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &#8211; No, I can’t. Drawing my conclusions:</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">My attempt was to  scrape data from paged html content. The table would scrape the content  from the first page (the one provided in the where clause), then go  looking for a &#8216;next page&#8217; hyperlink and call itself again providing the  next page url in the where clause, and return the collected data from  the first page bundled with the data collected by the recursive call.</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">I guess I may have to  look into the Open Tables paging functionality, or rewrite the algorithm  as a loop.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Maybe the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:#ffff00;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pagination</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> feature should bring a  fix? But I doubt. </span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Seventh attempt: rewriting the open table as a loop</span></h3>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">next = url</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">while next {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">list = yql(select *  from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">listdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">next</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">foreach dataurl in  list {</span></p>
<p style="margin-left:72pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">newdata = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">datadapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">dataurl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:72pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, newdata)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">next = yql(select * from xml where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nextdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">next</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">return data</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Still debugging, but  read something </span><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fyql%2Fguide%2Fyql-javascript-objects.html%23yql-execute-yqueryobject&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGtpTF5gLSmoEPGWX3QpcsDL1uvCw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">interesting</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">: </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">“Queries called from  y.query return and execute </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:italic;text-decoration:none;vertical-align:baseline;">instantly</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">. However, data is only returned when the  results property is accessed. This feature allows you to make multiple,  independent queries simultaneously that are then allowed to process  before being returned together when the results property is accessed.”</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> So  now I’m  collecting all dataqueries in an array and only at the end, reading out  the results&#8230; or maybe this isn’t so good at all, because now dapper  will be attacked with the queries almost instantanously.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">More debugging notes:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">When I </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">concatenate</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> two XML lists, it  seems to become a string !? The concatenation operator ‘+’ or ‘+=’  doesn’t work properly. Using the ‘appendChild’ method is safer!</span></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Seems like submitting  an </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">XML List as response.object </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">also isn’t a good idea. It likes  genuine XML objects better!</span></li>
</ul>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2F7ca1e2a0aecf5fa1a646cdea36fbd55f07a87d9d%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFBLRkNr4sFpbIStQ-AcJeiVBzKCA"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">Success</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">!!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now also making  nextdapper and listdapper optional, and adding nextcount to limit the  number of pages&#8230; and trying to find a better example than Kerknet for  the documentation.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">OK, </span><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2Fc9d83c707c8e28c7af107ee42e210b79e9504b1d%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHYpbmqp1VQMy8M77rXBqqiGkediw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">this</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> is ready for release. </span><a href="http://docs.google.com/View?id=ddq89pzk_199f54jdwcb"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">Documented</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and all!</span></p>
<p><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix A &#8211; filtering  results of YQL xml table</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">In the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">itemPath</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> parameter (not called ‘xpath’, as in the  html table!), you can filter elements from the raw xml. Filtering down  to attribute level won’t do anything.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">In the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">select</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> statement, you can  filter elements down the result tree. Use ‘.’-separated paths. </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Don’t mention the root  element!</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> You can also address attributes (without ‘@’ !). Use ‘content’ to refer  to the content of an element. List multiple path specifications to cover  more data. The structure of the result tree remains the same (this  means that attributes remain attributes!), but it’s limited to the  elements the match the specified path(s), their parents and children.</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix B &#8211; small Git  reminder notes</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git  add bible.xml</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git commit -m &#8220;adding open table containing bible passages&#8221;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git push origin master</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git pull</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">/*after editing  online*/</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix C &#8211; debugging  YQL tables</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Yahoo! </span><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fyql%2Fconsole%2F%3Fdebug%3Dtrue&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHt8cSgF1K1aVHRBd4nowVSMZVNkQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://developer.yahoo.com/yql/console/?</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;vertical-align:baseline;text-decoration:underline;">debug=true</span></a></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden;">
<h1 id="internal-source-marker_0.5711801226918986"><span style="font-size:24pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Deep data</span></h1>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Hi,</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">here’s a report on a  quest in persuit of harvesting data from multi-page websites. Handling  single pages is trivial, using tools like Dapper or YQL. It’s becoming  tricky when targeting data that’s stored on separate webpages, like e.g.  this one:</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHmOMSFC5pcdxcrEDjmqlgwJ6LlYQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://www.kerknet.be/zoek_parochie.php?allbisdom=1</span></a></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The complete list of  parishes is split over 7 separate pages, and I’d like to have them all  together. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Before diving into the  series of attempts, first let’s distinct two typicaly situations:</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">1) split data; the  data is split over multiple pages and the pages are sequentially linked  together</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">2)  deep data; the main  page only contains links to the pages where the  actual data is available</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The above example is actually a combination  of both, with as special factor that each datapage contains a single  datarecord with different datafields.</span><br />
<img src="https://lh5.googleusercontent.com/H12Bp6Y7WRmioTCxO3v5lmZ55ooHJfrwTL07c7j94KqZUvyu-dTpyyc8Mj6M9HtiDWCeHJQ6jU2C1GpA_OulvgsxJ-9JWHUooSyPXKrcIiwynEtD" alt="" width="299px;" height="296px;" /></p>
<h2><span style="font-size:18pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Deep data</span></h2>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">First attempt: YQL (failed)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This YQL query fetches  the links on a single page:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select href from html where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243; and xpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a&#8221;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Results are like this:</span></p>
<p><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=24&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=21&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;a  href=&#8221;/parochie/parochie_fiche.php?parochieID=22&#8243;/&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &#8230;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now I thought that the  result of this query could be used as subquery for providing the actual  dataquerey the list of pages using the “url in ()” statement, but  overlooked the fact that the retrieved urls are relative.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So this YQL query is  not working at all:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html where xpath = &#8220;//table[@class='contact  first']&#8221; and url in (select href from html where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243; and xpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a&#8221;)</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Second attempt: Dapper  + YQL (succes on deep data issue)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now I created a Dapper to extract the  links from the overview page. Luckily, Dapper returns full paths,  because it’s designed to render RSS feeds. The Dapper is configured such  that it returns xml data-items such as this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  dataType=&#8221;RawString&#8221; fieldName=&#8221;item&#8221;  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=65&#8243;  originalElement=&#8221;a&#8221; type=&#8221;field&#8221;&gt;SINT-ANNA&lt;/item&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The output of the  Dapper can now be queried by YQL:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select item.href from xml where url =  &#8220;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdeephtml&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8230; and submitted to  the “url in ()” statement:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html where xpath =  &#8220;//table[@class='contact first']&#8221; and url in (select item.href from xml  where url =  &#8220;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdeephtml&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This works, but it’s  not addressing the split data on the &#8216;next&#8217; list pages.</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Third attempt: Yahoo  Pipes + Dapper (success on split data issue)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">YQL cannot solve the  split data issue without creating a dedicated table and do some  javascript coding. This table might have an interface looking like this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from deepdata</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and urlxpath =  &#8220;//table[@class='parochies']/tr/td[@class='col3']/a/@href&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and nextxpath =  &#8220;//span[@class='pagelinks']/a[current()="Volgende"]/@href&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and xpath =  &#8220;//table[@class='contact first']&#8220;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Where:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">url</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is  the starting listing page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">urlxpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is  the xpath for fetching links to the datapages from the listing pages</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nextxpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is the xpath for  fetching the link to the next listing pages</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">xpath</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">is the xpath for  extracting the data from the datapages</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">But as proof of  concept, my next attempt involves Yahoo Pipes. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Conceptually, for  retrieving each next page, a recursive setup would be ideal. A pipe  cannot be called recursively out of the box, but I found the answer </span><a href="http://www.google.com/url?q=http%3A%2F%2Fwww.nassauwalks.org%2FWhitePaper.pdf&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF0VEi_2VZd720vo0PFwpwgDoHdnQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">here</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">:</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">Note that, in Yahoo!  Pipes, recursion is performed by calling the pipe.run method of the  &lt;pipes.yahoo.com&gt; service with the unique ID of the Pipe,  parameters, and desired output format (e.g., JSON). Attempting to  include a Pipe as a subpipe to itself directly may work while using the  Pipes Editor, but does not when the Pipe is run outside the editor.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">And after (quite) a  while, here’s my pipe that returns the dapper result for the provided  page + the dapper results for the next pages, by calling itself  recursively. Note that it doesn’t do the actual deep data retrieval yet !</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.edit%3F_id%3D3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEaBBa8FABpONacqRwf0IhDQWrJ4Q"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://pipes.yahoo.com/pipes/pipe.edit?_id=3f5c8fc808ae3f27b3d6a5b578aa0da0</span></a></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">These are it’s input  fields:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">ListPage</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">url  for the list page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">ListDapper</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dapper  for parsing the list page</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">NextDapper</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">dapper  for retrieving the next page link</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">An example of running  the pipe for rendering as rss:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">http://pipes.yahoo.com/pipes/pipe.run?ListDapper=KerknetParochiesdeephtml&amp;ListPage=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;NextDapper=KerknetParochiesdeephtmlnext&amp;_id=3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;_render=rss</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Note that it takes  easily up to 2 minutes for the pipe to return! That’s for accessing 7  pages and returing a feed of ~300 items. What to expect when in the end  ~300 pages must be downloaded and analyzed !!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Some notes that I made  during debugging:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">for debugging, using  the pipe description page is giving better debug info than the  development screen!</span></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pipes are meant for  processing rss data; generic xml data is bound to give errors.</span></li>
</ul>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Fourth attempt: Yahoo  Pipes + Dapper + YQL (failed)</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Combination of attempts 2 and 3 gives this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from html  where xpath = &#8220;//table[@class='contact first']&#8221; and url in (select link  from feed where url =  &#8220;http://pipes.yahoo.com/pipes/pipe.run?ListDapper=KerknetParochiesdeephtml&amp;ListPage=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&amp;NextDapper=KerknetParochiesdeephtmlnext&amp;_id=3f5c8fc808ae3f27b3d6a5b578aa0da0&amp;_render=rss</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8220;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The main downside is  that YQL returns messy extracts from (as messy) html code. So either a  dedicated YQL table containing javascript code should be deviced, or  dapper is called to the rescue again. Prepare for really bad performance  this time!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Pipes won’t managing  the dapper output&#8230; it has a hard time managing the XML data outside  RSS context.</span></p>
<p><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Fifth  attempt: Yahoo Pipes + Dapper + YQL (success, but&#8230;)</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Attacking the problem  the other way around, the output of the messy YQL query can be submitted  to dapper for extracting the data in a proper format. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The rest url becomes  unreadible, but for sake of reference, it’s here:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">http://www.dapper.net/RunDapp?dappName=KerknetParochiespipe&amp;v=1&amp;applyToUrl=http%3A%2F%2Fquery.yahooapis.com%2Fv1%2Fpublic%2Fyql%3Fq%3Dselect%2520*%2520from%2520html%2520where%2520xpath%2520%3D%2520%2522%2F%2Ftable%255b%40class%3D%27contact%2520first%27%255d%2522%2520and%2520url%2520in%2520%28select%2520link%2520from%2520feed%2520where%2520url%2520%3D%2520%2522http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3FListDapper%3DKerknetParochiesdeephtml%26ListPage%3Dhttp%253A%252F%252Fwww.kerknet.be%252Fzoek_parochie.php%253Fallbisdom%253D1%26NextDapper%3DKerknetParochiesdeephtmlnext%26_id%3D3f5c8fc808ae3f27b3d6a5b578aa0da0%26_render%3Drss%2522%29%26diagnostics%3Dtrue</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The main problem for  debugging is that all these services use thorough caching and on top,  dapper is quite unreliable. So every once in a while, either you’ve made  a typo, or dapper is refusing service, and somewhere in the chain, you  end up with faulty data, which is cached and re-appearing on subsequent  calls. </span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Also, performance of  this setup is really bad. It could be used for offline data-retrieval,  but not for interactive systems. </span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Sixth attempt: Same ingredients in  different order</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">So  I’ll use</span></p>
<ol>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Yahoo Pipes because it has a clear interface  to the end-user; my only fear is still that it won’t output custom xml  formats</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">YQL because it allows to program part of the logic and  because it’s very performant</span></li>
<li style="list-style-type:decimal;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Dapper because it has  an excellent combination of logical data-extraction power and  user-friendlyness </span></li>
</ol>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The pipe will pick up the parameters and call  the YQL query. The query calls the dappers and collects the data.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Parameters:</span></p>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">datadapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">listdapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">nextdapper</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">url</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">mandatory</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">optional</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">optional</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">mandatory</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">scenario:</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">single  page</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“split  data”</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“deep  data”</span></p>
</td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;">
<p style="text-align:center;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">X</span></p>
</td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">“split  deep data”</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">This is the “split deep data” scenario  query logic in pseudo-code:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">list = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=listdapper&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">url</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">foreach dataurl in  list {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">newdata = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=datadapper&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">dataurl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, newdata)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nexturl = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=nextdapper&amp;url=url”)</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">if next {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">nextdata = yql(select *  from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">splitdeepdata</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where datadapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">datadapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and listdapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">listdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and nextdapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nextdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nexturl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, nextdata)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">return data</span></p>
<h4><span style="font-size:12pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Listdapper</span></h4>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select href, content  from xml where  url=&#8221;http://www.dapper.net/RunDapp?dappName=kerknetparochieslist&amp;v=1&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fzoek_parochie.php%3Fallbisdom%3D1&#8243;  and itemPath=&#8221;//item&#8221;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">returns</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=24&#8243;&gt;O.-L.-VROUW  TEN HEMEL OPGENOMEN&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  href=&#8221;http://www.kerknet.be/parochie/parochie_fiche.php?parochieID=21&#8243;&gt;SINT-ANDRIES&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&#8230;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">note: the dapper must  be configured to return hyperlinks to the datapages as ‘item’ elements</span></p>
<h4><span style="font-size:12pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Datadapper</span></h4>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from xml  where itemPath=&#8221;//item&#8221; and  url=&#8221;http://www.dapper.net/RunDapp?dappName=KerknetParochiesdata&amp;applyToUrl=http%3A%2F%2Fwww.kerknet.be%2Fparochie%2Fparochie_fiche.php%3FparochieID%3D24&amp;v=1&#8243;</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">returns</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;results&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;item  groupName=&#8221;item&#8221; type=&#8221;group&#8221;&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;parochie dataType=&#8221;RawString&#8221;  fieldName=&#8221;parochie&#8221; originalElement=&#8221;th&#8221; type=&#8221;field&#8221;&gt;O.-L.-VROUW  TEN HEMEL OPGENOMEN, ANTWERPEN&lt;/parochie&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis  dataType=&#8221;RawString&#8221; fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;th&#8221;  type=&#8221;field&#8221;&gt;Za&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis dataType=&#8221;RawString&#8221;  fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;td&#8221; type=&#8221;field&#8221;&gt;16.00u  Eucharistieviering 17.00u Eucharistieviering&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis  dataType=&#8221;RawString&#8221; fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;th&#8221;  type=&#8221;field&#8221;&gt;Zo&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;heiligemis dataType=&#8221;RawString&#8221;  fieldName=&#8221;heiligemis&#8221; originalElement=&#8221;td&#8221; type=&#8221;field&#8221;&gt;09.00u  Eucharistieviering 10.30u Eucharistieviering 12.00u Eucharistieviering  17.00u Eucharistieviering&lt;/heiligemis&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;email  dataType=&#8221;RawString&#8221; fieldName=&#8221;email&#8221;  href=&#8221;http://www.kerknet.be/parochie/mailto.php?parochieID=24&amp;amp;mailto=92&#8243;  originalElement=&#8221;a&#8221; type=&#8221;field&#8221;&gt;E-mail&lt;/email&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;adres1  dataType=&#8221;RawString&#8221; fieldName=&#8221;adres1&#8243; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;Sint-Pieterstraat 1&lt;/adres1&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;adres2  dataType=&#8221;RawString&#8221; fieldName=&#8221;adres2&#8243; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;2000 Antwerpen&lt;/adres2&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;telefoon  dataType=&#8221;RawString&#8221; fieldName=&#8221;telefoon&#8221; originalElement=&#8221;span&#8221;  type=&#8221;field&#8221;&gt;Tel. 03/213.99.60&lt;/telefoon&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/item&gt;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&lt;/results&gt;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">note: the dapper must  be configured such that it groups elements in groups named ‘item’ !</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Trying it out (</span><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2F3b45e87a7b407fcf5bf9679505feb0a188bedbbf%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF515tUgGH_AtDQ150UeeOwc6kRDA"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">see the open  table logic on git</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">):</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">use  &#8216;http://github.com/vicmortelmans/yql-tables/raw/master/data/deepdapper.xml&#8217;  as deepdapper;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">select * from deepdapper where url =  &#8220;http://www.kerknet.be/zoek_parochie.php?allbisdom=1&#8243;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and datadapper =  &#8220;KerknetParochiesdata&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and nextdapper =  &#8220;KerknetParochiesdeephtmlnext&#8221;</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">and listdapper = &#8220;kerknetparochieslist&#8221;</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Damn! bumping already  into YQL’s execution rate limits:</span></p>
<h4><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The following rate limits apply to  executions within Open Data Tables:</span></h4>
<table style="border:medium none;border-collapse:collapse;">
<tbody>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Item</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Limit</span></td>
</tr>
<tr style="height:0;">
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Total Time for Execution</span></td>
<td style="border:1px dotted #aaaaaa;vertical-align:top;padding:7px;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">30  seconds</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Hey! it shouldn’t be giving an error  sounding like this:</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Exception: Circular table reference detected while using  &#8216;deepdapper&#8217;. This table was already used in the call stack deepdapper</span></p>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.net%2Fforum%2Findex.php%3Fshowtopic%3D5764&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGq_Q_05sjGwwVYWC1rnXFMH_znGw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">So, can’t I do  recursion in YQL?</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &#8211; No, I can’t. Drawing my conclusions:</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">My attempt was to  scrape data from paged html content. The table would scrape the content  from the first page (the one provided in the where clause), then go  looking for a &#8216;next page&#8217; hyperlink and call itself again providing the  next page url in the where clause, and return the collected data from  the first page bundled with the data collected by the recursive call.</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">I guess I may have to  look into the Open Tables paging functionality, or rewrite the algorithm  as a loop.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Maybe the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:#ffff00;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">pagination</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> feature should bring a  fix? But I doubt. </span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Seventh attempt: rewriting the open table as a loop</span></h3>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">next = url</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">while next {</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">list = yql(select *  from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">listdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">next</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">foreach dataurl in  list {</span></p>
<p style="margin-left:72pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">newdata = yql(select * from </span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">xml</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">datadapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">dataurl</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p style="margin-left:72pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">data =  concatenate(data, newdata)</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span></p>
<p style="margin-left:36pt;margin-top:0;margin-bottom:0;"><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">next = yql(select * from xml where  url=”http://www.dapper.net/dapper=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">nextdapper</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">&amp;url=</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">next</span><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">”)</span></p>
<p><span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">}</span><br />
<span style="font-size:8pt;font-family:Courier New;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">return data</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Still debugging, but  read something </span><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fyql%2Fguide%2Fyql-javascript-objects.html%23yql-execute-yqueryobject&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGtpTF5gLSmoEPGWX3QpcsDL1uvCw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">interesting</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">: </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">“Queries called from  y.query return and execute </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:italic;text-decoration:none;vertical-align:baseline;">instantly</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;text-decoration:none;vertical-align:baseline;">. However, data is only returned when the  results property is accessed. This feature allows you to make multiple,  independent queries simultaneously that are then allowed to process  before being returned together when the results property is accessed.”</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> So  now I’m  collecting all dataqueries in an array and only at the end, reading out  the results&#8230; or maybe this isn’t so good at all, because now dapper  will be attacked with the queries almost instantanously.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">More debugging notes:</span></p>
<ul>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">When I </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">concatenate</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> two XML lists, it  seems to become a string !? The concatenation operator ‘+’ or ‘+=’  doesn’t work properly. Using the ‘appendChild’ method is safer!</span></li>
<li style="list-style-type:disc;font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Seems like submitting  an </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">XML List as response.object </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">also isn’t a good idea. It likes  genuine XML objects better!</span></li>
</ul>
<p><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2F7ca1e2a0aecf5fa1a646cdea36fbd55f07a87d9d%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFBLRkNr4sFpbIStQ-AcJeiVBzKCA"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">Success</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">!!</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now also making  nextdapper and listdapper optional, and adding nextcount to limit the  number of pages&#8230; and trying to find a better example than Kerknet for  the documentation.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">OK, </span><a href="http://www.google.com/url?q=http%3A%2F%2Fgithub.com%2Fvicmortelmans%2Fyql-tables%2Fblob%2Fc9d83c707c8e28c7af107ee42e210b79e9504b1d%2Fdata%2Fdeepdapper.xml&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHYpbmqp1VQMy8M77rXBqqiGkediw"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">this</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> is ready for release. </span><a href="http://docs.google.com/View?id=ddq89pzk_199f54jdwcb"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">Documented</span></a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> and all!</span></p>
<p><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix A &#8211; filtering  results of YQL xml table</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">In the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">itemPath</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> parameter (not called ‘xpath’, as in the  html table!), you can filter elements from the raw xml. Filtering down  to attribute level won’t do anything.</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">In the </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">select</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> statement, you can  filter elements down the result tree. Use ‘.’-separated paths. </span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Don’t mention the root  element!</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> You can also address attributes (without ‘@’ !). Use ‘content’ to refer  to the content of an element. List multiple path specifications to cover  more data. The structure of the result tree remains the same (this  means that attributes remain attributes!), but it’s limited to the  elements the match the specified path(s), their parents and children.</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix B &#8211; small Git  reminder notes</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git  add bible.xml</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git commit -m &#8220;adding open table containing bible passages&#8221;</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git push origin master</span></p>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">git pull</span><br />
<span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">/*after editing  online*/</span></p>
<h3><span style="font-size:14pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:bold;font-style:normal;text-decoration:none;vertical-align:baseline;">Appendix C &#8211; debugging  YQL tables</span></h3>
<p><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Yahoo! </span><a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fyql%2Fconsole%2F%3Fdebug%3Dtrue&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNHt8cSgF1K1aVHRBd4nowVSMZVNkQ"><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:normal;font-style:normal;vertical-align:baseline;text-decoration:underline;">http://developer.yahoo.com/yql/console/?</span><span style="font-size:11pt;font-family:Arial;color:#000099;background-color:transparent;font-weight:bold;font-style:normal;vertical-align:baseline;text-decoration:underline;">debug=true</span></a></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=68&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/06/02/68/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>

		<media:content url="//lh5.googleusercontent.com/H12Bp6Y7WRmioTCxO3v5lmZ55ooHJfrwTL07c7j94KqZUvyu-dTpyyc8Mj6M9HtiDWCeHJQ6jU2C1GpA_OulvgsxJ-9JWHUooSyPXKrcIiwynEtD" medium="image" />

		<media:content url="//lh5.googleusercontent.com/H12Bp6Y7WRmioTCxO3v5lmZ55ooHJfrwTL07c7j94KqZUvyu-dTpyyc8Mj6M9HtiDWCeHJQ6jU2C1GpA_OulvgsxJ-9JWHUooSyPXKrcIiwynEtD" medium="image" />
	</item>
		<item>
		<title>Signaturize &#8211; or how to get on with PDF::API2</title>
		<link>http://ideaton.wordpress.com/2010/03/16/signaturize-or-how-to-get-on-with-pdfapi2/</link>
		<comments>http://ideaton.wordpress.com/2010/03/16/signaturize-or-how-to-get-on-with-pdfapi2/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 07:19:44 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=65</guid>
		<description><![CDATA[Signaturize is a perl script that processes a PDF file. The output is a new PDF file that contains the pages of the original PDF, put in a layout that allows the printed pages to be folded such that signatures (booklets, or &#8216;katernen&#8217; in dutch) are created, as they are used for bookbinding. I wrote [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=65&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/vicmortelmans/Signaturize">Signaturize </a>is a perl script that processes a PDF file. The output is a new PDF file that contains the pages of the original PDF, put in a layout that allows the printed pages to be folded such that signatures (booklets, or &#8216;katernen&#8217; in dutch) are created, as they are used for bookbinding.</p>
<p>I wrote a similar program before, in C, making calls to the &#8216;pstools&#8217; command-line toolset. That wasn&#8217;t very flexible and not portable at all. The only alternative program on the web is <a href="http://www.quantumelephant.co.uk/bookbinder/bookbinder.html">Quantum Elephant&#8217;s Bookbinder</a>. I couldn&#8217;t get it to work on some PDF&#8217;s, but it has as a great advantage that it&#8217;s relatively easy to install and that it has a GUI (how many bookbinders will know how to install Perl and run a command-line script?).</p>
<p>Perl has a couple of PDF libraries at CPAN to work with PDF. Signaturize uses PDF::API2. The documentation for this library is very, very minimalistic, so I hope that by making signaturize public, it can be of use for anyone who&#8217;s going to use PDF::API2, even more than for people with a passion for bookbinding <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>The PDF::API2 api is very simple, but one have to know the magic sequence of commands to do the trick&#8230;</p>
<p>First, create a new pdf object and populate it with some pages. The page size must be defined for each separate page.</p>
<pre style="padding-left:30px;">my $outPdf = PDF::API2-&gt;new;</pre>
<pre style="padding-left:30px;">my @outPage;</pre>
<pre style="padding-left:30px;">for ($nr=1; $nr&lt;=$outPages; $nr++) {</pre>
<pre style="padding-left:30px;"> $outPage[$nr] = $outPdf-&gt;page;</pre>
<pre style="padding-left:30px;"> $outPage[$nr]-&gt;mediabox($outXMediaSize, $outYMediaSize);</pre>
<pre style="padding-left:30px;">}</pre>
<p>Now you can start to work. For example, drawing a dashed line on one of the pages:</p>
<pre style="padding-left:30px;">my $line = $outPage[$nr]-&gt;gfx;</pre>
<pre style="padding-left:30px;">$line-&gt;save;</pre>
<pre style="padding-left:30px;">$line-&gt;linedash((5,15));</pre>
<pre style="padding-left:30px;">$line-&gt;move($startx,$starty);</pre>
<pre style="padding-left:30px;">$line-&gt;line($stopx,$stopy);</pre>
<pre style="padding-left:30px;">$line-&gt;stroke;</pre>
<pre style="padding-left:30px;">$line-&gt;restore;</pre>
<p>Or you can write some text:</p>
<pre style="padding-left:30px;">my %font = (</pre>
<pre style="padding-left:30px;"> Helvetica =&gt; {</pre>
<pre style="padding-left:30px;"> Bold =&gt; $outPdf-&gt;corefont( 'Helvetica-Bold', -encoding =&gt; 'latin1' ),</pre>
<pre style="padding-left:30px;"> Roman =&gt; $outPdf-&gt;corefont( 'Helvetica', -encoding =&gt; 'latin1' ),</pre>
<pre style="padding-left:30px;"> Italic =&gt; $outPdf-&gt;corefont( 'Helvetica-Oblique', -encoding =&gt; 'latin1' ),</pre>
<pre style="padding-left:30px;"> },</pre>
<pre style="padding-left:30px;">);</pre>
<pre style="padding-left:30px;">my $text = $outPage[$nr]-&gt;text;</pre>
<pre style="padding-left:30px;">$text-&gt;save;</pre>
<pre style="padding-left:30px;">$text-&gt;font($font{'Helvetica'}{'Roman'}, 0.2/cm );</pre>
<pre style="padding-left:30px;">$text-&gt;translate($x,$y);</pre>
<pre style="padding-left:30px;">$text-&gt;text("Hallo");</pre>
<pre style="padding-left:30px;">$text-&gt;restore;</pre>
<p>Or you can copy the contents of some page from another PDF:</p>
<pre style="padding-left:30px;">my $insertedpageXobject = $outPdf-&gt;importPageIntoForm($inPdf, $nr); #fetch the page as Xobject</pre>
<pre style="padding-left:30px;">my $insertedpageGfx = $outPage[$outPageNr]-&gt;gfx; #create a new graphics object</pre>
<pre style="padding-left:30px;">$insertedpageGfx-&gt;save; #otherwise the previous tranformation is added</pre>
<pre style="padding-left:30px;">$insertedpageGfx-&gt;transform(</pre>
<pre style="padding-left:30px;"> -translate =&gt; [$x,$y],</pre>
<pre style="padding-left:30px;"> -rotate =&gt; $rot,</pre>
<pre style="padding-left:30px;"> -scale =&gt; [$scale,$scale],</pre>
<pre style="padding-left:30px;">); #define a transformation on the graphics object</pre>
<pre style="padding-left:30px;">$insertedpageGfx-&gt;formimage($insertedpageXobject, 0, 0, 1); #drop the page Xobject in the graphics object</pre>
<pre style="padding-left:30px;">$insertedpageGfx-&gt;restore;</pre>
<p>There&#8217;s another great hands-on tutorial <a href="http://rick.measham.id.au/pdf-api2/">here</a>, where you&#8217;ll learn how to write body text and do more graphical stuff.</p>
<p>What took me very long was to understand the behaviour of the gfx objects and text objects. They have a common methodset that&#8217;s part of PDF::API2::Content. To my feeling, the gfx-object is attached to the page, and each page only has got one gfx object, so calling the gfx-method multiple times on a single page doesn&#8217;t make sense. The behaviour of the save and restore methods is not intuitive at all, but I learnt to always call &#8216;save&#8217; before starting a drawing operation and &#8216;restore&#8217; after finishing it. If you don&#8217;t, you&#8217;ll see that transformation behaviour is carried over to subsequent drawing operations, or that weird &#8216;restore&#8217; errors are displayed when reading the PDF.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=65&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2010/03/16/signaturize-or-how-to-get-on-with-pdfapi2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
		<item>
		<title>Frost Alert !</title>
		<link>http://ideaton.wordpress.com/2009/10/30/frost-alert/</link>
		<comments>http://ideaton.wordpress.com/2009/10/30/frost-alert/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 15:27:42 +0000</pubDate>
		<dc:creator>vm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ideaton.wordpress.com/?p=61</guid>
		<description><![CDATA[How easily can you implement a useful online service, just by tying together other online services? Intriguing question. I managed to create a very simple service to which you can subscribe and that will notify you if the weather forcast of the upcoming week has temperatures below zero degrees celcius. That&#8217;s useful for&#8230; Nah. It&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=61&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>How easily can you implement a useful online service, just by tying together other online services? Intriguing question. I managed to create a <a href="http://sites.google.com/site/vorstalarm/">very simple service</a> to which you can subscribe and that will notify you if the weather forcast of the upcoming week has temperatures below zero degrees celcius. That&#8217;s useful for&#8230;</p>
<p>Nah. It&#8217;s useful as an experiment!  The service is provided on a google site that mainly consists of a single google gadget. The gadget asks the users where he&#8217;s living and returns an RSS feed, which he can subscribe to using any RSS feed reader or alert system available.  The RSS feed on it&#8217;s turn, is generated by a <strong><a href="http://pipes.yahoo.com/vicmortelmans/054c0e1d2b86dd76afaa6b81bd80ad64">yahoo pipe</a></strong> that uses <strong>dapper </strong>to parse the weather forecast that&#8217;s provided by <strong>google web search</strong>.</p>
<p>What&#8217;s the use of this all&#8230; not much really, because an online service like this is completely unreliable. If one of the component services changes specs or even stops working, the whole setup falls apart (and in one frosty night, nation-wide crops will be lost, because the farmers were not alarmed <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>&nbsp;</p>
<p>[20100925] check for an update on this article <a href="http://ideaton.wordpress.com/2010/09/25/vorstalarm/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ideaton.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ideaton.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ideaton.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ideaton.wordpress.com&amp;blog=5510524&amp;post=61&amp;subd=ideaton&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ideaton.wordpress.com/2009/10/30/frost-alert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63f9e612d0dd76d7e3ddb7393ff99f5e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vicmortelmans</media:title>
		</media:content>
	</item>
	</channel>
</rss>
