<?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>FrameAutomation.com &#187; XML</title>
	<atom:link href="http://frameautomation.com/category/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://frameautomation.com</link>
	<description>Making FrameMaker faster and more efficient</description>
	<lastBuildDate>Fri, 27 Jan 2012 15:20:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Renaming DITA Map Topics</title>
		<link>http://frameautomation.com/2010/03/24/renaming-dita-map-topics/</link>
		<comments>http://frameautomation.com/2010/03/24/renaming-dita-map-topics/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 13:52:54 +0000</pubDate>
		<dc:creator>Rick Quatro</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://frameautomation.com/?p=61</guid>
		<description><![CDATA[I have a client using MIF2Go to generate DITA from unstructured FrameMaker documents. They are very happy with the entire process with one exception: They want an easy way to rename the href values in the DITA map, and the corresponding topics on disk. I have proposed a set of FrameScript scripts that will automate [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I have a client using <a href="http://www.omsys.com">MIF2Go</a> to generate DITA from unstructured FrameMaker documents. They are very happy with the entire process with one exception: They want an easy way to rename the href values in the DITA map, and the corresponding topics on disk. I have proposed a set of FrameScript scripts that will automate the process. The script proposes new topic names, based on the topicref&#8217;s navtitle value. You can have the script automatically use the new names, or you can use a &#8220;semi-automatic mode&#8221; where the old names and proposed new names are written to and Excel file. Then you can use Excel to fine-tune the new names. A second script quickly applies the spreadsheet names to the DITA map and corresponding topic files.</p>
<p>You can take a look at the <a href="http://www.rickquatro.com/ManageTopicRefNames.pdf">documentation here</a>. The cost for the set of scripts is $95 US. To purchase the scripts, please contact <a title="Send mail to rick@frameexpert.com" href="mailto:rick@frameexpert.com">rick@frameexpert.com</a>.</p>
<p style="text-align: right;">&#8211;Rick</p>
]]></content:encoded>
			<wfw:commentRss>http://frameautomation.com/2010/03/24/renaming-dita-map-topics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FrameSLT: A Great FrameMaker Plugin</title>
		<link>http://frameautomation.com/2010/03/15/frameslt-a-great-framemaker-plugin/</link>
		<comments>http://frameautomation.com/2010/03/15/frameslt-a-great-framemaker-plugin/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 00:28:10 +0000</pubDate>
		<dc:creator>Rick Quatro</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://frameautomation.com/?p=34</guid>
		<description><![CDATA[There are many useful FrameMaker plugins out there, but one of my favorites is FrameSLT by West Street Consulting, operated by Russ Ward. I was reminded of how powerful it is when I recently helped a client add structure to a large number of unstructured documents. One issue was a very specific sequence of elements [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>There are many useful FrameMaker plugins out there, but one of my favorites is FrameSLT by <a href="http://www.weststreetconsulting.com">West Street Consulting</a>, operated by Russ Ward. I was reminded of how powerful it is when I recently helped a client add structure to a large number of unstructured documents. One issue was a very specific sequence of elements where text nodes needed to be wrapped in &lt;cmdname&gt; elements. In the screenshot below, I have the text nodes indicated by red rectangles. The yellow highlighting indicates the specific context where the text nodes needed to be located.</p>
<p><a href="http://frameautomation.com/blog/wp-content/uploads/2010/03/structure_before.png"><img class="alignnone size-full wp-image-35" title="structure_before" src="http://frameautomation.com/blog/wp-content/uploads/2010/03/structure_before.png" alt="" width="517" height="511" /></a><span id="more-34"></span>Doing it by hand would entail searching for &lt;codeph&gt; elements and then visually checking their parent elements to see if the text nodes should be wrapped. This would not be a reasonable approach for hundreds of documents to process. Enter FrameSLT, which allows you to use XPath expressions to search for element/attribute combinations in structured FrameMaker documents. Here is a screenshot of FrameSLT&#8217;s &#8220;Node Wizard&#8221; with the XPath statement in place.</p>
<p><a href="http://frameautomation.com/blog/wp-content/uploads/2010/03/frameslt.png"><img class="alignnone size-full wp-image-37" title="frameslt" src="http://frameautomation.com/blog/wp-content/uploads/2010/03/frameslt.png" alt="" width="651" height="279" /></a></p>
<p>Here is the breakdown of the XPath statement:</p>
<pre>//text()</pre>
<p>Start at the top of the structure and find unwrapped text nodes.</p>
<pre>[parent::codeph]</pre>
<p>Make sure the text node is a child of a &lt;codeph&gt; element.</p>
<pre>[parent::codeblock]</pre>
<p>Make sure the &lt;codeph&gt; element is a child of a &lt;codeblock&gt; element.</p>
<pre>[parent::section[@outputclass="cli-syntax"]</pre>
<p>Make sure the &lt;codeblock&gt; element is a child of a &lt;section&gt; element, whose outputclass attribute value is &#8220;cli-syntax&#8221;.</p>
<p>As you can see, XPath lets you be very specific with the elements and attributes that you are trying to locate.</p>
<p>If you look at the lower highlighting on the Node Wizard screenshot above, you can see that FrameSLT lets you perform actions on the elements that it finds. In this case, we want to wrap the text nodes in &lt;cmdname&gt; elements. FrameSLT can perform this operation on hundreds of text nodes in seconds; the results are shown in yellow below.</p>
<p><a href="http://frameautomation.com/blog/wp-content/uploads/2010/03/structure_after.png"><img class="alignnone size-full wp-image-43" title="Structure After" src="http://frameautomation.com/blog/wp-content/uploads/2010/03/structure_after.png" alt="" width="517" height="511" /></a></p>
<p>FrameSLT has a bunch of other useful features that we won&#8217;t go into here. Try out the demo version and you will discover more powerful tools for working with structured FrameMaker documents.</p>
<p>One more thing to mention for FrameScript users: FrameSLT can be controlled by FrameScript scripts and FDK clients. This gives you the capability to use XPath in your scripts (and plugins), which greatly simplifies the code required for locating elements and attributes. For more information, visit <a href="http://www.weststreetconsulting.com">West Street Consulting</a>.</p>
<p style="text-align: right;">&#8211; Rick</p>
]]></content:encoded>
			<wfw:commentRss>http://frameautomation.com/2010/03/15/frameslt-a-great-framemaker-plugin/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

