<?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/"
	>

<channel>
	<title>YQL Blog</title>
	<atom:link href="http://yqlblog.net/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://yqlblog.net/blog</link>
	<description>Yahoo! Query Language</description>
	<lastBuildDate>Thu, 07 Mar 2013 23:58:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>The powerful YQL feednormalizer table</title>
		<link>http://yqlblog.net/blog/2013/03/07/yql-feednormalizer-table/</link>
		<comments>http://yqlblog.net/blog/2013/03/07/yql-feednormalizer-table/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 23:25:54 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/2013/03/06/</guid>
		<description><![CDATA[YQL&#8217;s feednormalizer table is used to convert an input feed in one format into an output feed of another format. Optionally, prexsl transformation can be applied to the input feed before format conversion and postxsl transformation can be applied to the output feed after format conversion. Prexsl transformation can be used to correct badly formed [...]]]></description>
				<content:encoded><![CDATA[<p>YQL&#8217;s <a href="http://y.ahoo.it/TlfvP" target="_blank">feednormalizer table</a> is used to convert an input feed in one format into an output feed of another format.</p>
<p>Optionally, prexsl transformation can be applied to the input feed before format conversion and postxsl transformation can be applied to the output feed after format conversion. <strong>Prexsl</strong> transformation can be used to correct badly formed feeds; while as, <strong>postxsl</strong> transformation can be used to rearrange, filter, or format final output.</p>
<p>Input feeds can be of any character encoding; however, the output is always transcoded into UTF-8. Illegal characters found in the feed during transcoding are removed.</p>
<p><strong>Syntax</strong><br />
The input feed can either be specified as a <strong>url</strong> or as an xml <strong>string</strong>. When the desired output format of the feed is specified, the input feed will be converted into that format. Optionally, one can supply xsl transforms to pre-process the input feed or post-process the output feed.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #66cc66;">&#40;</span>url<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">|</span> xml<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'rss_0.91N'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.93'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.92'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_1.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.94'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_2.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.91U<span style="color: #000099; font-weight: bold;">\r</span>ss_0.9'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'atom_1.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'atom_0.3'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> prexslurl<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> postxslurl<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> timeout<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span></pre></td></tr></table></div>

<p>or</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #66cc66;">&#40;</span>url<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">|</span> xml<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'rss_0.91N'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.93'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.92'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_1.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.94'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_2.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'rss_0.91U<span style="color: #000099; font-weight: bold;">\r</span>ss_0.9'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'atom_1.0'</span><span style="color: #66cc66;">|</span><span style="color: #ff0000;">'atom_0.3'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> prexsl<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> postxsl<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span>
  <span style="color: #66cc66;">&#91;</span><span style="color: #993333; font-weight: bold;">AND</span> timeout<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#93;</span></pre></td></tr></table></div>

<p>If a timeout value (msec) is specified, feednormalizer table will expect the url to respond within that timeout; otherwise, an error message will be returned.</p>
<p><strong>Example 1</strong>: Querying a valid input feed</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://rss.news.yahoo.com/rss/topstories'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=select%20*%20from%20feednormalizer%20where%20url%3D%27http%3A//rss.news.yahoo.com/rss/topstories%27" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feednormalizer%20where%20url%3D'http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories'&amp;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 2</strong>: Simple conversion of valid input feed</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://rss.news.yahoo.com/rss/topstories'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'atom_1.0'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=select%20*%20from%20feednormalizer%20where%20url%3D%27http%3A//rss.news.yahoo.com/rss/topstories%27%20and%20output%3D%27atom_1.0%27" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feednormalizer%20where%20url%3D'http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories'%20and%20output%3D'atom_1.0'&amp;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 3</strong>: Converting invalid input feed produces error</p>
<p>Invalid feeds (such as http://www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml) produces errors when being transformed. For example, the statement:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'rss_2.0'</span></pre></td></tr></table></div>

<p>produces the following error during execution:</p>
<p><strong><em>Could not parse feed data. Invalid rss_2.0 feed, missing image title</em></strong></p>
<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=select%20*%20from%20feednormalizer%20where%20url%3D%27http%3A//www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml%27%20and%20output%3D%27rss_2.0%27" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feednormalizer%20where%20url%3D'http%3A%2F%2Fwww.yqlblog.net%2Fblog%2Fwp-content%2Fuploads%2Ftmp%2Fexample_feed.xml'%20and%20output%3D'rss_2.0'&#038;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 4</strong>: Successfully converting invalid feeds using XSL transform.</p>
<p>In Example 3, we saw that the invalid feed could not be converted because it has missing image title. We can get around this by transforming the invalid input feed into a valid feed by removing the &lt;image&gt; tag. This can be done through the use of an XSL transform as shown below:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'rss_2.0'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> prexsl<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
               &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
                &lt;xsl:output omit-xml-declaration=&quot;yes&quot;/&gt;
                   &lt;xsl:template match=&quot;node()|@*&quot;&gt;
                     &lt;xsl:copy&gt;
                        &lt;xsl:apply-templates select=&quot;node()|@*&quot;/&gt;
                     &lt;/xsl:copy&gt;
                   &lt;/xsl:template&gt;
                   &lt;xsl:template match=&quot;image&quot;/&gt;
               &lt;/xsl:stylesheet&gt;'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=select%20*%20from%20feednormalizer%20where%20url%3D%27http%3A//www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml%27%20and%20output%3D%27rss_2.0%27%20%20and%20prexsl%3D%27%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859-1%22%3F%3E%0A%3Cxsl%3Astylesheet%20version%3D%221.0%22%20xmlns%3Axsl%3D%22http%3A//www.w3.org/1999/XSL/Transform%22%3E%0A%20%3Cxsl%3Aoutput%20omit-xml-declaration%3D%22yes%22/%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22node()|@*%22%3E%0A%20%20%20%20%20%20%3Cxsl%3Acopy%3E%0A%20%20%20%20%20%20%20%20%20%3Cxsl%3Aapply-templates%20select%3D%22node()|@*%22/%3E%0A%20%20%20%20%20%20%3C/xsl%3Acopy%3E%0A%20%20%20%20%3C/xsl%3Atemplate%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22image%22/%3E%0A%3C/xsl%3Astylesheet%3E%27" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feednormalizer%20where%20url%3D'http%3A%2F%2Fwww.yqlblog.net%2Fblog%2Fwp-content%2Fuploads%2Ftmp%2Fexample_feed.xml'%20and%20output%3D'rss_2.0'%20%20and%20prexsl%3D'%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859-1%22%3F%3E%0A%3Cxsl%3Astylesheet%20version%3D%221.0%22%20xmlns%3Axsl%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%3E%0A%20%3Cxsl%3Aoutput%20omit-xml-declaration%3D%22yes%22%2F%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22node()%7C%40*%22%3E%0A%20%20%20%20%20%20%3Cxsl%3Acopy%3E%0A%20%20%20%20%20%20%20%20%20%3Cxsl%3Aapply-templates%20select%3D%22node()%7C%40*%22%2F%3E%0A%20%20%20%20%20%20%3C%2Fxsl%3Acopy%3E%0A%20%20%20%20%3C%2Fxsl%3Atemplate%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22image%22%2F%3E%0A%3C%2Fxsl%3Astylesheet%3E'&#038;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 5</strong>: HTML generation</p>
<p>A <strong>postxsl</strong> transformation can be applied to Example 4 to convert the corrected feed into HTML:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer 
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://www.yqlblog.net/blog/wp-content/uploads/tmp/example_feed.xml'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'rss_2.0'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> prexsl<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
               &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
                &lt;xsl:output omit-xml-declaration=&quot;yes&quot;/&gt;
                   &lt;xsl:template match=&quot;node()|@*&quot;&gt;
                     &lt;xsl:copy&gt;
                        &lt;xsl:apply-templates select=&quot;node()|@*&quot;/&gt;
                     &lt;/xsl:copy&gt;
                   &lt;/xsl:template&gt;
                   &lt;xsl:template match=&quot;image&quot;/&gt;
               &lt;/xsl:stylesheet&gt;'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> postxsl<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
                &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
                  &lt;xsl:template match=&quot;/&quot;&gt;
                    &lt;html&gt;
                      &lt;body&gt;
                        &lt;h2&gt;My News&lt;/h2&gt;
                        &lt;table border=&quot;1&quot;&gt;
                          &lt;tr bgcolor=&quot;#9acd32&quot;&gt;
                            &lt;th&gt;Title&lt;/th&gt;
                            &lt;th&gt;Description&lt;/th&gt;
                          &lt;/tr&gt;
                          &lt;xsl:for-each select=&quot;rss/channel/item&quot;&gt;
                            &lt;tr&gt;
                              &lt;td&gt;&lt;a&gt;&lt;xsl:attribute name=&quot;href&quot;&gt;&lt;xsl:value-of select=&quot;link&quot;/&gt;&lt;/xsl:attribute&gt;&lt;xsl:value-of select=&quot;title&quot;/&gt;&lt;/a&gt;&lt;/td&gt;
                              &lt;td&gt;&lt;xsl:value-of select=&quot;description&quot;/&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                          &lt;/xsl:for-each&gt;
                        &lt;/table&gt;
                      &lt;/body&gt;
                    &lt;/html&gt;
                  &lt;/xsl:template&gt;
                &lt;/xsl:stylesheet&gt;'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://y.ahoo.it/eElRH" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feednormalizer%20where%20url%3D'http%3A%2F%2Fwww.yqlblog.net%2Fblog%2Fwp-content%2Fuploads%2Ftmp%2Fexample_feed.xml'%20and%20output%3D'rss_2.0'%20%20and%20prexsl%3D'%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859-1%22%3F%3E%0A%3Cxsl%3Astylesheet%20version%3D%221.0%22%20xmlns%3Axsl%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%3E%0A%20%3Cxsl%3Aoutput%20omit-xml-declaration%3D%22yes%22%2F%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22node()%7C%40*%22%3E%0A%20%20%20%20%20%20%3Cxsl%3Acopy%3E%0A%20%20%20%20%20%20%20%20%20%3Cxsl%3Aapply-templates%20select%3D%22node()%7C%40*%22%2F%3E%0A%20%20%20%20%20%20%3C%2Fxsl%3Acopy%3E%0A%20%20%20%20%3C%2Fxsl%3Atemplate%3E%0A%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22image%22%2F%3E%0A%3C%2Fxsl%3Astylesheet%3E'%20and%20postxsl%3D'%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859-1%22%3F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Astylesheet%20version%3D%221.0%22%20xmlns%3Axsl%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22%2F%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Chtml%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3EMy%20News%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctable%20border%3D%221%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%20bgcolor%3D%22%239acd32%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3ETitle%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3EDescription%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Afor-each%20select%3D%22rss%2Fchannel%2Fitem%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Ca%3E%3Cxsl%3Aattribute%20name%3D%22href%22%3E%3Cxsl%3Avalue-of%20select%3D%22link%22%2F%3E%3C%2Fxsl%3Aattribute%3E%3Cxsl%3Avalue-of%20select%3D%22title%22%2F%3E%3C%2Fa%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Cxsl%3Avalue-of%20select%3D%22description%22%2F%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Afor-each%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fbody%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fhtml%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Atemplate%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Astylesheet%3E'&#038;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 6</strong>: HTML generation, 2nd example</p>
<p>For valid feeds that are already in the desired format, <strong>postxsl</strong> can be applied directly for HTML conversion:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://rss.news.yahoo.com/rss/topstories'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> postxsl<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
                &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
                  &lt;xsl:template match=&quot;/&quot;&gt;
                    &lt;html&gt;
                      &lt;body&gt;
                        &lt;h2&gt;My News&lt;/h2&gt;
                        &lt;table border=&quot;1&quot;&gt;
                          &lt;tr bgcolor=&quot;#9acd32&quot;&gt;
                            &lt;th&gt;Title&lt;/th&gt;
                            &lt;th&gt;Description&lt;/th&gt;
                          &lt;/tr&gt;
                          &lt;xsl:for-each select=&quot;rss/channel/item&quot;&gt;
                            &lt;tr&gt;
                              &lt;td&gt;&lt;a&gt;&lt;xsl:attribute name=&quot;href&quot;&gt;&lt;xsl:value-of select=&quot;link&quot;/&gt;&lt;/xsl:attribute&gt;&lt;xsl:value-of select=&quot;title&quot;/&gt;&lt;/a&gt;&lt;/td&gt;
                              &lt;td&gt;&lt;xsl:value-of select=&quot;description&quot;/&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                          &lt;/xsl:for-each&gt;
                        &lt;/table&gt;
                      &lt;/body&gt;
                    &lt;/html&gt;
                  &lt;/xsl:template&gt;
                &lt;/xsl:stylesheet&gt;'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://y.ahoo.it/jAAIK" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20feednormalizer%0A%20WHERE%20url%3D'http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories'%0A%20%20%20AND%20postxsl%3D'%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22ISO-8859-1%22%3F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Astylesheet%20version%3D%221.0%22%20xmlns%3Axsl%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2FXSL%2FTransform%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Atemplate%20match%3D%22%2F%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Chtml%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3EMy%20News%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctable%20border%3D%221%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%20bgcolor%3D%22%239acd32%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3ETitle%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3EDescription%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxsl%3Afor-each%20select%3D%22rss%2Fchannel%2Fitem%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Ca%3E%3Cxsl%3Aattribute%20name%3D%22href%22%3E%3Cxsl%3Avalue-of%20select%3D%22link%22%2F%3E%3C%2Fxsl%3Aattribute%3E%3Cxsl%3Avalue-of%20select%3D%22title%22%2F%3E%3C%2Fa%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Cxsl%3Avalue-of%20select%3D%22description%22%2F%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Afor-each%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fbody%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fhtml%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Atemplate%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxsl%3Astylesheet%3E'&#038;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 7</strong>: Transcoding input feeds into UTF-8</p>
<p>Input feed documents may be in any encoding. The output is always in UTF-8. During transcoding illegal characters encountered in the input feed are removed. The following diagnostics message will appear in the output, when illegal characters are removed:</p>
<p>removed 14 badly encoded characters from feed.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://cn.wsj.com/big5/rssbch.xml'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'atom_1.0'</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=SELECT%20*%20FROM%20feednormalizer%20WHERE%20url%3D%27http%3A//cn.wsj.com/big5/rssbch.xml%27%20AND%20output%3D%27atom_1.0%27" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20feednormalizer%20WHERE%20url%3D'http%3A%2F%2Fcn.wsj.com%2Fbig5%2Frssbch.xml'%20AND%20output%3D'atom_1.0'&#038;diagnostics=true" target="_blank">REST request</a>.</p>
<hr /></p>
<p><strong>Example 8</strong>: Selecting and filtering input feeds using YQL</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> entry<span style="color: #66cc66;">.</span>title <span style="color: #993333; font-weight: bold;">FROM</span> feednormalizer
 <span style="color: #993333; font-weight: bold;">WHERE</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http://rss.news.yahoo.com/rss/topstories'</span>
   <span style="color: #993333; font-weight: bold;">AND</span> output<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'atom_1.0'</span> <span style="color: #66cc66;">|</span> sort<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'entry.title'</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>Try above example in <a href="http://developer.yahoo.com/yql/console/#h=SELECT%20entry.title%20FROM%20feednormalizer%20WHERE%20url%3D%27http%3A//rss.news.yahoo.com/rss/topstories%27%20AND%20output%3D%27atom_1.0%27%20|%20sort(%27entry.title%27)" target="_blank">YQL Console</a>. Try above example as <a href="http://query.yahooapis.com/v1/public/yql?q=SELECT%20entry.title%20FROM%20feednormalizer%20WHERE%20url%3D'http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories'%20AND%20output%3D'atom_1.0'%20%7C%20sort('entry.title')&amp;diagnostics=true" target="_blank">REST request</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2013/03/07/yql-feednormalizer-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publishing to GitHub</title>
		<link>http://yqlblog.net/blog/2012/08/14/publishing-to-github/</link>
		<comments>http://yqlblog.net/blog/2012/08/14/publishing-to-github/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 22:13:20 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=399</guid>
		<description><![CDATA[A lot of hassle is involved in submitting your own table to YQL. First, you would have to open a GitHub account. Then you would visit the YQL repository on GitHub and create a fork. Once you’ve done that, you’d have to pull the fork onto your local machine. After the fork has been pulled, [...]]]></description>
				<content:encoded><![CDATA[<p>A lot of hassle is involved in submitting your own table to YQL.</p>
<p>First, you would have to open a GitHub account. Then you would visit the YQL repository on GitHub and create a fork. Once you’ve done that, you’d have to pull the fork onto your local machine. After the fork has been pulled, you would have to sift through directories to get a feel for the table naming convention before adding your table in. Finally you’d have to make a pull request to YQL and wait until your table has been approved.</p>
<p>Today, we&#8217;re releasing a new feature in the <a href="http://developer.yahoo.com/yql/editor/" target="_blank">Table Editor</a> that allows you to submit tables directly to GitHub without even touching the command-line. All you have to do is press a simple button to start:</p>
<p><img class="aligncenter size-full wp-image-400" title="Screen Shot 2012-08-13 at 11.42.13 AM" src="http://yqlblog.net.p2.hostingprod.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-13-at-11.42.13-AM.png" alt="Screen Shot 2012-08-13 at 11.42.13 AM" width="457" height="183" /></p>
<p>Clicking the “Publish to GitHub” button will show you a brief disclaimer that will explain how your table will be submitted:</p>
<p><img title="Screen Shot 2012-08-13 at 12.25.21 PM" src="http://yqlblog.net.p2.hostingprod.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-13-at-12.25.21-PM.png" alt="Screen Shot 2012-08-13 at 12.25.21 PM" width="457px" /></p>
<p>Once you’ve signed in and authenticated the Table Editor with GitHub, we’ll go ahead and publish your table. In the future, you won’t have to authenticate with GitHub in order to publish a table. And if you ever wish to disassociate your GitHub account from the Table Editor, you can visit your <a href="https://github.com/settings/applications" target="_blank">GitHub application settings</a> to revoke access. </p>
<p>Currently we will only push tables to GitHub. Environment and JS files will not be pushed at this time.</p>
<p>In addition to this new feature, we&#8217;ve ported all client-side code over to using the<a href="http://yuilibrary.com/yui/docs/app/" target="_blank"> YUI 3 App Framework </a>for better flexibility in the future.</p>
<p>Please try out this new feature and send us any questions or suggestions you might have.</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/08/14/publishing-to-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Run Yahoo! Pipes from YQL Execute</title>
		<link>http://yqlblog.net/blog/2012/07/19/run-yahoo-pipes-from-yql-execute/</link>
		<comments>http://yqlblog.net/blog/2012/07/19/run-yahoo-pipes-from-yql-execute/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 21:42:56 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=378</guid>
		<description><![CDATA[We recently added a new YQL execute method: y.pipe(pipeid,params) This method will allow you to run a Yahoo Pipe within a YQL execute statement. Accepted Parameters: pipeid (required string) params (optional json object) Returns: A response object that contains a result instance or an error object Why would you want to do this? 1. Allows [...]]]></description>
				<content:encoded><![CDATA[<p>We recently added a new YQL execute method: <strong>y.pipe(pipeid,params)</strong></p>
<p>This method will allow you to run a <a href="http://pipes.yahoo.com" target="_blank">Yahoo Pipe</a> within a <a href="http://developer.yahoo.com/yql/guide/yql-execute-examples.html" target="_blank">YQL execute</a> statement.</p>
<p>Accepted Parameters:<br />
pipeid (required <em>string</em>)<br />
params (optional <em>json object</em>)</p>
<p>Returns:<br />
A response object that contains a result instance or an error object</p>
<p>Why would you want to do this?</p>
<p>1. Allows you to utilize all the benefits that a YQL execute statement gives you.<br />
2. Higher rate limits! Benefit from YQL rate limits instead of Pipes (which is much lower).<br />
3. Mash ups with other YQL tables<br />
4. Extend your Pipe with server side javascripting</p>
<p><strong>Example</strong>:</p>
<p>This is the Pipe that I want to run in YQL: <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=990bf4c00040ad06ba83de9aadd6293b" target="_blank">http://pipes.yahoo.com/pipes/pipe.info?_id=990bf4c00040ad06ba83de9aadd6293b</a></p>
<p>Here is a simple sample YQL table that uses y.pipe. You can create one too using the <a href="http://developer.yahoo.com/yql/editor/" target="_blank">YQL Table Editor</a>.</p>
<p><script src="https://gist.github.com/3146899.js?file=gistfile1.xml"></script></p>
<p>And this is the YQL Query I would run to access my example: <a href="http://y.ahoo.it/4WIbf" target="_blank">use &#8220;store://HuTaxj5021R7THBitCNIcJ&#8221; as ypipe_example; select * from ypipe_example</a></p>
<p>(You could always extend the sample table to accept the pipeid or pipe params <em>as a parameter</em> via the input keys)</p>
<p>Currently YQL <strong>does not</strong> produce the output formats that Pipes does (RSS, KML, ICAL, CSV). </p>
<p>YQL will only currently produce XML, JSON, JSONP and JSONP-X output formats.</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/07/19/run-yahoo-pipes-from-yql-execute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job posting: Sr. Software Engineer &#8211; YQL</title>
		<link>http://yqlblog.net/blog/2012/07/16/job-posting-sr-software-engineer-yql/</link>
		<comments>http://yqlblog.net/blog/2012/07/16/job-posting-sr-software-engineer-yql/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 23:26:03 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=373</guid>
		<description><![CDATA[The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services. With YQL, apps run faster with fewer lines of code and a smaller network footprint. With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn [...]]]></description>
				<content:encoded><![CDATA[<p>The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services. With YQL, apps run faster with fewer lines of code and a smaller network footprint. With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn how to call different APIs.</p>
<p>The YQL team is looking for a talented and enthusiastic software engineer who will work on extending the YQL platform. We&#8217;re looking for someone who can both solve day to day problems, work with other teams in Yahoo to use YQL, as well as bring their own ideas for further evolution of the product.</p>
<p><strong>Please submit your resume at</strong>: yql-questions [at] yahoo-inc.com</p>
<p>Job Responsibilities:</p>
<p>* Develop and maintain the YQL engine and platform, evolve architecture</p>
<p>* Strong ability to translate functional requirements into a technical design</p>
<p>* Strong analytical and problem-solving skills</p>
<p>* Excellent communication skills</p>
<p>* Highly motivated to be part of an innovative and talented team</p>
<p>Minimum Job Qualifications:</p>
<p>* 5+ years of software development experience, J2SE and J2EE hands-on development</p>
<p>* Ability to design, develop, test and deploy multi-tier and multi-threaded distributed applications</p>
<p>* Significant development experience in a *nix environment, debug and diagnose production issues</p>
<p>* Familiarity with a wide variety of software development methodologies, tools, languages and approaches</p>
<p>* Working knowledge of Web Services, Design Patterns, XML, RSS and other web data formats</p>
<p>* Extensive knowledge of core Java libraries, design patterns, JSP and servlets</p>
<p>Preferable Job Qualifications:</p>
<p>* BS/MS in Comp Science 5+ years of relevant industry experience</p>
<p>* Ability to build scalable/fault tolerant systems</p>
<p>* Knowledge of programming language design</p>
<p>* Experience creating Developer tools</p>
<p>* Familiarity with wide variety of web APIs</p>
<p>* Knowledge of server-side Javascript runtime environments</p>
<p><strong>Please submit your resume at</strong>: yql-questions [at] yahoo-inc.com</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/07/16/job-posting-sr-software-engineer-yql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YQL Rate Limit Increase</title>
		<link>http://yqlblog.net/blog/2012/03/30/yql-rate-limit-increase/</link>
		<comments>http://yqlblog.net/blog/2012/03/30/yql-rate-limit-increase/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 23:01:08 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=371</guid>
		<description><![CDATA[Effective immediately the YQL Rate Limits are now increased: Public endpoint to 2k/ip/hr (previously 1k) Oauth endpoint to 20k/ip/hr (previously 10k) Per application limit (identified by your Access Key): 100,000 calls per day will remain the same. With this increase you can get up to 3 million &#8211; 3.1 million requests per month. (100k cap [...]]]></description>
				<content:encoded><![CDATA[<p>Effective immediately the YQL Rate Limits are now increased:</p>
<p>Public endpoint to 2k/ip/hr (previously 1k)<br />
Oauth endpoint to 20k/ip/hr (previously 10k)</p>
<p>Per application limit (identified by your Access Key): 100,000 calls per day will remain the same.</p>
<p>With this increase you can get up to 3 million &#8211; 3.1 million requests per month. (100k cap per day)</p>
<p>Thank you to the YQL community &#8211; we hope you enjoy this increase.</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/03/30/yql-rate-limit-increase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New enhancements to the YQL console and editor</title>
		<link>http://yqlblog.net/blog/2012/03/01/new-enhancements-to-the-yql-console-and-editor/</link>
		<comments>http://yqlblog.net/blog/2012/03/01/new-enhancements-to-the-yql-console-and-editor/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 18:17:44 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[changelog]]></category>
		<category><![CDATA[feature]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=318</guid>
		<description><![CDATA[Some new enhancements were recently made to the YQL console and editor. Console: New debug checkbox. Checking this will simply add debug=true to your console URL. When debug=true is set, it enables open table debugging and viewing of YQL network calls. New expand checkbox. Checking this will expand the results section to full height. Renamed [...]]]></description>
				<content:encoded><![CDATA[<p>Some new enhancements were recently made to the <a href="http://developer.yahoo.com/yql/console" target="_new">YQL console</a> and <a href="http://developer.yahoo.com/yql/editor">editor</a>.</p>
<p><b>Console</b>:</p>
<ul>
<li>New debug checkbox.
<ul>
<li> Checking this will simply add debug=true to your console URL. When debug=true is set, it enables <a href="http://developer.yahoo.com/yql/guide/yql-network-logging.html" target="_new">open table debugging</a> and viewing of YQL network calls.</li>
</ul>
</li>
<li>New expand checkbox.
<ul>
<li>Checking this will expand the results section to full height.</li>
</ul>
</li>
<li>Renamed &#8220;My Tables&#8221; to &#8220;My YQL&#8221;.
<ul>
<li>With this release, you have the ability to create YQL tables, environments and js files via the editor. The My YQL section lists those files based on those types. This is the section where you can launch the editor to edit the files and the area where you can delete your files.<br />
<br />
<img src="http://yqlblog.net/blog/wp-content/uploads/2012/02/Screen-shot-2012-02-29-at-Feb-29-9.23.19-PM.png" width="223" height="204" class="alignleft size-full wp-image-358" /></p>
<p>
Some actions when clicking on the file names:</p>
<ul>
<li>Clicking on a table name will put the store execute key into the yql statement area and desc the table.</li>
<li>Clicking on an environment name will load that environment by adding env=store://(your store execute key here) to the console.</li>
<li>JS files are only editable via the YQL editor.</li>
</ul>
<p>Only you will know what YQL files you have created, since you need to be logged in to create and view them. But you can share your YQL file store execute keys, as they can be run by anyone after sharing. Only share them if you want others to run that file.
</li>
</ul>
</li>
</ul>
<p><b>Editor</b>:</p>
<ul>
<li>The ability to create different YQL file types.
<ul>
<li>You now can create Tables, YQL environments and JS files. Simply select the &#8220;Save as&#8221; drop down to save the type of file needed.
					</li>
<li>Regarding JS files, these are files you can <a href="http://developer.yahoo.com/yql/guide/yql-storage-using.html#yql-storage-javascript" target="_new">y.include()</a> into your execute statement in a table.
					</li>
</ul>
</li>
<li>
<p>Dragging a YQL file from the sidebar onto the editor will produce a contextual code snippet.</p>
<p><img src="http://yqlblog.net/blog/wp-content/uploads/2012/02/editor1.png" alt="editor" title="editor" width="335" height="228" class="alignleft size-full wp-image-366" /></p>
<ul>
<li>Saving file as: Table or JS
<ul>
<li>Dragging a Table file will produce: <code>y.use("store://execute key here","namespace here");</code>
							</li>
<li>Dragging a Environment file will produce: <code>y.env("store://execute key here");</code>
							</li>
<li>Dragging a JS file will produce: <code>y.include("store://select key here");</code>
							</li>
</ul>
</li>
<li>Saving file as: Environment
<ul>
<li>Dragging a Table file will produce: <code>use "store://execute key here" as name_space;</code>
							</li>
<li>Dragging a Environment file will produce: <code>env "store://execute key here";</code>
							</li>
<li>Dragging a JS file will produce: <code><br />set change_var_name="store://select key here" on change_to_table;</code>
							</li>
</ul>
</li>
</ul>
</li>
<li>Full screen layout
			</li>
<li>Sidebar which contains Sample templates, keys of a table, and a list of your files by type.
			</li>
<li>Changed file access FROM: <b>tableid</b>=id_here TO: <b>id</b>=id_here
		</ul>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/03/01/new-enhancements-to-the-yql-console-and-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent Enhancement to the HTML table</title>
		<link>http://yqlblog.net/blog/2012/01/17/recent-enhancement-to-the-html-table/</link>
		<comments>http://yqlblog.net/blog/2012/01/17/recent-enhancement-to-the-html-table/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 22:12:49 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=313</guid>
		<description><![CDATA[The HTML table has recently been enhanced to support HTML version 5. The HTML table in the backend uses a parser which autocorrects malformed tags. To support HTML5 we are using a different parser then the one used previously. Because of this change, the output might be slightly different than before. To ensure backward compatibility, [...]]]></description>
				<content:encoded><![CDATA[<p>The HTML table has recently been enhanced to support HTML version 5. The HTML table in the backend uses a parser which autocorrects malformed tags. To support HTML5 we are using a different parser then the one used previously. Because of this change, the output might be slightly different than before. To ensure backward compatibility, both the parsers are supported, with the older one being the default. The new parser can be used by just appending compat=”html5” to the query.</p>
<p>For Example: <a href="http://y.ahoo.it/GiAgd">select * from html where url=&#8221;http://finance.yahoo.com/q?s=yhoo&#8221; and compat=&#8221;html5&#8243;</a></p>
<p>Please start using this feature and give us your feedback! Eventually the new parser which supports ‘html5’ will be made default, but that will follow an announcement. Even after the new parser is made default, the old one can still be used by having compat equals to ‘html4’.</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2012/01/17/recent-enhancement-to-the-html-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YQL Editor</title>
		<link>http://yqlblog.net/blog/2011/10/21/yql-editor/</link>
		<comments>http://yqlblog.net/blog/2011/10/21/yql-editor/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 21:10:17 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=266</guid>
		<description><![CDATA[(updated) The YQL Editor is a simple and easy way to create your table in Yahoo&#8217;s cloud. The editor makes use of the yql.storage table to store your table with Yahoo&#8217;s cloud instead of hosting it on your own server. Simply access it from the YQL console on the upper right hand column under &#8220;My [...]]]></description>
				<content:encoded><![CDATA[<p>(updated)</p>
<p>The YQL Editor is a simple and easy way to create your table in Yahoo&#8217;s cloud. The editor makes use of the <a href="http://developer.yahoo.com/yql/guide/yql-cloud-chapter.html" target="_blank">yql.storage</a> table to store your table with Yahoo&#8217;s cloud instead of hosting it on your own server.</p>
<p>Simply access it from the <a href="http://developer.yahoo.com/yql/console/">YQL console</a> on the upper right hand column under &#8220;My Tables&#8221;.</p>
<p><img class="size-full wp-image-268 alignleft" title="mytablesconsole" src="http://yqlblog.net/blog/wp-content/uploads/2011/10/Screen-shot-2011-10-20-at-Oct-20-12.16.35-PM.png" alt="mytablesconsole" width="369" height="214" /></p>
<p>Some quick notes: You must be logged in to view, create and edit your tables. You can not view other people&#8217;s tables. If you previously created and stored tables using yql.storage, they will not show up in &#8220;My Tables&#8221;. Storing tables <em><strong>directly</strong></em> using the yql.storage table will also not be shown in &#8220;My Tables&#8221;. &#8220;My Tables&#8221; makes it easy to track tables you created via the YQL Editor while logged in.</p>
<p>Click the &#8220;new&#8221; link to launch the YQL Editor. This will open up the editor in a separate page. By default new tables are named &#8220;untitled_table&#8221;. You can rename the table by simply clicking on the name.</p>
<p>The Tables dropdown provides sample templates to construct your table. It also will show your tables if you have any.</p>
<p><img class="alignleft size-full wp-image-272" title="Screen shot 2011-10-20 at Oct 20, 4.08.36 PM" src="http://yqlblog.net/blog/wp-content/uploads/2011/10/Screen-shot-2011-10-20-at-Oct-20-4.08.36-PM.png" alt="Screen shot 2011-10-20 at Oct 20, 4.08.36 PM" width="410" height="434" /></p>
<p>When in the &#8220;My Tables&#8221; section in the console, clicking on the table name will put the <a href="http://developer.yahoo.com/yql/guide/yql-storage-new-records.html">store execute key</a> into the yql statement area and desc the table.</p>
<p><img class="alignleft size-full wp-image-279" title="Screen shot 2011-10-20 at Oct 20, 4.17.00 PM" src="http://yqlblog.net/blog/wp-content/uploads/2011/10/Screen-shot-2011-10-20-at-Oct-20-4.17.00-PM1.png" alt="Screen shot 2011-10-20 at Oct 20, 4.17.00 PM" width="509" height="164" /></p>
<p>To query your table store, put the yql query statment after the &#8220;use&#8221; declaration. For <a href="http://y.ahoo.it/Ne2V0" target="_blank">example</a>: use &#8220;store://Tdr13p0ubxczYZ78ia0Sph&#8221; as zillow; select * from zillow where address = &#8220;1835 73rd Ave NE&#8221; and citystatezip = &#8220;98039&#8243; and zwsid = &#8220;X1-ZWz1cse68iatcb_13bwv&#8221;</p>
<p>Quick note: You can share your table execute store, it can be run by the public. Your table store <a href="http://developer.yahoo.com/yql/guide/yql-storage-new-records.html">execute</a> <strong>key</strong> is only known to you &#8211; unless you choose to share it.</p>
<p>You can also make your endpoint (which will be really long) into a query alias. Click on the &#8220;<a href="http://www.youtube.com/watch?v=okplhz8G1xI&#038;feature=player_embedded" target="_blank">Create Query Alias</a>&#8221; link on the top right hand side of the YQL statement box to customize your endpoint. </p>
<p><del datetime="2011-11-01T23:52:54+00:00">Currently, it can take up to 30 seconds to see changes made to your table after editing.</del> <del datetime="2011-11-01T23:52:54+00:00">This will be fixed in a future YQL release.</del>  By adding debug=true to your query (or console), you can see real time edits after saving.</p>
<p>We plan to add new features to the YQL Editor as time goes on. Future releases will include the ability to manage and create your own YQL environments and hosted Javascript files. Please let us know of any features you&#8217;d like to see at yql-questions (at) yahoo-inc.com. </p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2011/10/21/yql-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YQL Table Health and YQL Lint</title>
		<link>http://yqlblog.net/blog/2011/08/12/yql-table-health-and-yql-lint/</link>
		<comments>http://yqlblog.net/blog/2011/08/12/yql-table-health-and-yql-lint/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 00:33:59 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[feature]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=247</guid>
		<description><![CDATA[YQL has attracted a large number of OpenData tables thanks to the efforts of the community. But some of these tables don&#8217;t end up working properly due to many factors, like recent changes made to the underlying API. Therefore we&#8217;ve created two new tools, YQL Table Health and YQL Lint, to help developers see and [...]]]></description>
				<content:encoded><![CDATA[<p>YQL has attracted a large number of <a href="https://github.com/yql/yql-tables">OpenData</a> tables thanks to the efforts of the community. But some of these tables don&#8217;t end up working properly due to many factors, like recent changes made to the underlying API. Therefore we&#8217;ve created two new tools, <a href="http://www.datatables.org/healthchecker/">YQL Table Health</a> and <a href="http://www.datatables.org/healthchecker/lint">YQL Lint</a>, to help developers see and understand which tables actually work and which ones don&#8217;t.</p>
<p><a href="http://www.datatables.org/healthchecker/">YQL Table Health</a> is intended to provide a quick general overview of how &#8220;healthy&#8221; the community OpenData tables are:</p>
<p><a href="http://www.datatables.org/healthchecker/"><img class="size-full wp-image-246" title="img1" src="http://yqlblog.net/blog/wp-content/uploads/2011/08/img1.png" alt="img1" width="500" height="324" border="0" /></a></p>
<p>When you first arrive to the page, you will see a list of all the tables that can be used by YQL. Clicking on one of the entries in the list will cause it to expand and show additional information regarding where the source of the XML file is, what kind of table it is, sample query information, and lastly any errors that were encountered. You can use the controls on the left-hand side to further filter, sort, and search through all this data. If you see a table that doesn&#8217;t work, you can contact the author of the table to fix it via <a href="https://github.com/yql/yql-tables">github</a>. You may also fork the <a href="https://github.com/yql/yql-tables">yql-tables</a> from github and fix or enhance the table yourself.</p>
<p>YQL Table Health uses a sever-side script to iterate through all the tables. Each table&#8217;s XML file is loaded into YQL cloud storage before a series of checks are run against that XML file. The test results are then cached in a database as well as memory to serve this data as fast as possible. Updates to caches are triggered by users visiting the page and only fire if the data is older than thirty minutes; requests for an update are also synchronized to prevent a race condition occurring, where two or more requests might be made simultaneously. Last but not least, the data is served to the user through a user-interface built using HTML5 and the <a href="http://yuilibrary.com/">YUI Library</a>.</p>
<p>The next tool we’re going to introduce to you is <a href="http://www.datatables.org/healthchecker/lint">YQL Lint</a>.</p>
<p><a href="http://www.datatables.org/healthchecker/lint"><img class="size-full wp-image-248" title="img2" src="http://yqlblog.net/blog/wp-content/uploads/2011/08/img2.png" alt="img2" width="501" height="279" border="0" /></a></p>
<p>YQL Lint is essentially an XML debugger for individual YQL tables. You can enter either a URL to a XML file, or the contents of an XML file, and it will validate this against our schema for syntax flaws. Once the schema check has been passed, we will use YQL to get a description of your YQL table and check to see if it contains a sample query that returns a valid result. YQL Lint essentially relies on the same core backend as YQL Table Health.</p>
<p>Please experiment with these tools and send us any questions or suggestions you might have.</p>
<p>Daniel Park &#8211; YQL/Pipes Intern</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2011/08/12/yql-table-health-and-yql-lint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search tables and BOSS v1</title>
		<link>http://yqlblog.net/blog/2011/07/20/search-tables-and-boss-v1/</link>
		<comments>http://yqlblog.net/blog/2011/07/20/search-tables-and-boss-v1/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 21:35:11 +0000</pubDate>
		<dc:creator>yqlteam</dc:creator>
				<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://yqlblog.net/blog/?p=242</guid>
		<description><![CDATA[We&#8217;ve removed all search tables that relied on the BOSS v1 API (search.web, search.image, and search.news) as the aforementioned BOSS v1 no longer exists as of today (http://www.ysearchblog.com/2011/06/30/you-asked-for-this-boss-v2-updates/). For those of you relying on those tables please consider using the community BOSS v2 table (https://github.com/yql/yql-tables/blob/master/boss/boss.search.xml). Thanks -YQL Team]]></description>
				<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 11.0px 'Lucida Grande'; color: #141414} span.s1 {text-decoration: underline ; color: #0033cc} -->We&#8217;ve removed all search tables that relied on the BOSS v1 API (search.web, search.image, and search.news) as the aforementioned BOSS v1 no longer exists as of today (<a href="http://www.ysearchblog.com/2011/06/30/you-asked-for-this-boss-v2-updates/"><span>http://www.ysearchblog.com/2011/06/30/you-asked-for-this-boss-v2-updates/</span></a>).</p>
<p>For those of you relying on those tables please consider using the community BOSS v2 table (<a href="https://github.com/yql/yql-tables/blob/master/boss/boss.search.xml"><span>https://github.com/yql/yql-tables/blob/master/boss/boss.search.xml</span></a>).</p>
<p>Thanks -YQL Team</p>
]]></content:encoded>
			<wfw:commentRss>http://yqlblog.net/blog/2011/07/20/search-tables-and-boss-v1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
