<!--
 -  
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -  
 -  Copyright (C) 1998-2018 OpenLink Software
 -  
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -  
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -  
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -  
 -  
-->
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="blog">
  <refmeta>
    <refentrytitle>Blog demo</refentrytitle>
    <refmiscinfo>tutorial</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>Making a dynamic blog posts</refname>
    <refpurpose>Making a dynamic blog posts using XML templates</refpurpose>
  </refnamediv>

<refsect1 id="bloga">
<title>Overview</title>
<itemizedlist mark="bullet">
    <listitem>This demo makes a Weblog and posts into it using Metaweblog API two dynamic posts</listitem>
    <listitem>The dynamic posts contains XML template(s) which will be executed at render time.</listitem>
    <listitem>The first post makes a SQL quesry on Demo Database table 'Shippers' and inserts a table
	into the user's weblog.
    </listitem>
    <listitem>The second post contains a XML Template containing a XQuery statement.
	It will render a table containing names from simple opml.xml file.</listitem>
    <listitem> The following is a post content containing a XML Template with SQL Query:
	<programlisting>
	    <![CDATA[
	    <table border="1">
		<sql:query xmlns:sql="urn:schemas-openlink-com:xml-sql" >
		    select 1 as tag , null as parent, CompanyName as [tr!1!td!element]
		    from Demo.demo.Shippers
		    for xml explicit
		</sql:query>
	    </table>
	    ]]>
	</programlisting>
    </listitem>
    <listitem>  The following is a post content containing a XML Template with XQuery:
	<programlisting>
	    <![CDATA[
	    <div>
		<sql:xquery  xmlns:sql="urn:schemas-openlink-com:xml-sql"
		    sql:context="http://localhost:8890/tutorial/apps/blog_query/">
		    ]]>&lt;![CDATA[<![CDATA[
		    <table border="1">
			{ for $o in document ("opml.xml")//outline
			   return <tr><td>{ string ($o/@text) }</td></tr>
			}
		    </table>
		    ]]>]]&gt;<![CDATA[
		</sql:xquery>
	    </div>
	    ]]>
	</programlisting>
    </listitem>
    <listitem>The result from execution can be seen at <ulink url="/weblog/bloguser/bloguser-blog-0">http://host:port/weblog/bloguser/bloguser-blog-0</ulink>.
	Note that demo's initial state MUST be set before hitting this link.
    </listitem>
</itemizedlist>
</refsect1>

</refentry>
