<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.2 on Thu, 13 Oct 2005 21:46:52 GMT -->
<rss version="2.0">
	<channel>
		<title>Jeff Potts: XML</title>
		<link>http://radio.weblogs.com/0117027/categories/xml/</link>
		<description></description>
		<copyright>Copyright 2005 Jeff Potts</copyright>
		<lastBuildDate>Thu, 13 Oct 2005 21:46:52 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.2</generator>
		<managingEditor>jpotts@navigatorsystems.com</managingEditor>
		<webMaster>jpotts@navigatorsystems.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>18</hour>
			<hour>0</hour>
			<hour>13</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2005/10/02.html#a739</link>
			<description>&lt;P&gt;I&apos;m trying out a new approach (new for me, anyway) to writing doc. Over the years I&apos;ve gotten so tired of messing around with Word. Assuming you get your styles to cooperate the format you wind up with is the format your doc will be in forever. Sure, you can go to PDF using Distiller, but what about other formats, like HTML? Ever seen the HTML Word produces? Yuck!&lt;/P&gt;
&lt;P&gt;I&apos;ve always wanted to write my doc in a simple XML vocabulary and then transform it into the desired format. I took a look at Docbook, and that looked promising, but it seemed like too much for what I needed. Plus, I didn&apos;t have a structured authoring tool.&lt;/P&gt;
&lt;P&gt;Thursday I came across &lt;A href=&quot;http://forrest.apache.org&quot;&gt;Apache Forrest&lt;/A&gt;. I had seen Forrest before while messing around with Cocoon but had never taken the time to explore it. As it turns out, it was just what I was looking for. It is a simple XML-based publishing system. Under the covers it uses the power of Cocoon to turn a simple XML format into a basic web site, PDF, or whatever format you need. Forrest is simple to get up-and-running, but the format, as simple as it may be, is a bit too painful for unassisted plain-text editing. So I still needed a structured authoring tool.&lt;/P&gt;
&lt;P&gt;A colleague reminded me that James Clark wrote a mode for Emacs called &lt;A href=&quot;http://www.thaiopensource.com/nxml-mode/&quot;&gt;nxml&lt;/A&gt; that works with RelaxNG Schemas. He also wrote a tool called &lt;A href=&quot;http://www.thaiopensource.com/relaxng/trang.html&quot;&gt;trang&lt;/A&gt;&amp;nbsp;that converts RelaxNG schemas into RelaxNG compact syntax, which is something nxml can understand. Both are easy to install.&lt;/P&gt;
&lt;P&gt;So now, thanks to Apache Forrest, Emacs&apos; nxml-mode, and trang, I&apos;ve got a sweet little XML publishing setup.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2005/10/02.html#a739</guid>
			<pubDate>Mon, 03 Oct 2005 02:24:30 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2005/05/06.html#a709</link>
			<description>&lt;A href=&quot;http://www.cmswatch.com/News/Article/?430&quot;&gt;Evaluating XML editors&lt;/A&gt;. Check out this nice review of XML editors (thanks to Owen Ambur of XML.gov). We would have liked to see some other options included, such as Ektron&apos;s browser-based XML editor and the well-regarded tool from Xopus, along with perhaps more emphasis on usability. In any case, the long list of criteria here suggests that there is more than first meets the eye when looking at tools for managing structured content...... [&lt;A href=&quot;http://www.cmswatch.com&quot;&gt;CMSWatch Trends and Features&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2005/05/06.html#a709</guid>
			<pubDate>Fri, 06 May 2005 22:52:48 GMT</pubDate>
			<source url="http://www.cmswatch.com/RSS/cmswatch.xml">CMSWatch Trends and Features</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2005/04/08.html#a688</link>
			<description>&lt;A href=&quot;http://feeds.feedburner.com/EnterContentHere?m=29&quot;&gt;Lenya Releases Version 1.2.2&lt;/A&gt;. 
&lt;DIV xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;Today the Apache Lenya team announced the release of version 1.2.2. This release includes upgrades to the WYSIWYG editors (Kupu and BXE) and some minor UI improvements. Also, a migration to Cocoon 2.1.6 leverages new features such as more rubust caching, multi-channel output, and improvements to form handling.&lt;/DIV&gt;By &lt;a href=&quot;mailto:noemail@noemail.org&quot;&gt;noemail@noemail.org&lt;/a&gt; (Seth). [&lt;A href=&quot;http://contenthere.blogspot.com&quot;&gt;Enter Content Here&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2005/04/08.html#a688</guid>
			<pubDate>Fri, 08 Apr 2005 20:48:05 GMT</pubDate>
			<source url="http://feeds.feedburner.com/EnterContentHere">Enter Content Here</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/12/28.html#a648</link>
			<description>&lt;P&gt;Got charting working. The XMLDB pieces I noted in Step 3 and Step 4 of this &lt;A href=&quot;http://radio.weblogs.com/0117027/2004/12/27.html#a644&quot;&gt;post&lt;/A&gt;&amp;nbsp;were actually very easy. The syntax for getting XML into Xindice is&amp;nbsp;simple as is the querying. Once I got that going it was just a matter of hooking of the pieces of my pipeline to do what I wanted to do. I did have to tweak the XSLT that produces the SVG. I didn&apos;t build it to handle enough data points (bars were too wide, not enough graph area, etc.).&lt;/P&gt;
&lt;P&gt;The cron and xmldb samples were really helpful in getting this working, both from a code perspective and from a functional perspective. As I stored XML in Xindice, I&apos;d pop over to the xmldb browser sample and browse my collection to verify that it worked as expected. I used the cron sample OOTB to set up a task to run the DQL queries against Documentum on a schedule. Going forward, I&apos;ll need to incorporate an admin/config&amp;nbsp;interface into my app for creating the cron task and browsing the xmldb collections.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/12/28.html#a648</guid>
			<pubDate>Tue, 28 Dec 2004 23:14:13 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/12/27.html#a647</link>
			<description>&lt;P&gt;When I dusted off my Documentum-Cocoon integration stuff I had to do a bit of a fix up. It seems that my WDK install had either rearranged some classpath entries (maybe different versions of JARs Cocoon dependend on behind its own) or made the classpath too long. In any case, I had to update the catalina.bat file to remove the WDK entries as a temporary fix.&lt;/P&gt;
&lt;P&gt;I then noticed that when I ran any pipelines that used my Documentum-Cocoon components, they didn&apos;t seem to be getting called. My loggers weren&apos;t showing any entries and the page was just coming up blank. It turned out I had taken a little too much out of my classpath. Obviously, Tomcat needs to be able to find the Documentum DFC classes because my components rely on those. It was frustrating that no one was returning a helpful message to alert me to my blunder.&lt;/P&gt;
&lt;P&gt;Something helpful in this situation is the Cocoon &lt;A href=&quot;http://127.0.0.1:8080/cocoon/samples/status.html&quot;&gt;Status page&lt;/A&gt; in the Samples area. On that page you can show the classpath. If it doesn&apos;t see the DFC JAR and the Documentum config directory, you could be in trouble.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/12/27.html#a647</guid>
			<pubDate>Mon, 27 Dec 2004 06:31:31 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/12/27.html#a644</link>
			<description>&lt;P&gt;Made some progress on the Documentum-Cocoon stuff over the Christmas break. I&apos;m working on a piece that will allow me to dynamically build charts and graphs based on data stored in the docbase. Here&apos;s what I&apos;ve done and what&apos;s left to do:&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Step 1. Figure out how to build a bar chart in SVG&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;First, I needed to figure out how to build a chart using SVG. I found some Java code that builds charts using SVG but what I was looking to do was build the SVG programmatically using XSLT to transform my source data which will be XML coming from my Documentum Transformer.&lt;/P&gt;
&lt;P&gt;I needed something I could use to graphically draw the chart to get me started on the SVG. I downloaded a drawing tool called &lt;A href=&quot;http://www.sodipodi.com&quot;&gt;Sodipodi&lt;/A&gt; for this. It worked great. It stores everything as SVG. So all I had to do was draw my chart and save it to get a nice XML file to start with.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Step 2: Create the SVG with XSLT&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Now that I had a static SVG file I needed to create XSLT that would take source data XML and transform it into the bar chart SVG. First, I copied my static SVG file into my Cocoon install to make sure it was happy rendering it into JPEG and PNG. It was. Next, I downloaded the Batik binaries. I wanted a tool I could use to quickly view my SVG file as I tweaked it. Batik comes with an SVG viewer called &lt;A href=&quot;http://xml.apache.org/batik/svgviewer.html&quot;&gt;Squiggle&lt;/A&gt;. In WSAD, I created a test XML source data file, copied my static SVG file from Step 1 into a new XSLT file, tweaked, and then viewed the results in Squiggle.&lt;/P&gt;
&lt;P&gt;The first thing I did was add comments&amp;nbsp;so I could figure out which part of the SVG did what. In Sodipodi I had set every object&apos;s &quot;id&quot; attribute, so correlating the XML to the object it was describing was pretty easy.&amp;nbsp;Adding comments made it easy to rearrange blocks of XML to work how I needed it to in the stylesheet.&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;next thing I did was clean up the SVG by&amp;nbsp;rounding off all of the numbers Sodipodi had used for the coordinates of my shapes. Obviously with a design tool everything has got to be very precise, but for what I needed, whole numbers worked just fine and it made the XML easier to look at.&lt;/P&gt;
&lt;P&gt;I then&amp;nbsp;figured out the algorithms I&apos;d need to use to figure out how to dynamically size&amp;nbsp;and position the bars and bar legends in the chart.&lt;/P&gt;
&lt;P&gt;Finally, I replaced the hardcoded values with XSLT variables. I then updated my source XML data with new values, transformed, and voila: Dynamically generated bar chart.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT size=4&gt;Step 3:&amp;nbsp;Grab&amp;nbsp;the data from Documentum on a schedule&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The data I need to chart is in Documentum. It changes over time. Because it&apos;s historical data I need to get a snapshot from Documentum on a schedule and store the result somewhere. Then, my chart will be built on-demand via a Cocoon pipeline using the data that&apos;s been captured for a given time period.&lt;/P&gt;
&lt;P&gt;I already have a pipeline that gets the snapshot from Documentum. All I need to do is execute that pipeline on a schedule and store the result somewhere. I&apos;ve tested out the &quot;cron&quot; feature of Cocoon and it works great. It allows you to execute a pipeline on a schedule. A perfect fit.&lt;/P&gt;
&lt;P&gt;Now what I need is to put my snapshot data somewhere. I&apos;m planning on using Xindice. It&apos;s an XML database embedded in Cocoon (you can use a separate Xindice install if you want). My pipeline will pull data from Documentum, transform it (I really only need to store a subset/summarized cut of the data), and store it in Xindice.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;To complete my work for this step, I need to look at the XML:DB examples in Cocoon to learn how to stick data in Xindice from a pipeline.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT size=4&gt;Step 4: Build the chart based on the historical data&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Now that I&apos;ve got my historical data summarized and sitting in Xindice, I need to create a pipeline that will query Xindice for the data and transform the query result using the SVG I build in Step 2.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;To complete my work for this step, I need to look at the XML:DB examples in Cocoon to learn how to query XML data from Xindice using XPath.&lt;/EM&gt;&lt;/STRONG&gt; The rest should be a piece of cake.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT size=4&gt;The result&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Once this is in place, I&apos;ll have an approach and some reusable code I can use to&amp;nbsp;capture and chart source data from Documentum.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/12/27.html#a644</guid>
			<pubDate>Mon, 27 Dec 2004 06:14:57 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/11/11.html#a642</link>
			<description>&lt;P&gt;&lt;A href=&quot;http://radio.weblogs.com/0117027/navcocoon.zip&quot;&gt;Here&lt;/A&gt;&apos;s a new minor release of the Documentum-Cocoon integration components. It includes the reader and generator components I referenced &lt;A href=&quot;http://radio.weblogs.com/0117027/categories/xml/2004/08/23.html#a622&quot;&gt;a while back&lt;/A&gt;&amp;nbsp;and a minor tweak to how I&apos;m handling namespaces. (I&apos;m not convinced I&apos;m handling them the way I should, BTW). I&apos;ve mentioned needing to develop a Documentum-specific protocol but now that I have a reader and a generator, that doesn&apos;t seem as important--readers and generators could be used as &quot;internal&quot; resources within a pipeline to retrieve things like XSL from the docbase to perform transformations.&lt;/P&gt;
&lt;P&gt;I&apos;m a little torn on what to work on next regarding this integration. I&apos;d like a more elegant way to handle sessions. I can add single sign-on fairly easily so that when called from a WDK application the credentials would be passed to Cocoon and then used to create a session as the currently logged in Documentum user.&lt;/P&gt;
&lt;P&gt;I&apos;d also like to migrate the administrator dashboard prototype I&apos;ve developed to use the Cocoon Portal UI framework.&lt;/P&gt;
&lt;P&gt;Another idea is to use Cocoon scheduler to wake up periodically, execute a pipeline that reads data from Documentum, and persist that data either back to Documentum or into the Xindice XML database. This could be used to run historical reports, for example.&lt;/P&gt;
&lt;P&gt;At Momentum I ran across a presentation by a fellow doing XML pipelining with Cocoon and Documentum. We exchanged information. If he posts his components for public consumption I&apos;ll link to them.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/11/11.html#a642</guid>
			<pubDate>Fri, 12 Nov 2004 02:25:01 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/10/25.html#a641</link>
			<description>&lt;A href=&quot;http://weblog.infoworld.com/udell/2004/10/13.html#a1094&quot;&gt;XML play-doh&lt;/A&gt;. A universal canvas requires a universal way to represent data. Other solutions are conceivable, but let&apos;s accept for now that XML is a reasonable one, and that it&apos;s here to stay. How does XML become Play-doh? The first answer, for me, was Perl with its XML::Parser module. Then came XSLT (XSL Transformation), which traded away procedural idioms to gain declarative transformational power. Then came Python with its libxml/libxslt modules, which married the procedural and declarative styles in a highly interactive way. That&apos;s been my weapon of choice lately, but now there&apos;s a new contender: E4X (ECMAScript for XML). &lt;B&gt;...&lt;/B&gt; [&lt;A href=&quot;http://weblog.infoworld.com/udell/&quot;&gt;Jon&apos;s Radio&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/10/25.html#a641</guid>
			<pubDate>Mon, 25 Oct 2004 14:45:06 GMT</pubDate>
			<source url="http://weblog.infoworld.com/udell/rss.xml">Jon&apos;s Radio</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/09/26.html#a633</link>
			<description>&lt;a href=&quot;http://www.cmswatch.com/Features/TopicWatch/FeaturedTopic?feature_id=112&quot;&gt;Introduction to Structured Content Management with XML&lt;/a&gt;.
Kay Ethier and Scott Abel offer an introductory primer on how to think
about and define structure, then apply XML for better management of
your documents...... [&lt;a href=&quot;http://www.cmswatch.com&quot;&gt;CMSWatch Trends and Features&lt;/a&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/09/26.html#a633</guid>
			<pubDate>Mon, 27 Sep 2004 03:28:00 GMT</pubDate>
			<source url="http://www.cmswatch.com/RSS/cmswatch.xml">CMSWatch Trends and Features</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/08/23.html#a627</link>
			<description>&lt;A href=&quot;http://www.cmswire.com/cms/web-cms/ektron-updates-xml-authoring-tools-000414.php&quot;&gt;Ektron Updates XML Authoring Tools&lt;/A&gt;. New Hampshire based Ektron, has recently updated their popular eWebEditPro+XML web-based editing component. Of note is an enhanced API, giving developers further abilities to manipulated data and behavior in server-side code. eWebEditPro+XML integrates with Web content management systems and other Web-based applications to enable non-technical users to create &amp;#147;smart&amp;#148; forms and capture and validate data based on specific criteria, all... [&lt;A href=&quot;http://www.cmswire.com/&quot;&gt;CMSwire&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/08/23.html#a627</guid>
			<pubDate>Tue, 24 Aug 2004 03:21:26 GMT</pubDate>
			<source url="http://www.cmswire.com/index.rdf">CMSwire</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/08/23.html#a622</link>
			<description>&lt;P&gt;Got a Reader and a Generator added to my Cocoon-Documentum integration package last week. I also tested out the sendmail transformer that comes with Cocoon. Now, I can grab any file from Documentum from Cocoon using the Reader and then stream it to the browser or email it.&amp;nbsp;If I want to transform an object stored in Documentum, I can use the Generator to snag it and&amp;nbsp;then use&amp;nbsp;it as I normally would in any other pipeline. For both I&apos;m using the same protocol Documentum uses to reference documents through their &quot;virtual link&quot; support which is /&amp;lt;docbase&amp;gt;:&amp;lt;full path to content&amp;gt;.&lt;/P&gt;
&lt;P&gt;I haven&apos;t&amp;nbsp;made the Reader or the Generator available yet. I&apos;ll add it to the &lt;A href=&quot;http://radio.weblogs.com/0117027/navcocoon.zip&quot;&gt;Transformer package&lt;/A&gt; when I get a chance.&lt;/P&gt;
&lt;P&gt;What&apos;s left to do is create a protocol. That will allow me to use any Documentum object anywhere in a pipeline rather than just being restricted to Readers and Generators. That means I could store my XSL stylesheets as&amp;nbsp;objects in the Documentum repository instead of on the file system if I wanted/needed to, although that would degrade&amp;nbsp;pipeline performance.&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/08/23.html#a622</guid>
			<pubDate>Tue, 24 Aug 2004 02:15:13 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/08/09.html#a620</link>
			<description>Making progress on &quot;Stupid Documentum Tricks with Cocoon&quot;. I&apos;ve added
stylesheets so I can see Documentum query results as Microsoft Excel
spreadsheets or PDF. I also just got the mail action working--that
means I can have Cocoon send out these files via email if needed.&lt;br&gt;
</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/08/09.html#a620</guid>
			<pubDate>Tue, 10 Aug 2004 03:36:54 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/07/28.html#a618</link>
			<description>&lt;!--StartFragment --&gt;&lt;A href=&quot;http://www.xml.com/pub/a/2004/07/21/oxml.html&quot;&gt;Introducing o:XML&lt;/A&gt;&lt;!--StartFragment --&gt; o:XML is an innovative object-oriented programming language in which XML is a first class type and also provides the concrete syntax. [&lt;A href=&quot;http://www.xml.com&quot;&gt;xml.com&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/07/28.html#a618</guid>
			<pubDate>Wed, 28 Jul 2004 16:10:49 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/07/28.html#a615</link>
			<description>Updated list of &lt;A href=&quot;http://www.nmpub.com/blog/archives/000154.html&quot;&gt;eForms resources&lt;/A&gt;. [&lt;A href=&quot;http://www.nmpub.com/blog&quot;&gt;Ideas in Technology&lt;/A&gt;&lt;A href=&quot;http://www.nmpub.com/blog&quot;&gt; and Publishing&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/07/28.html#a615</guid>
			<pubDate>Wed, 28 Jul 2004 15:44:57 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/07/23.html#a614</link>
			<description>&lt;P&gt;Finally got the &lt;A href=&quot;http://radio.weblogs.com/0117027/categories/xml/2004/06/14.html#a605&quot;&gt;Documentum Cocoon Transformer&lt;/A&gt; cleaned up in WSAD to make it easier for me to share with others. &lt;A href=&quot;http://radio.weblogs.com/0117027/navcocoon.zip&quot;&gt;Here&lt;/A&gt; is version 0.1. I&apos;ve released it under the &lt;A href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot;&gt;Apache License&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;It isn&apos;t anything fancy. Very little code. There are probably other Cocoon-Documentum integration points that would be useful but I haven&apos;t knocked any out yet.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/07/23.html#a614</guid>
			<pubDate>Fri, 23 Jul 2004 22:48:28 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/07/02.html#a608</link>
			<description>I&apos;ve had some interest in the &lt;A href=&quot;http://radio.weblogs.com/0117027/categories/xml/2004/06/14.html#a605&quot;&gt;Documentum Cocoon Transformer&lt;/A&gt;. I&apos;ll probably make it available to whoever wants it.</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/07/02.html#a608</guid>
			<pubDate>Sat, 03 Jul 2004 03:36:47 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/06/14.html#a605</link>
			<description>&lt;P&gt;Finally got my Cocoon Documentum Transformer fully functional this evening thanks to the good folks at the &lt;A href=&quot;http://cocoon.apache.org/community/mail-lists.html&quot;&gt;Cocoon Users Mailing List&lt;/A&gt;. My problem was that the Documentum xDQL query was returning a full XML document. When I tried to parse that, the extra startDocument and endDocument calls were causing the runtime exception&amp;nbsp;(archived mailing list &lt;A href=&quot;http://marc.theaimsgroup.com/?l=xml-cocoon-users&amp;amp;m=108698205915453&amp;amp;w=2&quot;&gt;thread&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Now that I have my transformer working, I can configure any number of XML docs I want, each with any number of xDQL queries against any docbase my server can see. This is real handy because there are times when you want to run&amp;nbsp;the same query against multiple docbases.&amp;nbsp;I&apos;ve currently got&amp;nbsp;the pipeline&amp;nbsp;configured to style&amp;nbsp;the query results&amp;nbsp;using a generic xDQL-to-HTML stylesheet, but now that I&apos;ve got everything working, the sky is the limit. Here are some ideas...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Documentum admin portal&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Go to one page and see very quickly what the status is of key metrics across all Documentum servers, docbases,&amp;nbsp;and environments (Dev, QA, Prod). This is easily done using Cocoon&apos;s aggregation of my styled query results. If I really wanted to get fancy I could use the Cocoon portal framework and create an honest-to-goodness portal with multiple users and profiles (different users might want to monitor different things on different docbases) as well as security.&lt;/P&gt;
&lt;P&gt;But, at some point, this thing starts to approach the out-of-the-box Documentum Administrator client and I&apos;m definitely not up for reinventing that wheel. So, this one is a lower priority.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Documentum RSS alerts&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Create one or more RSS feeds that will syndicate alerts for things in the environment that need attention. To do this, I&apos;ll add another transformation in my pipeline that will apply business logic to the query results and format &quot;alerts&quot; as XML. I will then add an alert-XML-to-RSS stylesheet. (I&apos;m separating the two because I might want to format alerts in HTML).&amp;nbsp;Once that is in place, I can use a news aggregator like Amphetadesk or NewsMonster to poll my Documentum RSS alerts periodically for things that need attention.&lt;/P&gt;
&lt;P&gt;This one is nice because it does not force the admins to go to a web page--they just leave their aggregator running on their desktop.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Return Documentum Query Results in a Spreadsheet&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Sometimes you&apos;d like to be able to query multiple docbases and have the results in a spreadsheet so you can then do some analysis or whatever. Today you have to query each docbase and then cut-and-paste the results. With my transformer in place, I ought to be able to spit my query results into an Excel spreadsheet, PDF, SVG, whatever.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/06/14.html#a605</guid>
			<pubDate>Tue, 15 Jun 2004 04:50:53 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/06/10.html#a598</link>
			<description>&lt;A href=&quot;http://www.cmswatch.com/News/Article/?313&quot;&gt;RSS vs. Atom Explained&lt;/A&gt;. You probably know about the schism of sorts within the headline-syndication community between RSS (which has endured a variety of irredentist movements itself) and Atom. But if yo... [&lt;A href=&quot;http://www.cmswatch.com&quot;&gt;CMSWatch Trends and Features&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/06/10.html#a598</guid>
			<pubDate>Thu, 10 Jun 2004 05:07:51 GMT</pubDate>
			<source url="http://www.cmswatch.com/RSS/cmswatch.xml">CMSWatch Trends and Features</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/06/09.html#a597</link>
			<description>&lt;P&gt;Two things are stealing time away from&amp;nbsp;the time budget&amp;nbsp;previously allocated to blogging:&lt;/P&gt;
&lt;P&gt;1. Netflix. Having a constant supply of movies on-hand that have been on my to-be-watched list for some time is awesome, and I love that I&apos;m getting caught up. But, the blog has suffered.&lt;/P&gt;
&lt;P&gt;2. Integrating Documentum with Cocoon. I got my DQL Transformer working some time ago but I ran into a problem transforming the DQL query result with my stylesheet. What sucks is that I had to upgrade my DFC and all of my WDK apps because of my current project, and after that, I discovered the problem. So now I&apos;ve got to figure out if it was the upgrade or something else.&lt;/P&gt;
&lt;P&gt;Until now I hadn&apos;t been able to get logging to work from my custom transformer but this problem forced me to work through that. It turned out to be a simple thing that just wasn&apos;t documented clearly. The solution was to use the logger attribute on my transformer declaration in sitemap.xmap like this:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;lt;map:transformer name=&quot;dqlquery&quot; src=&quot;com.navigatorsystems.cocoon.dctm.transformation.XdqlTransformer&quot; logger=&quot;sitemap.transformer.dqlquery&quot;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The category declaration in logkit.xconf matches up with that like this:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;lt;category log-level=&quot;DEBUG&quot; name=&quot;sitemap.transformer.dqlquery&quot;&amp;gt;&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;lt;log-target id-ref=&quot;dqlquery&quot;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;nbsp; &amp;lt;log-target id-ref=&quot;error&quot;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Courier, Monospace&quot; size=2&gt;&amp;lt;/category&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The DQL Transformer works like the SQL Transformer. It receives SAX events looking for a query element. When it finds it, it executes the query against Documentum as an XDQL query (ie, the DQL query results get returned as a well-formed XML document). The XML that gets returned gets sent to the next component in the pipeline (like another transformer or a serializer).&lt;/P&gt;
&lt;P&gt;I am now back to running on Cocoon 2.1 instead of the version that came with the Cocoon &lt;A href=&quot;http://radio.weblogs.com/0117027/categories/xml/2004/04/06.html#a578&quot;&gt;book&lt;/A&gt;. And I&apos;m running it on Tomcat 4.1.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/06/09.html#a597</guid>
			<pubDate>Thu, 10 Jun 2004 04:49:32 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/05/05.html#a596</link>
			<description>&lt;A href=&quot;http://weblog.infoworld.com/udell/2004/04/30.html#a987&quot;&gt;XML databases move to the middle&lt;/A&gt;. 
&lt;BLOCKQUOTE&gt;It&apos;s true that you can use native XML databases to manage the growing number of business documents created by the new generation of XML-savvy end-user applications. It&apos;s handy, for example, to search an insurance database for incident reports that match some structured pattern of in-line metadata. But hybrid SQL/XML databases can do that too, and they can also join the structured XML content with relational columns -- a powerful combination. So XML databases are migrating into a niche that SQL/XML can&apos;t and won&apos;t occupy. They&apos;re becoming the high-performance pumps that push XML traffic around on the emerging services web. [&lt;A href=&quot;http://www.infoworld.com/reports/17SRxml.html&quot;&gt;InfoWorld.com&lt;/A&gt;] &lt;/BLOCKQUOTE&gt;This short piece is a companion to Sean McCown&apos;s excellent &lt;A href=&quot;http://www.infoworld.com/reports/17SRxml.html&quot;&gt;cover story&lt;/A&gt; which surveys the XML features of leading relational databases: Oracle, DB2, SQL Server, Sybase. &lt;B&gt;...&lt;/B&gt; [&lt;A href=&quot;http://weblog.infoworld.com/udell/&quot;&gt;Jon&apos;s Radio&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/05/05.html#a596</guid>
			<pubDate>Wed, 05 May 2004 05:06:44 GMT</pubDate>
			<source url="http://weblog.infoworld.com/udell/rss.xml">Jon&apos;s Radio</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/05/02.html#a593</link>
			<description>&lt;P&gt;Still working&amp;nbsp;through the &lt;A href=&quot;http://radio.weblogs.com/0117027/categories/xml/2004/04/06.html#a578&quot;&gt;Cocoon text&lt;/A&gt;. The book covers 2.0. I was having trouble getting some of the PDF examples and sub-map examples to work right so I went ahead and installed 2.0 instead of trying to get their examples to work on my 2.1 install. Once I&apos;m through I&apos;d like to circle back, read the 2.1 release notes and figure out why their 2.0 examples were broken.&lt;/P&gt;
&lt;P&gt;Tonight I got MySQL installed, loaded with some test data, and configured for access by Cocoon. It was extremely straightforward. I want to code up a little Cocoon app for managing the MySQL test data. Then,&amp;nbsp;I&apos;m going to hook in my Xindice install and play with that through Cocoon. Next, it&apos;ll be writing a simple generator and serializer for Documentum.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/05/02.html#a593</guid>
			<pubDate>Mon, 03 May 2004 04:43:21 GMT</pubDate>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a589</link>
			<description>&lt;A href=&quot;http://www.nmpub.com/blog/archives/000102.html&quot;&gt;XML Forms and XML Editors&lt;/A&gt;. Quick thought. Where do XML-based eForms end and XML-based editors begin? There is clearly some overlap. Certain kinds of content entry are well served by electronic forms&amp;#151;we wouldn&apos;t have built all of these industrial-strength Web sites if this weren&apos;t true.... [&lt;A href=&quot;http://www.nmpub.com/blog/&quot;&gt;Ideas in Technology and Publishing&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a589</guid>
			<pubDate>Thu, 29 Apr 2004 19:25:40 GMT</pubDate>
			<source url="http://www.nmpub.com/blog/index.rdf">Ideas in Technology and Publishing</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a588</link>
			<description>&lt;A href=&quot;http://www.nmpub.com/blog/archives/000109.html&quot;&gt;The State of the eForms Market&lt;/A&gt;. I gave my opening presentation at the Seybold eForms summit. It went well, though I have to admit to being a bit in awe of the audience, which included many of the real thinkers and doers in the XHTML and... [&lt;A href=&quot;http://www.nmpub.com/blog/&quot;&gt;Ideas in Technology and Publishing&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a588</guid>
			<pubDate>Thu, 29 Apr 2004 19:25:05 GMT</pubDate>
			<source url="http://www.nmpub.com/blog/index.rdf">Ideas in Technology and Publishing</source>
			</item>
		<item>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a587</link>
			<description>&lt;A href=&quot;http://www.nmpub.com/blog/archives/000110.html&quot;&gt;XML and the Airlines&lt;/A&gt;. I have a new article in Transform magazine about how Contintal Airlines has used XML and Web Services to automate some routine publishing and document review tasks. To quote briefly from the introduction: Aircraft maintenance is an especially content-centric process.... [&lt;A href=&quot;http://www.nmpub.com/blog/&quot;&gt;Ideas in Technology and Publishing&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/04/29.html#a587</guid>
			<pubDate>Thu, 29 Apr 2004 19:20:53 GMT</pubDate>
			<source url="http://www.nmpub.com/blog/index.rdf">Ideas in Technology and Publishing</source>
			</item>
		<item>
			<title>Cocoon texts</title>
			<link>http://radio.weblogs.com/0117027/categories/xml/2004/04/06.html#a578</link>
			<description>&lt;P&gt;I&amp;nbsp;opened&amp;nbsp;up &lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0596001975/qid=1081309988&quot;&gt;Java &amp;amp; XML&lt;/A&gt;&amp;nbsp;recently because it had some references to Cocoon. The Cocoon examples are pre 2.0, so instead I worked through some of the XML-RPC chapters which were good. I&apos;d recommend working through the whole book to anyone who&apos;s just getting started using Java and XML together.&lt;/P&gt;
&lt;P&gt;Before I made it to my intended destination (the SOAP and web services chapters), I decided to pick up &lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0735712352/qid=1081310195&quot;&gt;Cocoon: Building XML Applications&lt;/A&gt;. I had previously seen this one but passed up. So far, it is pretty good--I&apos;m glad I came back around.&amp;nbsp;They seem to do a better job explaining the architecture than some of the articles I&apos;ve read recently. I like the examples I&apos;ve worked through so far. The authors&amp;nbsp;spend a little too much time on the evolution of the net and web applications--I wish they would have devoted&amp;nbsp;that space to some of the more advanced features.&amp;nbsp;It definitely gets me excited about using Cocoon on some real projects. This is a good book for anyone starting out with XML applications with Cocoon.&lt;/P&gt;
&lt;P&gt;I&apos;m noticing there are&amp;nbsp;a few&amp;nbsp;other Cocoon texts out there but I haven&apos;t taken a look at them yet. They are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0782141315&quot;&gt;Cocoon 2 Programming: Web Publishing with XML and Java&lt;/A&gt;, Bill Brogden&lt;/LI&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0764543555&quot;&gt;Professional XML Development with Apache Tools: Xerces, Xalan, FOP, Cocoon, Axis, Xindice&lt;/A&gt;, Theodore W. Leung&lt;/LI&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0672322579&quot;&gt;Cocoon Developer&apos;s Handbook&lt;/A&gt;, Lajos Moczar, Jeremy Aston&lt;/LI&gt;&lt;/UL&gt;</description>
			<guid>http://radio.weblogs.com/0117027/categories/xml/2004/04/06.html#a578</guid>
			<pubDate>Wed, 07 Apr 2004 04:11:45 GMT</pubDate>
			</item>
		</channel>
	</rss>
