<?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>Inasmuch as...</title>
	<atom:link href="http://inasmuch.as/feed/" rel="self" type="application/rss+xml" />
	<link>http://inasmuch.as</link>
	<description>...Life&#039;s but a walking shadow</description>
	<lastBuildDate>Sat, 04 Feb 2012 13:21:23 +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>New XSL-FO 2.0 Working Draft</title>
		<link>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/</link>
		<comments>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:16:19 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1247</guid>
		<description><![CDATA[Inasmuch as there&#8217;s work been done, there&#8217;s a new XSL FO 2.0 Working Draft at http://www.w3.org/TR/xslfo20/.  This version adds Ruby, numbering, and side-by-side formatting.]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> there&#8217;s work been done, there&#8217;s a new XSL FO 2.0 Working Draft at <a title="XSL FO 2.0 Working Draft" href="http://www.w3.org/TR/xslfo20/">http://www.w3.org/TR/xslfo20/</a>.  This version adds Ruby, numbering, and side-by-side formatting.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fujitsu P1630 Drive Replacement</title>
		<link>http://inasmuch.as/2012/01/30/p1630-drive-replacement/</link>
		<comments>http://inasmuch.as/2012/01/30/p1630-drive-replacement/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:00:00 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1230</guid>
		<description><![CDATA[Inasmuch as there&#8217;s nothing quite like the warranty expiring to turn a person&#8217;s thoughts to tinkering with the insides of their computer, I recently upgraded the 1.8-inch solid-state drive of my Fujitsu P1630. This procedure worked for me.  There is &#8230; <a href="http://inasmuch.as/2012/01/30/p1630-drive-replacement/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> there&#8217;s nothing quite like the warranty expiring to turn a person&#8217;s thoughts to tinkering with the insides of their computer, I recently upgraded the 1.8-inch solid-state drive of my Fujitsu P1630.<span id="more-1230"></span></p>
<blockquote><p>This procedure worked for me.  There is no guarantee that it would work for you, and you use these instructions solely at your own risk.  As always, back-up your data and remove the battery before fiddling with the insides of your computer.</p></blockquote>
<p>The underside of the P1630, with battery removed, is shown below:</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-underside.png"><img class="aligncenter size-full wp-image-1232" title="P1630 underside" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-underside.png" alt="" width="570" height="416" /></a>The drive bay with the cover removed is shown below. The drive is covered by a plastic sheet, and it&#8217;s the four foam-rubber pads at the edges of the sheet that holds the drive in place.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-cover-removed.png"><img class="aligncenter size-full wp-image-1234" title="P1630 with drive bay cover removed" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-cover-removed.png" alt="" width="570" height="466" /></a>Every muscle, every sinew, every fibre of your being will scream that it isn&#8217;t so, but you just need to lever up the disk drive to be able to take it out (taking care not to damage the flat cable connecting to the drive):</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-half-removed.png"><img class="aligncenter size-full wp-image-1235" title="P1630 with drive half removed" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-half-removed.png" alt="" width="570" height="387" /></a>After you disconnect the flat cable from the drive (another moment where you wonder exactly how much force will be &#8220;enough&#8221; force), you can take the plastic/foam-rubber combo off the old drive, put it on the new drive, and do the reverse procedure to reassemble the P1630 with the new drive.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-plastic-cover.png"><img class="aligncenter size-full wp-image-1236" title="P1630 drive and plastic cover" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-plastic-cover.png" alt="" width="570" height="368" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/30/p1630-drive-replacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>imenu-generic-expression</title>
		<link>http://inasmuch.as/2012/01/13/imenu-generic-expression/</link>
		<comments>http://inasmuch.as/2012/01/13/imenu-generic-expression/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 11:27:30 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1207</guid>
		<description><![CDATA[Inasmuch as `imenu-generic-expression` makes using Emacs&#8217; &#8220;Imenu&#8221; simpler, it&#8217;s this triennial&#8217;s &#8220;Obscure Emacs variable of the week&#8220;. Emacs&#8217; &#8220;Imenu&#8221; feature puts in the menu-bar a menu whose each menu item (or sub-menu item) jumps you to a location in the &#8230; <a href="http://inasmuch.as/2012/01/13/imenu-generic-expression/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> <code>`imenu-generic-expression`</code> makes using Emacs&#8217; &#8220;Imenu&#8221; simpler, it&#8217;s this triennial&#8217;s &#8220;<a title="Obscure Emacs variable of the week" href="http://inasmuch.as/2009/02/06/obscure-emacs-variable-of-the-week/">Obscure Emacs variable of the week</a>&#8220;.<br />
<span id="more-1207"></span></p>
<p>Emacs&#8217; &#8220;Imenu&#8221; feature puts in the menu-bar a menu whose each menu item (or sub-menu item) jumps you to a location in the current buffer.  Emacs being Emacs, Imenu is highly configurable, and quite often an Emacs mode will set up the Imenu menu to point to locations in the buffer that are significant for that mode/file-type.  For example, my <a href="https://sourceforge.net/apps/trac/xslide/wiki/WikiStart" title="'xslide' XSL mode for Emacs at SourceForge">xslide</a> and <a href="http://www.menteith.com/wiki/tdtd" title="'tdtd' Emacs mode for DTDs">tdtd</a> modes each set up very different Imenu menus.</p>
<p><code>`imenu-generic-expression`</code> is a variable that, at its simplest, contains a list of three-item lists that each specify a menu title, a regular expression, and the number corresponding to the subexpression of the regular expression to use as the resulting menu item&#8217;s name.  When <code>`imenu-generic-expression`</code> is set and the Imenu menu bar item is enabled (using <code>`imenu-add-to-menubar`</code>, naturally), Emacs constructs a buffer index by searching the buffer using each of the regular expressions in turn and then builds up the menu based on the matches found.</p>
<p>For example, here&#8217;s the <code>`rnc-mode-hook'</code> that I use to add a &#8220;RNC&#8221; menu when using <code>`rnc-mode'</code> to edit RELAX NG compact syntax (RNC) files.  The hook sets <code>`imenu-generic-expression`</code> with patterns that match significant declarations in a RNC file (with separate sub-menus for <code>include</code>, <code>namespace</code>, and <code>datatypes</code> declaration types) then enables Imenu with <code>`imenu-add-to-menubar`</code>.  A screenshot of the resulting menu is action is shown after the code.</p>
<pre>(require 'rnc-mode)
(add-hook 'rnc-mode-hook
 (lambda ()
   (set-variable
    'imenu-generic-expression
    (list
     (list
      nil
      "^\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*[&amp;|]?=" 1)
     (list
      "include"
      "^include\\s-+['\"]\\([a-zA-Z][-a-zA-Z0-9._]*\\)['\"]" 1)
     (list
      "namespace"
      "^\\(default\\s-+\\)?namespace\\s-+\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*=" 2)
     (list
      "dataypes"
      "^datatypes\\s-+\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*=" 1)))
   (imenu-add-to-menubar "RNC")))
</pre>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/imenu-generic-expression.png"><img src="http://inasmuch.as/wp-content/uploads/2012/01/imenu-generic-expression.png" alt="" title="&#039;RNC&#039; Imenu menu" width="765" height="705" class="aligncenter size-full wp-image-1217" /></a></p>
<p>The only downside to using <code>`imenu-add-to-menubar`</code> compared to doing more of it yourself is that <code>`imenu-add-to-menubar`</code> doesn&#8217;t provide a way to sort the menu items, so the order of the matches in the file is the order of the items in the menu or sub-menu.  I wrote both xslide and tdtd before I knew of <code>`imenu-add-to-menubar`</code>, but the recently revived <a href="http://inasmuch.as/2011/10/21/xslide-alive/" title="xslide alive!">xslide for XSLT 2.0</a> still uses a custom function to make the Imenu index because I also like to sort the index entries alphabetically within each menu or sub-menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/13/imenu-generic-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schematron Testing Framework</title>
		<link>http://inasmuch.as/2011/12/21/schematron-testing-framework/</link>
		<comments>http://inasmuch.as/2011/12/21/schematron-testing-framework/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 09:07:49 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[Schematron]]></category>
		<category><![CDATA[XProc]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1170</guid>
		<description><![CDATA[Inasmuch as a suite of Schematron tests contains many contexts where a bug in a document will make a Schematron assert fail or a report succeed, it follows that for any new test suite and any reasonably sized but buggy &#8230; <a href="http://inasmuch.as/2011/12/21/schematron-testing-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> a suite of Schematron tests contains many contexts where a bug in a document will make a Schematron <code>assert</code> fail or a <code>report</code> succeed, it follows that for any new test suite and any reasonably sized but buggy document set, there will straight away be many <code>assert</code> and <code>report</code> messages produced by the tests.  When that happens, how can you be sure your Schematron tests all worked as expected?  How can you separate the expected results from the unexpected?  What&#8217;s needed is a way to characterise the Schematron tests before you start as reporting only what they should, no more, and no less.</p>
<p>stf (<a title="stf on GitHub." href="https://github.com/MenteaXML/stf">https://github.com/MenteaXML/stf</a>) is a XProc pipeline that runs a Schematron test suite on test documents (that you create) and winnows out the expected results and report just the unexpected.  stf uses a processing instruction (PI) in each of a set of (typically, small) test documents to indicate the test&#8217;s expected <code>assert</code>s and <code>report</code>s: the expected results are ignored, and all you see is what&#8217;s extra or missing.  And when you have no more unexpected results from your test documents, you&#8217;re ready to use the Schematron on your real documents.<span id="more-1170"></span></p>
<h1>&lt;?stf?&gt; Processing Instruction</h1>
<p>The format of the PI is:</p>
<pre><code>&lt;?stf \s+ ( '#NONE' | ROLE ':' COUNT ( \s+ ROLE ':' COUNT )* ) ?&gt; </code></pre>
<p>where:</p>
<ul>
<li><code>stf</code>: PI target</li>
<li><code>#NONE</code>: No faild <code>assert</code> or successful <code>report</code> expected. Use with &#8216;go&#8217; tests that should not produce any <code>assert</code> or <code>report</code> messages. If running Schematron on the test produces any <code>assert</code>s or <code>report</code>s, they are reported as an error.</li>
<li><em>ROLE</em>: Token corresponding to <code>@role</code> value of an <code>assert</code> or a <code>report</code> in the Schematron. Schematron allows <code>@role</code> to be an arbitrary string, but restricting it to a single token makes it easier to deal with the PI using regular expressions rather than having to parse roles that may contain spaces.</li>
<li><em>COUNT</em>: Integer number of expected occurrences of failed <code>assert</code>s or successful <code>report</code>s with <code>@role</code> value matching <em>ROLE</em>. A mismatch between the expected and actual count is reported as an error. A <em>ROLE</em> starting with <code>#</code> does not have its count checked.</li>
<li><code>\s</code>: Whitespace character</li>
</ul>
<h1>Examples</h1>
<pre><code>&lt;?stf ERROR_FOO:2 ERROR_BAR:1 ?&gt; </code></pre>
<p>A failed <code>assert</code> or successful <code>report</code> with <code>role="ERROR_FOO"</code> is expected twice in the SVRL from the test document, and either with <code>role="ERROR_BAR"</code> is expected once.</p>
<pre><code>&lt;?stf ERROR_FOO:2 #ERROR_BAR:1 ?&gt; </code></pre>
<p>A failed <code>assert</code> or successful <code>report</code> with <code>role="ERROR_FOO"</code> is expected twice in the SVRL, and no <code>assert</code> or <code>report</code> with <code>role="ERROR_BAR"</code> is expected since <code>#</code> precedes <code>ERROR_BAR</code>.</p>
<pre><code>&lt;?stf #NONE ?&gt; </code></pre>
<p>No <code>assert</code> or <code>report</code> are expected for the current document.</p>
<h1>Usage</h1>
<p>stf requires Ant and Calabash. Calabash (as used here) requires Saxon. All three require Java.</p>
<ol>
<li>Set the properties in <code>properties.xml</code> to match your local setup.</li>
<li>Write the tests, including a <code>&lt;?stf?&gt;</code> processing instruction in each.<br />
One practice is to use a <code>tests</code> directory containing a <code>go</code> subdirectory for tests that are expected to produce no Schematron <code>assert</code> or <code>report</code> messages and a <code>nogo</code> subdirectory for tests that are expected to have errors, but you can organise them any way you like.</li>
<li>Run Ant<br />
You can run the <code>test.schematron</code> from <code>build.xml </code>directly:</p>
<pre>ant -f /path/to/stf/build.xml test.schematron</pre>
<p>or you can import the stf <code>build.xml</code> into your local <code>build.xml</code>:</p>
<pre>&lt;property name="stf.dir" location="/path/to/stf" /&gt;
&lt;import file="${stf.dir}/build.xml" /&gt;</pre>
<p>and run the <code>test.schematron</code> target, or you can import the stf <code>build.xml</code> and use the <code>&lt;test.schematron/&gt;</code> macro in a target in your local <code>build.xml</code>:</p>
<pre>&lt;target name="test"&gt;
  &lt;test.schematron /&gt;
  &lt;xspec xspec.xml="tests.xspec" /&gt;
&lt;/target&gt;</pre>
</li>
</ol>
<h1>Ant Properties</h1>
<ul>
<li><code>${schematron}</code>: Schematron file to test.</li>
<li><code>${tests.dir}</code>: Directory containing test files.</li>
<li><code>${calabash.jar}</code>: Location of Calabash jar.</li>
<li><code>${saxon.jar}</code>: Location of Saxon 9.2 (or later) jar.</li>
<li><code>${resolver.jar}</code>: Location of XML catalog resolver library.</li>
<li><code>${resolver.class}</code>: Class name of XML catalog resolver. Default is <code>org.apache.xml.resolver.tools.CatalogResolver</code>.</li>
</ul>
<h1>XProc Processor</h1>
<p>The pipeline currently depends on Calabash extensions.</p>
<p>The version of Calabash used in testing depended on Saxon 9.2 or later.</p>
<h2>Running (Not Testing) Schematron</h2>
<p>Ant build file also includes <code>schematron</code> macro and <code>run.schematron</code> target to make it easy to run Schematron on real files once you&#8217;re sure it works on your tests.</p>
<h2>License</h2>
<p>Licensed under the terms of a BSD license.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/12/21/schematron-testing-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL-FO Meetup at XML Prague 2012</title>
		<link>http://inasmuch.as/2011/12/18/xsl-fo-meetup-at-xml-prague-2012/</link>
		<comments>http://inasmuch.as/2011/12/18/xsl-fo-meetup-at-xml-prague-2012/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 20:45:38 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1164</guid>
		<description><![CDATA[Inasmuch as XML Prague 2012 includes &#8220;Pre-conference Friday&#8220;, the W3C XML Print and Page Layout Working Group is looking to host a XSL-FO meetup before XML Prague on Friday, 10 February 2012. The format and content will depend on your &#8230; <a href="http://inasmuch.as/2011/12/18/xsl-fo-meetup-at-xml-prague-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> <a title="XML Prague 2012" href="http://www.xmlprague.cz/2012/index.html">XML Prague 2012</a> includes &#8220;<a title="XML Prague 2012 &quot;Pre-conference Friday&quot; page" href="http://www.xmlprague.cz/2012/pre-conference-friday.html">Pre-conference Friday</a>&#8220;, the W3C XML Print and Page Layout Working Group is looking to host a XSL-FO meetup before XML Prague on Friday, 10 February 2012. The format and content will depend on your feedback. Possible ideas include:</p>
<ul>
<li>Update on the XSL-FO 2.0 work</li>
<li>&#8216;Ignite&#8217; lightning talks on XSL-FO</li>
<li>XSL-FO tutorial</li>
</ul>
<p>If you use Twitter, register your interest at the &#8220;<a title="Lanyrd page." href="http://lanyrd.com/2012/xslfoprague/">XSL-FO meetup @ XML Prague 2012</a>&#8221; page on Lanyrd.com, otherwise send me email.  If you have suggestions for the format or content, likewise add something to the Lanyrd page or send me email.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/12/18/xsl-fo-meetup-at-xml-prague-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page Regions in XSL-FO</title>
		<link>http://inasmuch.as/2011/11/25/page-regions-in-xsl-fo/</link>
		<comments>http://inasmuch.as/2011/11/25/page-regions-in-xsl-fo/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 14:51:52 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=997</guid>
		<description><![CDATA[Inasmuch as I used this new sequence of images in my recent XSLT and XSL-FO talk at XML Summer School 2011, here&#8217;s an outline of page regions in XSL-FO. The fo:simple-page-master FO in XSL 1.1 defines the dimensions of a &#8230; <a href="http://inasmuch.as/2011/11/25/page-regions-in-xsl-fo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> I used this new sequence of images in my recent XSLT and XSL-FO talk at <a title="XML Summer School 2011 ends on high note" href="http://inasmuch.as/2011/09/26/xml-summer-school-2011-high-not/">XML Summer School 2011</a>, here&#8217;s an outline of page regions in XSL-FO.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/regions-lr.png"><img class="alignleft size-medium wp-image-1085" title="XSL-FO page regions" src="http://inasmuch.as/wp-content/uploads/2011/11/regions-lr-213x300.png" alt="" width="145" height="204" /></a>The <code>fo:simple-page-master</code> FO in XSL 1.1 defines the dimensions of a page. A document may have more than one <code>fo:simple-page-master</code>, and the same <code>fo:simple-page-master</code> may be used in multiple contexts. A <code>fo:simple-page-master</code> has up to five regions: <code>fo:region-body</code>, <code>fo:region-start</code>, <code>fo:region-end</code>, <code>fo:region-start</code>, and <code>fo:region-end</code>.  Only <code>fo:region-body</code> is required.  The adjacent figure shows one arrangement of the regions.<span id="more-997"></span></p>
<h1>Effect of writing mode</h1>
<p><a style="clear: left;" href="http://inasmuch.as/wp-content/uploads/2011/11/regions-lr-rl.png"><img class="size-medium wp-image-1090 alignright" title="Page regions in &quot;lr&quot; and &quot;rl&quot; writing modes" src="http://inasmuch.as/wp-content/uploads/2011/11/regions-lr-rl-300x204.png" alt="" width="300" height="204" /></a>The FO names for the outer regions include &#8220;-before&#8221;, &#8220;-after&#8221;, &#8220;-start&#8221;, and &#8220;-end&#8221; rather than &#8220;-top&#8221;, &#8220;-bottom&#8221;, &#8220;-left&#8221;, and &#8220;-right&#8221; since the relative position of the regions depends on the writing mode.</p>
<p>This figure shows the arrangement of the regions for both &#8220;lr&#8221; (short for &#8220;tb-lr&#8217; for &#8220;top-to-bottom, right-to-left&#8221;) and &#8220;rl&#8221; (you can work it out) writing modes. As you can imagine, the arrangements would be different again for &#8220;tb-rl&#8221; and &#8220;bt-rl&#8221;, etc.</p>
<h1>Regions have default names</h1>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/regions-default-names.png"><img class="alignleft size-medium wp-image-1097" title="Default region names" src="http://inasmuch.as/wp-content/uploads/2011/11/regions-default-names-213x300.png" alt="" width="145" height="204" /></a>Regions have names, and content is directed to the page regions based on the region&#8217;s name, not on its FO type (a.k.a. its &#8220;class&#8221;). This time, the figure shows the default, initial name for each page region FO, which just happens to look a lot like the FO&#8217;s name, such as &#8220;xsl-region-body&#8221; for <code>fo:region-body</code>.</p>
<h1>Or use your own names</h1>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/regions-custom-names.png"><img class="alignright size-large wp-image-1100" title="Page masters with default and custom region names" src="http://inasmuch.as/wp-content/uploads/2011/11/regions-custom-names-300x181.png" alt="" width="338" height="204" /></a>But you don&#8217;t have to stick with the initial names. You can define the regions with any name, such as &#8220;my-before&#8221;, &#8220;my-end&#8221;, or even &#8220;George&#8221;, provided it&#8217;s:</p>
<ul>
<li>A valid name. It has to be, in XML terminology, a NCName, which means, e.g., it can&#8217;t contain a colon and has to start with a letter (or other allowed character).</li>
<li>Unique within the region names for the page master</li>
<li>Not the initial name for a different class of region: i.e., you can&#8217;t call your <code>fo:region-before</code> &#8220;xsl-region-after&#8221; and expect things to work</li>
</ul>
<p>An additional proviso that works across page masters is that you can&#8217;t use the same name on different region types on different page masters. So &#8220;George&#8221; can&#8217;t be a <code>fo:region-before</code> on one page master and <code>fo:region-start</code> on another. Sorry, George.</p>
<h1>Reusing region names across page masters</h1>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/masters.png"><img class="aligncenter size-full wp-image-1106" title="Multiple page masters with repeated region names" src="http://inasmuch.as/wp-content/uploads/2011/11/masters.png" alt="" width="812" height="361" /></a>The flip-side of the proviso above is that you <em>can</em> use the same region name for the same region on different page masters. This figure shows three page masters that will separately be used for:</p>
<ul>
<li>The first page in a page sequence;</li>
<li>The odd pages; and</li>
<li>The even pages.</li>
</ul>
<p>Since (for conventional, &#8220;tb-lr&#8221; documents, anyway) the first page of the first page sequence is numbered &#8220;1&#8243; and appears on the right-hand (recto) side of a spread and (conventionally, again) following page sequences also start on an odd-numbered, recto page, the page master for the first pages often has the same header and/or footer as other pages or other odd-numbered pages. In this case, the &#8220;First&#8221; page master and the &#8220;Odd&#8221; page master have the same names for the same regions except <code>xsl:region-end</code>, which is named &#8220;First-Outside&#8221; on the &#8220;First&#8221; page master and &#8220;Odd-Outside&#8221; on the &#8220;Odd&#8221; page master. (Note that repetition of &#8220;First&#8221; and &#8220;Odd&#8221; in region names is for convenience only and isn&#8217;t a requirement of XSL-FO.)</p>
<h1>Arrange page masters into sequence</h1>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/page-sequence-masters.png"><img class="aligncenter size-full wp-image-1108" title="Sequence of pages made from page masters" src="http://inasmuch.as/wp-content/uploads/2011/11/page-sequence-masters.png" alt="" width="718" height="278" /></a>When the multiple page masters are used to make a sequence of pages (using <code>fo:page-sequence-master</code>, as you do), you can see the repetition of the regions across the multiple pages. When overlaid over pages from the exercises used in the course, you can see the same footer in use on the odd pages, a different footer on the even pages, the different <code>fo:region-end</code> content on the first and the later odd pages, and (in this case) nothing at all in the <code>fo:region-start</code> of any page.</p>
<h1>Content from <code>fo:page-sequence</code></h1>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/page-sequence-static.png"><img class="aligncenter size-full wp-image-1113" title="fo:static-content directed to named page regions" src="http://inasmuch.as/wp-content/uploads/2011/11/page-sequence-static.png" alt="" width="828" height="513" /></a>The content of the page regions, including the content of the <code>fo:region-body</code>, comes from the <code>fo:page-sequence</code>: (conventionally) the content of the outer regions are defined in <code>fo:static-content</code>, and the content of the <code>fo:region-body</code>, in the <code>fo:flow</code>.</p>
<p>The correspondence between <code>fo:static-content</code> and an outer region is by name: put simply, when a page master for a page has a region with the same name as the &#8220;<code>flow-name</code>&#8221; property of a <code>fo:static-content</code> of the current <code>fo:page-sequence</code>, the areas from the formatting objects within the <code>fo:static-content</code> are repeated within that region on that page. (The not put simply version could see things rearranged through a XSL 1.1 <code>fo:flow-map</code> and multiple <code>fo:flow</code> with content directed to multiple regions on the page, but that&#8217;s something for another time.)</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/11/25/page-regions-in-xsl-fo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ta-da! A new website!</title>
		<link>http://inasmuch.as/2011/11/25/ta-da-a-new-websit/</link>
		<comments>http://inasmuch.as/2011/11/25/ta-da-a-new-websit/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 11:38:46 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Company]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1142</guid>
		<description><![CDATA[Inasmuch as it&#8217;s finally done, I&#8217;m pleased to announce the availability of the new http://www.mentea.net/ website. I&#8217;d like to thank my clients, past and present, who provided such positive testimonials for inclusion in the new site.]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> it&#8217;s finally done, I&#8217;m pleased to announce the availability of the new <a title="Mentea" href="http://www.mentea.net/">http://www.mentea.net/</a> website.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/11/new-website.png"><img class="aligncenter size-large wp-image-1143" title="Mentea website home page" src="http://inasmuch.as/wp-content/uploads/2011/11/new-website-978x1024.png" alt="" width="584" height="611" /></a>I&#8217;d like to thank my clients, past and present, who provided such positive <a title="Testimonials page" href="https://www.mentea.net/testimonials.html">testimonials</a> for inclusion in the new site.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/11/25/ta-da-a-new-websit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In the beginning, there was the page&#8230;</title>
		<link>http://inasmuch.as/2011/10/21/in-the-beginning/</link>
		<comments>http://inasmuch.as/2011/10/21/in-the-beginning/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:08:47 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSL]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=532</guid>
		<description><![CDATA[Inasmuch as the second chapter of the development of XSL formatting is now being written with XSL-FO  2.0, here&#8217;s a version of its first chapter that was popular back at XML Prague 2010. In the beginning, there was the page. &#8230; <a href="http://inasmuch.as/2011/10/21/in-the-beginning/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> the second chapter of the development of XSL formatting is now being written with <a title="New XSL-FO 2.0 Working Draft" href="/2011/09/28/new-xsl-fo-2-0-working-draft/">XSL-FO  2.0</a>, here&#8217;s a version of its first chapter that was popular back at <a title="&quot;What XSL 2.0 means for implementers and users&quot; session at XML Prague 2010" href="http://www.xmlprague.cz/2010/sessions.html#What-XSL-2.0-means-for-implementers-and-users">XML Prague 2010</a>.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-blank-page.jpg"><img class="alignright size-medium wp-image-1048" title="Blank page" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-blank-page-212x300.jpg" alt="" width="53" height="75" /></a>In the beginning, there was the page. And the page was without objects and void, and not a whole lot was upon the face of the page.<span id="more-532"></span></p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-text.png"><img class="size-medium wp-image-1055 alignleft" title="Page with only text" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-text-212x300.png" alt="" width="53" height="75" /></a>And XSL said, let there be text, and there was text.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-region-body.png"><img class="alignright size-medium wp-image-1058" title="Page with text in body region" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-region-body-212x300.png" alt="" width="53" height="75" /></a>And XSL saw the text, and they divided the text from the page. And XSL called the text the region-body, and the space they called the margins. And the region-body and the margins were the first formatting.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-blocks.png"><img class="alignleft size-medium wp-image-1062" title="lorem-ipsum-page-blocks" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-blocks-211x300.png" alt="" width="53" height="75" /></a>And XSL said, let there be blocks in the midst of the text, and let them divide the text from the text. And it was so. And the text with blocks was the second formatting.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-numbers.png"><img class="size-medium wp-image-1064 alignright" title="Page with text in body region and with outside regions" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-page-numbers-211x300.png" alt="" width="53" height="75" /></a>And XSL said, let there be regions in the edges of the page to hold static content, and let them be for page numbers and running heads, and it was so.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-recto-verso.png"><img class="alignleft size-medium wp-image-1066" title="Spread with recto and verso pages" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-recto-verso-300x211.png" alt="" width="100" height="70" /></a>And XSL made the two page sides, the recto for the right hand side and the verso for the left.</p>
<p>And XSL set them in the page masters to apply to all pages. And the recto and the verso were the third formatting.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-properties.png"><img class="alignright size-medium wp-image-1068" title="Text and blocks with properties applied" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-properties-300x211.png" alt="" width="100" height="70" /></a>And XSL said, let the blocks bring forth abundantly inline objects and properties that apply to them.</p>
<p>And XSL created <code>fo:character</code> and every inline FO after their kind, and every property after its kind, and it was good.</p>
<p>And the inline FOs and properties were the fourth formatting.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-columns.png"><img class="alignleft size-medium wp-image-1070" title="Spread with graphic, table, and columns" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-columns-300x211.png" alt="" width="100" height="70" /></a>And XSL said, let users make graphics, and tables, and columns, and side floats and other areas. And the graphics and tables and columns and side floats were the fifth formatting.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-xsl11.png"><img class="alignright size-medium wp-image-1072" title="Spread with change bars" src="http://inasmuch.as/wp-content/uploads/2011/10/lorem-ipsum-xsl11-300x211.png" alt="" width="100" height="70" /></a>Then XSL did errata until XSL 1.1, which added change bars, table markers, indexing FOs and much that was good.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/10/21/in-the-beginning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xslide alive!</title>
		<link>http://inasmuch.as/2011/10/21/xslide-alive/</link>
		<comments>http://inasmuch.as/2011/10/21/xslide-alive/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:08:07 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1035</guid>
		<description><![CDATA[Inasmuch as you, like me, may have missed xslide&#8217;s &#8220;Template&#8221; menu when editing XSLT using Emacs&#8217; nXML-mode, I&#8217;ve made available my &#8220;xslide2&#8243; XSLT mode for Emacs that I&#8217;ve been using for a while.  This new xslide is a derived mode &#8230; <a href="http://inasmuch.as/2011/10/21/xslide-alive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> you, like me, may have missed xslide&#8217;s &#8220;Template&#8221; menu when editing XSLT using Emacs&#8217; nXML-mode, I&#8217;ve made available my &#8220;xslide2&#8243; XSLT mode for Emacs that I&#8217;ve been using for a while.  This new xslide is a derived mode that uses nXML-mode for nearly everything and adds back some of the XSLT-specific parts of xslide.</p>
<p>Future development is happening on the Trac and Subversion for the xslide SourceForge project.  See <a title="xslide Trac at SourceForge" href="https://sourceforge.net/apps/trac/xslide/wiki/WikiStart">https://sourceforge.net/apps/trac/xslide/wiki/WikiStart</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/10/21/xslide-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Websites returning</title>
		<link>http://inasmuch.as/2011/09/29/websites-returning/</link>
		<comments>http://inasmuch.as/2011/09/29/websites-returning/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 21:33:58 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=985</guid>
		<description><![CDATA[Inasmuch as I accidentally deleted most of my websites and this blog last night, my &#8220;Full backup of all your data to remote servers every day&#8221; webhost then only had a backup from 27 June, i.e., somewhere in the middle &#8230; <a href="http://inasmuch.as/2011/09/29/websites-returning/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> I accidentally deleted most of my websites and this blog last night, my &#8220;Full backup of all your data to remote servers every day&#8221; webhost then only had a backup from 27 June, i.e., somewhere in the middle of my migrating between servers such that there was <strong>no</strong> backup for most of my sites.</p>
<p>The net result is (a) I will be paying a lot more attention to doing my own website backups in future; (b) I&#8217;m busy scraping pages from the WayBack Machine and Google&#8217;s cache to remake the web sites; (c) the graphics don&#8217;t feature in the caches, so they&#8217;ll take longer to get back; and (d) this blog&#8217;s styles disappeared along with everything else and is now using the current default. You probably won&#8217;t miss the blog styles all that much, but losing them left WordPress in a state where it was both configured to serve RSS and not configured to have the RSS link on the pages, with the result that it threw an error on each request and didn&#8217;t serve anything. Finding and fixing that just added to the effort.</p>
<p>So while the websites are mostly back, it will be a while before they&#8217;re pristine again. The <a title="Mentea website" href="http://www.mentea.net/">http://www.mentea.net/</a> website design is due to be revamped real soon now, anyway, but I still need the old content in order to transfer it to the new layout.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2011/09/29/websites-returning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

