<?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>Ben&#039;s Blog &#187; Freemarker</title>
	<atom:link href="http://www.benh.co.uk/tag/freemarker/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.benh.co.uk</link>
	<description></description>
	<lastBuildDate>Thu, 26 Jan 2012 21:39:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Example alf:parseXMLDocuments using XSL and Freemarker</title>
		<link>http://www.benh.co.uk/alfresco/example-alfparsexmldocuments-using-xsl-and-freemarker/</link>
		<comments>http://www.benh.co.uk/alfresco/example-alfparsexmldocuments-using-xsl-and-freemarker/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 16:54:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Alfresco WCM (archive)]]></category>
		<category><![CDATA[Web Forms - XForms]]></category>
		<category><![CDATA[Alfresco WCM]]></category>
		<category><![CDATA[Freemarker]]></category>
		<category><![CDATA[parseXMLDocuments]]></category>
		<category><![CDATA[XSL]]></category>

		<guid isPermaLink="false">http://www.benh.co.uk/?p=83</guid>
		<description><![CDATA[Here is a very simple example of using alf:parseXMLDocuments with both XSL and Freemarker. This example will effectivley load all XML output files from the root dir of type &#8216;blog-article&#8217; and complie them into an output rendition. Download the example files here or Web Form &#8211; blog-article.xsd &#60;?xml version="1.0"?&#62; &#60;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pr="http://www.alfresco.org/alfresco/pr" targetNamespace="http://www.alfresco.org/alfresco/pr" elementFormDefault="qualified"&#62; &#60;!-- [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a very simple example of using alf:parseXMLDocuments with both XSL and Freemarker.  This example will effectivley load all XML output files from the root dir of type &#8216;blog-article&#8217; and complie them into an output rendition.</p>
<p><a href="http://www.benh.co.uk/wp-content/uploads/2008/12/blog-article.zip">Download the example files here</a> or <span id="more-83"></span></p>
<h3>Web Form &#8211; blog-article.xsd</h3>
<p><code>&lt;?xml version="1.0"?&gt;<!--formatted--></code></p>
<p><code>&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"<br />
xmlns:pr="http://www.alfresco.org/alfresco/pr"<br />
targetNamespace="http://www.alfresco.org/alfresco/pr"<br />
elementFormDefault="qualified"&gt;<!--formatted--></code></p>
<p><code>&lt;!-- Blog Article categories --&gt;<br />
&lt;xs:simpleType name="category"&gt;<br />
&lt;xs:restriction base="xs:normalizedString"&gt;<br />
&lt;xs:enumeration value="Product"/&gt;<br />
&lt;xs:enumeration value="Web 2.0"/&gt;<br />
&lt;xs:enumeration value="Internet"/&gt;<br />
&lt;xs:enumeration value="Event"/&gt;<br />
&lt;xs:enumeration value="Training"/&gt;<br />
&lt;/xs:restriction&gt;<br />
&lt;/xs:simpleType&gt;<!--formatted--></code></p>
<p><code>&lt;!-- Blog Article fields --&gt;<br />
&lt;xs:element name="blog_article"&gt;<br />
&lt;xs:complexType&gt;<br />
&lt;xs:sequence&gt;<br />
&lt;xs:element name="title" type="xs:normalizedString"/&gt;<br />
&lt;xs:element name="abstract" type="xs:normalizedString"/&gt;<br />
&lt;xs:element name="body" type="xs:string" minOccurs="1" maxOccurs="unbounded"/&gt;<br />
&lt;xs:element name="keywords" type="xs:normalizedString" minOccurs="0" maxOccurs="unbounded"/&gt;<br />
&lt;xs:element name="category" type="pr:category" default="Internet"/&gt;<br />
&lt;/xs:sequence&gt;<br />
&lt;/xs:complexType&gt;<br />
&lt;/xs:element&gt;<br />
&lt;/xs:schema&gt;<!--formatted--></code></p>
<h3>XSL Example &#8211; blog-article.xsl</h3>
<p><code><br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<!--formatted--><br />
&lt;xsl:stylesheet version="1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml"<br />
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"<br />
xmlns:pr="http://www.alfresco.org/alfresco/pr"&gt;<!--formatted--></code></p>
<p><code>&lt;xsl:output method="xml" encoding="UTF-8" indent="yes"/&gt;<br />
&lt;xsl:template match="/"&gt;<br />
&lt;xsl:variable name="all_press_releases" select="alf:parseXMLDocuments('blog-article', '')"/&gt;<!--formatted--></code></p>
<p><code>&lt;xsl:for-each select="$all_press_releases"&gt;<br />
&lt;h2&gt;&lt;xsl:value-of select="pr:title"/&gt;&lt;/h2&gt;<br />
&lt;h3&gt;&lt;xsl:value-of select="pr:abstract"/&gt;&lt;/h3&gt;<br />
&lt;p&gt;&lt;xsl:value-of select="pr:abstract"/&gt;&lt;/p&gt;<br />
&lt;br /&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<!--formatted--></code></p>
<h3>Freemarker Example &#8211; blog-article.html.ftl</h3>
<p><code> &lt;#ftl ns_prefixes={"D":"http://www.alfresco.org/alfresco/pr", "pr":"http://www.alfresco.org/alfresco/pr"}&gt;<br />
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<!--formatted--></code><br />
<code><br />
&lt;/head&gt;<br />
&lt;body&gt;<!--formatted--></code></p>
<p><code>&lt;#assign docs = alf.parseXMLDocuments('blog-article', '/')&gt;<br />
&lt;#list docs as x&gt;<br />
&lt;h2&gt;&lt;a href="#"&gt;${x.title}&lt;/a&gt;&lt;/h2&gt;<br />
&lt;h3&gt;${x.abstract}&lt;/h3&gt;<br />
&lt;p&gt;${x.body}&lt;/p&gt;<br />
&lt;br /&gt;<br />
&lt;/#list&gt;<!--formatted--></code><br />
<code><br />
&lt;/body&gt;<br />
&lt;/html&gt;<!--formatted--></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.benh.co.uk/alfresco/example-alfparsexmldocuments-using-xsl-and-freemarker/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

