<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0YBRXozeyp7ImA9WhdWEk8.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443</id><updated>2011-09-05T09:25:54.483-04:00</updated><category term="electronic publishing" /><category term="domain model" /><category term="xml" /><category term="case study" /><category term="news press-release xms" /><category term="xsl" /><category term="content modeling" /><category term="svg" /><category term="xms" /><category term="mapforce" /><category term="dita" /><category term="how-to" /><category term="altova" /><category term="content" /><category term="software development" /><title>Wrycan</title><subtitle type="html">A blog about Wrycan, XML, software design and all things related to Content Management</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://wrycan.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://wrycan.blogspot.com/" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Wrycan" /><feedburner:info uri="wrycan" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUUHQns9fip7ImA9WxBRGEw.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-2671800846119495669</id><published>2010-01-06T14:13:00.008-05:00</published><updated>2010-01-06T16:27:13.566-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-06T16:27:13.566-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="content modeling" /><category scheme="http://www.blogger.com/atom/ns#" term="domain model" /><category scheme="http://www.blogger.com/atom/ns#" term="electronic publishing" /><category scheme="http://www.blogger.com/atom/ns#" term="xms" /><category scheme="http://www.blogger.com/atom/ns#" term="content" /><title>Misunderstood Complexity</title><content type="html">The biggest failing we run into time and time again around content / digital publishing projects is the misunderstanding of where the complexity lies.&lt;br /&gt;&lt;br /&gt;When someone buys an RDBMS, they don't assume that simply installing such a system and some trivial configuration will solve their data problems for them or produce their data-driven software application. They understand that this is just a tool which they will use to do the large amount of work of analyzing their data needs, designing a schema, and implementing it in their RDBMS along with application code to use it.&lt;br /&gt;&lt;br /&gt;However when they buy a content management system, or some other content tool, they have a tendency to expect that it WILL fill all their content needs, and that the analogous work of analyzing, designing and implementing are minor. While people understand that "data" is hard, complex, a lot of work etc., they seem to assume content is relatively easy.&lt;br /&gt;&lt;br /&gt;This is not unlike the scenario with a lot of other software projects where some out-of-the-box middle-ware is expected to provide a solution and the task of analyzing and defining their needs and of designing a solution (even in terms of the "parts" the middle-ware supplies) is vastly under-estimated.&lt;br /&gt;&lt;br /&gt;A content management / publishing system (and by this I mean not specifically a CMS, but the whole system and process by which a company manages and publishes its content, including whatever software systems and tools are used to facilitate this, and the human processes around that) can be enormously complex. It's not the same as everyone else's, and there's not some off-the-shelf system that simply does it all automatically. The commonality of "everyone has content" is about as significant as the commonalty of "everyone has data". It's the details around "what kind of" and "how used" that drastically overshadow the commonalities.&lt;br /&gt;&lt;br /&gt;The software tools, wherever they fall on the out-of-box / highly customized / home-rolled spectrum provide pieces of the solution, not the big picture, and that big picture, that overall design, is needed to even know how to put those pieces together. In fact, if you haven't figured out your overall design in detail, then you don't really even know what the pieces are that you need.&lt;br /&gt;&lt;br /&gt;This big picture is a domain model. You have a business domain around your content, and the different sorts of content, the roles they play, and the processes that go into producing, maintaining, publishing (by which we include making available through some specialized web application) are all parts of this domain model. These software systems and tools you've bought do not provide that domain model or those elements of it. They may provide you with means of modeling them or implementing your model. But if you don't start with that model...well, good luck.&lt;br /&gt;&lt;br /&gt;This is the understandable human failing of wishful thinking. Analyzing your needs and designing that model is HARD. It's not the sort of thing that business people, or content production people are good at or know how to do. Software people, on the other hand, who do (the competent ones) know how to do that, typically don't understand the content production and publishing domain, and communicating a deep understanding of those needs from one group to the other is also very hard. Unfortunately content-oriented software specialists are both rare, not commonly recognized as a specialty, and (largely because of the misconception outlined above) undervalued.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-2671800846119495669?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=2671800846119495669" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/2671800846119495669?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/2671800846119495669?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/WF5TvVPlB-o/misunderstood-complexity.html" title="Misunderstood Complexity" /><author><name>Eric J. Schwarzenbach</name><uri>http://www.blogger.com/profile/01765639465111862484</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2010/01/misunderstood-complexity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIDQHc6cSp7ImA9WxJQFkw.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-4150184586637742440</id><published>2009-05-29T11:42:00.001-04:00</published><updated>2009-05-29T13:19:31.919-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-29T13:19:31.919-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="altova" /><category scheme="http://www.blogger.com/atom/ns#" term="xsl" /><category scheme="http://www.blogger.com/atom/ns#" term="case study" /><category scheme="http://www.blogger.com/atom/ns#" term="xms" /><title>NAVSEA: Wrycan and Altova Project Case Study</title><content type="html">Thousands of technical processes. CAD drawings. Schematics. Wiring diagrams.&amp;nbsp; Safety and Training requirements.&amp;nbsp; Piddle packs.&lt;br /&gt;
&lt;br /&gt;
What do all of those items have in common?&amp;nbsp; They are all parts of a complex Navy system that were documented in an antiquated format.&lt;br /&gt;
&lt;br /&gt;
Wrycan was chosen by NAVSEA to assist in converting tens of thousands of pages of existing documentation into XML to comply with the Navy document model.&amp;nbsp; Wrycan used Altova's &lt;a href="http://www.altova.com/xml-editor/"&gt;XML editor&lt;/a&gt; as a key component in the editioral process.&amp;nbsp; Modules from the &lt;a href="http://www.wrycan.com/products/xms"&gt;Wrycan XMS&lt;/a&gt; were used to facilitate workflow and document assembly while &lt;a href="http://xsl.wrycan.com/"&gt;Wrycan's XSL Consultants&lt;/a&gt; developed the high-end PDF output.&lt;br /&gt;
&lt;br /&gt;
The result is an end-to-end process that allows NAVSEA to author, edit, review, approve, publish and distribute large volumes of technical and process information to those who need it.&lt;br /&gt;
&lt;br /&gt;
Wrycan and Altova have just published a &lt;a href="http://www.altova.com/cust_wrycan_navy.html"&gt;case study&lt;/a&gt; outlining the project.&amp;nbsp; Read it to find out how Wrycan and Altova worked together to ensure the project was a success.&lt;br /&gt;
&lt;br /&gt;
Interested in talking about your content with us?&amp;nbsp;&lt;a href="http://www.wrycan.com/contact/form.jsp?form=general"&gt;Get in touch&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-4150184586637742440?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=4150184586637742440" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/4150184586637742440?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/4150184586637742440?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/Ii7rnyWx0fU/navsea-wrycan-and-altova-project-case.html" title="NAVSEA: Wrycan and Altova Project Case Study" /><author><name>dan ochs</name><uri>http://www.blogger.com/profile/09601827253301566444</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Cambridge, MA, USA</georss:featurename><georss:point>42.3635847 -71.0824613</georss:point><georss:box>42.3318812 -71.1408263 42.395288199999996 -71.02409630000001</georss:box><feedburner:origLink>http://wrycan.blogspot.com/2009/05/navsea-wrycan-and-altova-project-case.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYCQn0-fip7ImA9WxJWF0o.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-3125281012403175122</id><published>2009-04-20T08:00:00.007-04:00</published><updated>2009-06-23T12:22:43.356-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-23T12:22:43.356-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news press-release xms" /><title>Product Announcement: XMS Correlation Tool</title><content type="html">&lt;span style="font-weight: bold;"&gt;Cambridge MA -&lt;/span&gt; Say goodbye to managing textbook correlations in Microsoft Excel and Microsoft Word.  Wrycan is happy to announce the release of a new product, the XMS Correlation Tool.&lt;br /&gt;
&lt;br /&gt;
An innovative product for educational content publishers, the XMS Correlation Tool is built to solve one of the most common challenges facing educational publishers today, &lt;span style="font-weight: bold;"&gt;creating and managing educational standards correlation data&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
The XMS Correlation Tool is a web-based system built on top of Wrycan XMS that allows you to create, manage and utilize correlation data for all your education content, regardless of format.&lt;br /&gt;
&lt;br /&gt;
The XMS Correlation Tool supports various &lt;a href="http://www.wrycan.com/products/correlator/scenarios.jsp"&gt;correlation scenarios&lt;/a&gt; including:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;correlating content to state and national standards&lt;/li&gt;
&lt;li&gt;correlating content to custom intermediary standards&lt;/li&gt;
&lt;li&gt;correlating custom intermediary standards to state and national standards&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;The once tedious job of creating correlations in spreadsheets and text files can now be done using a &lt;a href="http://www.wrycan.com/products/correlator/correlation_ui.jsp"&gt;drag and drop interface&lt;/a&gt;, allowing correlations to be created and stored across content and standards with ease.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.wrycan.com/products/correlator/images/screens/ui-screen.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://www.wrycan.com/products/correlator/images/screens/ui-screen.png" style="cursor: pointer; height: 261px; width: 666px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-size: 78%;"&gt;figure 1. correlation web interface&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Sound interesting?  Want to see more?  &lt;a href="http://www.wrycan.com/contact/form.jsp?form=corr"&gt;Contact us&lt;/a&gt; to get more information and to set up a demo.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%; font-weight: bold;"&gt;About Wrycan&lt;/span&gt;&lt;br /&gt;
Wrycan, Inc., a privately held company, was founded in 2002 to provide content-centric products and services to companies looking for innovative approaches to content creation, management, publishing and delivery.  Our primary product, Wrycan XMS, is a content management platform built on years of experience solving "the hard content problems" for our clients.  Wrycan XMS includes robust content repository, workflow and publishing facilities that together provide a solution for the most complex content management/utilization needs.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Your content is innovative, your content tools should be innovative too.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For more information about Wrycan's products and services, please visit our website, &lt;a href="http://www.wrycan.com/"&gt;www.wrycan.com&lt;/a&gt; or contact John Corkery, Director of Business Development (john.corkery (at) wrycan.com)&lt;br /&gt;
&lt;br /&gt;
~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-3125281012403175122?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=3125281012403175122" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/3125281012403175122?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/3125281012403175122?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/YjmFWWZxwf4/product-annoucement-xms-correlation.html" title="Product Announcement: XMS Correlation Tool" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2009/04/product-annoucement-xms-correlation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEEQX0_fip7ImA9WxVWE0Q.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-5457173022811143390</id><published>2009-02-23T09:00:00.002-05:00</published><updated>2009-02-23T09:00:00.346-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T09:00:00.346-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="dita" /><title>How to Customize Attributes in the DITA Open Toolkit PDF Plugin</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ByLuX72kTec/SZ33ZbeEhoI/AAAAAAAAACg/yW_5ODQ8YGI/s1600-h/codesampleAfter.png"&gt;&lt;/a&gt;&lt;div&gt;This tutorial uses the DITA Open Toolkit 1.4.2.1 and the corresponding PDF plugin release, and Wrycan's demo text. This assumes you have a working DITA environment and can run the default formatting with PDF plugin. If you don't know how to do this, &lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;contact us&lt;/a&gt; and we can post an example! We will be working in the demo/fo/Customization directory of the open toolkit as shown in the image below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_ByLuX72kTec/SY8nCKvgM7I/AAAAAAAAABs/u_Lvot6qeRg/s400/ditaOnPageXRefCustomization_html_207a6166.jpg" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 117px; height: 400px;" border="0" alt="" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;1. In this example, we are going to customize the &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;codeblock&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;gt;&lt;/span&gt; element by increasing the font size, changing the font color and weight, and modifying the background color.  Our default code block looks like the following before any changes:&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_ByLuX72kTec/SZ3NZVW-D2I/AAAAAAAAACY/vNL2i2B8HZA/s400/codesampleBefore.png" style="text-align: center;float: center; margin-top: 10px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 400px; height: 57px; " border="0" alt="" id="BLOGGER_PHOTO_ID_5304621771226222434" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;and the dita xml content looks like:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&amp;lt;codeblock&amp;gt;/* I should have green text and a red background */&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;amp;lt;xsl:template match="dita"&amp;amp;gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;   &amp;amp;lt;output&amp;amp;gt;DITA IS COOL&amp;amp;lt;/output&amp;amp;gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;amp;lt;/xsl:template&amp;amp;gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;lt;/codeblock&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. In order to modify the &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;codeblock&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;gt;&lt;/span&gt;, we first need to figure out which attributes to change.   The method I find most useful is to run a full-text search the demo/fo directory.  Searching for the term "codeblock" yields a few results, one of which is demo/fo/xsl/pr-domain.xsl and the template is found on line 46: &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:template&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;match&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;="&lt;/span&gt;*[contains(@class,' pr-d/codeblock ')]&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;"&amp;gt;&lt;/span&gt;.  Examining this template shows us that we want to modify the "codeblock" attribute set as shown on line 48: &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;fo:block&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;xsl:use-attribute-sets&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;="&lt;/span&gt;codeblock&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;"&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;id&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;="&lt;/span&gt;{@id}&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;"&amp;gt;&lt;/span&gt;. Looking at the text search again, we can see that the "codeblock" attribute set is found in demo/fo/cfg/fo/attrs/pr-domain-attr.xsl on line 41: &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:attribute-set&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt; name&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;="&lt;/span&gt;codeblock&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;"&amp;gt;&lt;/span&gt;.  The next step is to customize this attribute set.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. In order to customize this attribute set, copy demo/fo/Customization/fo/attrs/custom.xsl.orig to custom.xsl and copy the codeblock attribute set into the new XSL.  We are going to modify the background color, font color, font size, and make the font bold.  In order to do this, we only need to specify the attributes that we are going to change, so the resulting block of code to add looks like:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute-set&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;codeblock&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;background-color&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#dc7f72&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;font-size&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;12pt&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;color&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#005511&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;font-weight&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bold&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute-set&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note, that we could also copy over the entire codeblock attribute set and modify that, which would results in the code below.  Both of these should produce the same output.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute-set&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;codeblock&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;space-before&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;0.4em&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;space-after&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;0.8em&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;white-space-treatment&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;preserve&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;white-space-collapse&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;false&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;linefeed-treatment&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;preserve&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;wrap-option&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;wrap&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;background-color&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#dc7f72&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;font-family&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Monospaced&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;line-height&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;106%&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;font-size&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;12pt&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;keep-with-previous.within-page&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;always&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;!--&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &amp;lt;xsl:attribute name="keep-together.within-page"&amp;gt;always&amp;lt;/xsl:attribute&amp;amp;gt&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;!--&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Additional attributes&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;color&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#005511&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;font-weight&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bold&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;xsl:attribute-set&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. The last step is to tell the plugin that we have made customizations.  In order to do this, copy demo/fo/Customization/catalog.xml.orig to catalog.xml and then open the copied file and edit the 6th row to uncomment the code from:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;!--&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;uri name="cfg:fo/attrs/custom.xsl" uri="fo/attrs/custom.xsl"/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;to:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;    &lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;uri &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;cfg:fo/xsl/custom.xsl&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;fo/xsl/custom.xsl&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;and save the file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. This should create the output below for the &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;codeblock&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;gt;&lt;/span&gt; element.  There are many different ways the attributes can be customized and this is just one small example.  If you have some ideas for other examples you would like to see, &lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;contact us&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://1.bp.blogspot.com/_ByLuX72kTec/SZ33ZbeEhoI/AAAAAAAAACg/yW_5ODQ8YGI/s400/codesampleAfter.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5304667952354985602" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 63px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-5457173022811143390?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=5457173022811143390" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/5457173022811143390?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/5457173022811143390?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/T9BQlK574Z8/how-to-customize-attributes-in-dita.html" title="How to Customize Attributes in the DITA Open Toolkit PDF Plugin" /><author><name>dan ochs</name><uri>http://www.blogger.com/profile/09601827253301566444</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_ByLuX72kTec/SY8nCKvgM7I/AAAAAAAAABs/u_Lvot6qeRg/s72-c/ditaOnPageXRefCustomization_html_207a6166.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2009/02/how-to-customize-attributes-in-dita.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBQH89eyp7ImA9WxVUE0w.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-781110012374259889</id><published>2009-02-16T06:00:00.002-05:00</published><updated>2009-03-17T15:35:51.163-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-17T15:35:51.163-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="svg" /><category scheme="http://www.blogger.com/atom/ns#" term="xml" /><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="xms" /><title>Create SVG-based charts "on the fly" using XML and XMS</title><content type="html">In order to really take advantage of XML-based content you need more than just an XML-aware database or repository.   We built the &lt;a href="http://www.wrycan.com/products/xms"&gt;XMS Content Management System&lt;/a&gt; to provide the right tools and facilities to unlock and make use of all the inherent value in well-designed XML content/data.&lt;br /&gt;&lt;br /&gt;A cool yet practical example is to take a simple data set and create charts using XML and &lt;a href="http://www.w3.org/Graphics/SVG/"&gt;SVG&lt;/a&gt;.  In a recent client project we needed to create reports that indicated how assets were distributed across geographies.  Aside from just showing a table of the data (See figure 1), we wanted to produce a world map that would show exactly how the assets were allocated across each region.  In this how-to I will explain how this was done using the XMS but most of the steps are general enough you should be able to replicate most of them with other system.  If you have questions about how to do something like this using a different system feel free to &lt;a href="http://www.wrycan.com/contact"&gt;contact us&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fxIea7cmhdY/SZBzqElQJMI/AAAAAAAAAAM/iyC5G-X_6_Q/s1600-h/figure1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 176px;" src="http://3.bp.blogspot.com/_fxIea7cmhdY/SZBzqElQJMI/AAAAAAAAAAM/iyC5G-X_6_Q/s400/figure1.png" alt="" id="BLOGGER_PHOTO_ID_5300863928036762818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;figure 1: table of geographic asset distribution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first step to adding a map visual for this data was to find a good SVG map.  We found some good options released by the CIA for public use on &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Blank_maps"&gt;Wikipedia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The map was very well defined and each country had it's own separate structure.  The map was black and white but we wanted to add color to each region to make it easy to differentiate.  Since we were using &lt;a href="http://www.morningstar.com/"&gt;Morningstar's&lt;/a&gt; regional data we had to modify the SVG map to group the countries into the correct regions and give them a specific color.  This was easy since the CIA used the proper two character country code for each SVG object.  A few CSS changes yielded the following in the SVG:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fxIea7cmhdY/SZB5lL8jJBI/AAAAAAAAAAc/jVBMbR_SAXc/s1600-h/figure2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 164px;" src="http://2.bp.blogspot.com/_fxIea7cmhdY/SZB5lL8jJBI/AAAAAAAAAAc/jVBMbR_SAXc/s400/figure2.png" alt="" id="BLOGGER_PHOTO_ID_5300870441183945746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;figure 2: SVG with Morningstar region mappings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can download a copy of the modified SVG &lt;a href="http://blog.wrycan.com/resources/svg/RegionMap.svg"&gt;here&lt;/a&gt; (~2MB).&lt;br /&gt;&lt;br /&gt;Next, we loaded the SVG map into the XMS along with some sample data sets containing examples of asset allocation over geographic regions.   To create the publication that would produce the report containing  both the table and the map, two XSL transforms were written; one to produce the HTML report with the table (report.xsl) and one that would produce the correct SVG (map.xsl).  Together these XSL transforms would create the report by generating the table of results and the PNG version of the map.&lt;br /&gt;&lt;br /&gt;The XMS has a powerful publishing module which allowed us to process the SVG map and embed the result into the report.   In this example the &lt;span style="font-style: italic;"&gt;report.xsl&lt;/span&gt; would do most of the work while the &lt;span style="font-style: italic;"&gt;map.xsl&lt;/span&gt; would simply assign the correct percentages to the regions of the map in the SVG.  A sample of the XSL used to assign the precentages in the SVG map is shown in figure 3.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fxIea7cmhdY/SZB9bm9i03I/AAAAAAAAAAk/flbH2qz82dU/s1600-h/figure3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 228px;" src="http://3.bp.blogspot.com/_fxIea7cmhdY/SZB9bm9i03I/AAAAAAAAAAk/flbH2qz82dU/s400/figure3.png" alt="" id="BLOGGER_PHOTO_ID_5300874674683695986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;figure 3: sample of the map.xsl showing the regional percentages being added (shown in XMLSpy from Altova)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The resulting SVG is then rasterized to a GIF, JPG or PNG and the URL to the new image would be "handed back" to the &lt;span style="font-style: italic;"&gt;report.xsl&lt;/span&gt; and added to the resulting report HTML.     The XMS uses &lt;a href="http://www.renderx.com/tools/xep.html"&gt;XEP&lt;/a&gt;  from &lt;a href="http://www.renderx.com/"&gt;RenderX &lt;/a&gt;to convert vector graphics into raster formats.  You could use other tools like &lt;a href="http://xmlgraphics.apache.org/batik/"&gt;Batik&lt;/a&gt; to get the same result.  The result report combining both the table and the map looks something like the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fxIea7cmhdY/SZB-E0DaNSI/AAAAAAAAAAs/tX5lhUaj3tU/s1600-h/figure4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 351px;" src="http://4.bp.blogspot.com/_fxIea7cmhdY/SZB-E0DaNSI/AAAAAAAAAAs/tX5lhUaj3tU/s400/figure4.png" alt="" id="BLOGGER_PHOTO_ID_5300875382572594466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;figure 4: resulting regional report&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pretty slick.  Of course we did the same for other charts (i.e. pie charts) but the map example was the most interesting.  Another advantage of using SVG is the fact that it is vector-based, meaning that PDFs generated with the native SVG (not rasterized) will look very polished.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-781110012374259889?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=781110012374259889" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/781110012374259889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/781110012374259889?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/uFraSfJoqes/create-svg-based-charts-on-fly-using.html" title="Create SVG-based charts &quot;on the fly&quot; using XML and XMS" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_fxIea7cmhdY/SZBzqElQJMI/AAAAAAAAAAM/iyC5G-X_6_Q/s72-c/figure1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2008/11/create-svg-based-charts-on-fly-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUEQXc7eCp7ImA9WxVXE0g.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-640235328441048365</id><published>2009-02-11T08:00:00.000-05:00</published><updated>2009-02-11T08:00:00.900-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T08:00:00.900-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="dita" /><title>How to Modify the Cover Page in the DITA Open Toolkit PDF Plugin</title><content type="html">&lt;div style="text-align: left;"&gt;This tutorial uses the DITA Open Toolkit 1.4.2.1 and the corresponding PDF plugin release, and Wrycan's demo text. This assumes you have a working DITA environment and can run the default formatting with PDF plugin. If you don't know how to do this, contact us and we can post an example of how to do this! We will be working in the demo/fo/Customization directory of the open toolkit as shown in the image below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ByLuX72kTec/SY8nCKvgM7I/AAAAAAAAABs/u_Lvot6qeRg/s1600-h/ditaOnPageXRefCustomization_html_207a6166.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 117px; height: 400px;" src="http://2.bp.blogspot.com/_ByLuX72kTec/SY8nCKvgM7I/AAAAAAAAABs/u_Lvot6qeRg/s400/ditaOnPageXRefCustomization_html_207a6166.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300498204635182002" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style=" line-height: 22px; font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;1. With our sample content, the cover page of the document contains plain title text slightly above the center of an empty page:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Wrycan® Lorem Ipsum Test&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"   style="  font-weight: normal;font-family:'Trebuchet MS';font-size:16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;We are going to modify this so that our company logo appears below the title text.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal; font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2. In order to modify the cover page, we first need to figure out which stylesheet creates the cover sheet.  The method I find most useful is to run a full-text search the demo/fo directory.  Searching for terms like "cover" and "cover sheet" yield no results in this case, so the next thing to do is look at the xsl files themselves.  Starting with demo/fo/xsl/fo/root-processing.xsl we can see there is a template called &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="  ;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;createFrontMatter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal; font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;. Searching in the XSLs for this template reveals that it is in demo/fo/xsl/front-matter.xsl.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3. The next step is to modify the template.  In order to do this, copy demo/fo/Customization/fo/xsl/custom.xsl.orig to custom.xsl and copy the createFrontMatter template into the copied XSL.  The logo image is going to be added below the subtitle, so below the template call with the "set the subtitle" code comment.  Add the code below underneath the subtitle template:&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;fo:block&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;text-align&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;center&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;width&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;100%&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;fo:external-graphic&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;src&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;url({concat($artworkPrefix, '/Customization/OpenTopic/common/artwork/logo.png')})&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"/&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;fo:block&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The parameter $artworkPrefix is passed in during the build process and the string "/Customization/OpenTopic/common/artwork/" is created for where our logo image is going to end up during processing.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;4. Now that the code has been added, we need to actually add the logo.  To do this just copy an image file of the name logo.png into demo/fo/Customization/common/artwork folder or use &lt;a href="http://2.bp.blogspot.com/_ByLuX72kTec/SY9kK7VZknI/AAAAAAAAACE/_bLpyN3PQNc/s400/logo.png"&gt;ours&lt;/a&gt; as shown at the end of this post.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="  font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;5. The last step is to tell the plugin that we have made customizations.  In order to do this, copy demo/fo/Customization/catalog.xml.orig to catalog.xml and then open the copied file and edit the 10th row to uncomment the code from:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&amp;lt;!--&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl"/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;to: &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;cfg:fo/xsl/custom.xsl&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;fo/xsl/custom.xsl&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"/&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; and save the file.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal;font-family:'Trebuchet MS';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;6. This should create the output below on the cover sheet of the pdf.  There are many different ways the cover sheet can be customized and this is just one small example.  If you have some ideas for other examples you would like to see, &lt;/span&gt;&lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;contact us&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"   style="  font-weight: normal;font-family:'Trebuchet MS';font-size:16px;"&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-weight: bold; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Wrycan® Lorem Ipsum Test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ByLuX72kTec/SY9kK7VZknI/AAAAAAAAACE/_bLpyN3PQNc/s1600-h/logo.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px;" src="http://2.bp.blogspot.com/_ByLuX72kTec/SY9kK7VZknI/AAAAAAAAACE/_bLpyN3PQNc/s400/logo.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5300565425327280754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-640235328441048365?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=640235328441048365" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/640235328441048365?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/640235328441048365?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/cQ-1jMhtOEQ/how-to-modify-cover-page-in-dita-open.html" title="How to Modify the Cover Page in the DITA Open Toolkit PDF Plugin" /><author><name>dan ochs</name><uri>http://www.blogger.com/profile/09601827253301566444</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_ByLuX72kTec/SY8nCKvgM7I/AAAAAAAAABs/u_Lvot6qeRg/s72-c/ditaOnPageXRefCustomization_html_207a6166.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2009/02/how-to-modify-cover-page-in-dita-open.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABQX89fCp7ImA9WxVXEEg.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-6781591627299697480</id><published>2009-02-07T16:16:00.014-05:00</published><updated>2009-02-07T19:09:10.164-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-07T19:09:10.164-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="dita" /><title>How to Customize the DITA Open Toolkit PDF Plugin Output to Remove "on page xx" Text for Cross References</title><content type="html">&lt;div&gt;This tutorial uses the DITA Open Toolkit 1.4.2.1 and the corresponding PDF plugin release, and Wrycan's demo text. This assumes you have a working DITA environment and can run the default formatting with PDF plugin. If you don't know how to do this, &lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;contact us&lt;/a&gt; and we can post an example of how to do this! We will be working in the demo/fo/Customization directory of the of the open toolkit as shown in the image below. &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ByLuX72kTec/SY4BAlIbx0I/AAAAAAAAAAs/nluOcIxUxuo/s1600-h/ditaOnPageXRefCustomization_html_207a6166.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 117px; height: 400px;" src="http://2.bp.blogspot.com/_ByLuX72kTec/SY4BAlIbx0I/AAAAAAAAAAs/nluOcIxUxuo/s400/ditaOnPageXRefCustomization_html_207a6166.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5300174920940767042" /&gt;&lt;/a&gt;&lt;div&gt;1. We will customize the cross references so that there will be no "on page xx" displayed. The DITA markup that we are customizing looks like the following in XML: &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This xref link to &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;xref&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;href&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PellentesqueConsectetuer.xml#pellCon/sampleXREFtarget&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;scope&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;local&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; is a sample link to an element within this topic.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;And the default output looks like the following in the PDF output:&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This xref link to &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Table 3: Sample XREF Target&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; on page 11 is a sample link to an element within this topic.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2. Next, we need to find the code in the XSL where this occurs, and then create the customization layer to override this code. To do this, a full text search of the demo folder can be done for the text "on page."  One tool that can do this quickly is &lt;/span&gt;&lt;a href="http://www.editplus.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Edit Plus&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; which reveals that in demo/fo/cfg/common/vars/en_us.xml, on line 258, there is a variable that is set with the name "On the page" as shown below: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;variable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;id&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;On the page&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; on page &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;param&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ref-name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;pagenum&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"/&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;variable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3. Another search can now be done for the text "On the page," which shows that demo/fo/xsl/fo/links.xsl on line 371 is where this variable is being called, in the template &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;xsl:template&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;insertPageNumberCitation&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. The next step is to integrate this template into the customization layer.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;4. A quick and easy way to do this is to copy the file demo/fo/Customization/fo/xsl/custom.xsl.orig to custom.xsl. Then open it and copy/paste the original &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;insertPageNumberCitation &lt;/span&gt;&lt;/span&gt;template from links.xsl. This template has an &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&gt;&lt;/span&gt; containing the "On the page" variable, so in order to remove the "on page xx" text, this otherwise case should be removed by deleting everything from and including &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&gt;&lt;/span&gt; to &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:otherwise&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&gt;&lt;/span&gt; and save the file. Note: If you are going to be making a lot of customizations to the fo plugin, then it might be a good idea to utilize the &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;xsl:import&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;function to better organize your customizations. If you have any questions about this method, feel free to &lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;ask&lt;/a&gt; and we'll do a post on it! &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;5. Finally, the fo plugin needs to be told that customizations have been added. In order to do this, copy demo/fo/Customization/catalog.xml.orig to catalog.xml and uncomment line 10 from: &lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;cfg:fo/xsl/custom.xsl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;fo/xsl/custom.xsl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 153, 153);"&gt;"/&lt;/span&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-family:Georgia;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;--&amp;gt; &lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;to &lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;cfg:fo/xsl/custom.xsl&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;fo/xsl/custom.xsl&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;"/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and save the file.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The creation of the customization layer is now complete! Re-run the pdf and see the results. In our case the output now looks like the following: &lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This xref link to &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255); "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Table 3: Sample XREF Target&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; is a sample link to an element within this topic&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If you would like to see any other ways to customize the DITA Open Toolkit, &lt;a href="http://www.wrycan.com/contact/form.jsp"&gt;contact us&lt;/a&gt; and we can provide one!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-6781591627299697480?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=6781591627299697480" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/6781591627299697480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/6781591627299697480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/LO695BhqR-4/how-to-customize-dita-open-toolkit-pdf.html" title="How to Customize the DITA Open Toolkit PDF Plugin Output to Remove &quot;on page xx&quot; Text for Cross References" /><author><name>dan ochs</name><uri>http://www.blogger.com/profile/09601827253301566444</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_ByLuX72kTec/SY4BAlIbx0I/AAAAAAAAAAs/nluOcIxUxuo/s72-c/ditaOnPageXRefCustomization_html_207a6166.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2009/02/how-to-customize-dita-open-toolkit-pdf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIBRXw9eip7ImA9WxVXEk0.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-6553655059358657554</id><published>2009-01-13T13:34:00.005-05:00</published><updated>2009-02-09T13:02:34.262-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T13:02:34.262-05:00</app:edited><title>Design, but only for the sake of design</title><content type="html">One of the things that we try very hard at as a company is to not over complicate our software and to be too "designy".  There are many principals considered to be critical to achieving good design (graphic, UI, usability, etc) and these principals are hotly debated in hundreds of blogs. &lt;br /&gt;&lt;br /&gt;There is one principal that crossed my mind two weeks ago was "Design should not get in the way of simple tasks/interaction". &lt;br /&gt;&lt;br /&gt;Driving a car can be a very intense experience... so many things happening around you and so many inputs that must be processed in real time.  There are many things in a car that are designed to make processing external events as easy as possible.  Take for instance the brake lights on the back of a car.  You have probably heard many people quip that someone should invent a brake light that reacts differently depending on how hard the brakes are applied.  If someone just taps the brakes, the light would be more dim than if someone slammed on the brakes.  Sounds good in principal but there is at least one reason why this hasn't been done: "less is more".  With the current system a driver only needs to process 2 states; brake and no brake.  Sure, people will infer how hard someone has brakes based on seeing the brake lights and then seeing how quickly the car is slowing... but that is something that done by evaluating the environment around the car, not left up to some series of lights, the brightness of lights and the car-maker's implementation of such a standard.&lt;br /&gt;&lt;br /&gt;Another task that is important in a car, especially with younger drivers, is the need to know how fast you are going.  The more you drive the more you get a feel for how fast you are going so you are checking the gauge less and less often.   Even the speedometer is never dead on anyway but it is still an important task that is performed in a car dozens to hundreds of times on each and every car trip.  I had never thought how design could negatively influence this interaction until I got a rental car, a 2008 Ford Focus. &lt;br /&gt;&lt;br /&gt;It has been my experience that even with the changes in the speed limits in the past 20 years one things remains fairly standard: most speed limits are based on "5" (35,45,55,65).  Most cars have these speeds well denoted on their speedometers allowing you to check on your speed very very quickly.  So quickly in fact you probably never even realize you are doing it.  In the Escape it seems that Ford wanted to apply a "slick" design to the speedometer (all their gauges in fact).  I have to say, what was once an easy task became much harder.  Check out the image below from US News and World Report (apologies for the small image)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.usnews.rankingsandreviews.com/images/Auto/evox/288131/img_062.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Can you quickly tell where 65 is?  How about 55?  When I first got the car I was equating 55 with the dash between 40 and 60.. only for my amazing math skills to take over and realize that it was in fact 50, not 55.  So that leaves me to get the speed somewhere between that little hash mark and 60 to achieve 55.  Now again, I realize that as an "experienced" driver this isn't so bad, but imagine a 16 year old, trying to focus on a million new things when driving and trying to make sure he/she is going the correct speed.  Even worse, imagine this car during a driving test with a state cop in your passenger seat. &lt;br /&gt;&lt;br /&gt;As far as I am concerned Ford took something that should be a simple task and then "designed" all the simplicity out of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-6553655059358657554?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=6553655059358657554" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/6553655059358657554?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/6553655059358657554?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/g5V3pEAMhsU/design-but-only-for-sake-of-design.html" title="Design, but only for the sake of design" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2009/01/design-but-only-for-sake-of-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CSX84fip7ImA9WxRbEkk.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-3090354851250688044</id><published>2008-12-02T02:14:00.002-05:00</published><updated>2008-12-02T14:42:48.136-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-02T14:42:48.136-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software development" /><title>Start simple and let it evolve...not quite</title><content type="html">One of the items that I follow in my Google Reader is the &lt;a href="http://www.37signals.com/"&gt;37Signals&lt;/a&gt; blog &lt;a href="http://blogcabin.37signals.com/svn/"&gt;Signal vs. Noise&lt;/a&gt;.  37Signals built their business on creating simple and elegant solutions for tasks such as project management, contact management, collaboration, etc.&lt;br /&gt;&lt;br /&gt;Last week one of their &lt;a href="http://www.37signals.com/svn/posts/1414-a-complex-system-that-works-is-invariably"&gt;posts&lt;/a&gt; included the following quote that I found rather interesting:&lt;br /&gt;&lt;blockquote&gt;"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system."&lt;br /&gt;—&lt;br /&gt;John Gall&lt;/blockquote&gt;Initially I liked the quote and felt that it fit the way in which we have built our &lt;a href="http://www.wrycan.com/products/"&gt;products&lt;/a&gt;.  But the more I thought about it the more I realized how the underlying architecture of our system is actually quite complex, and has been from day one. The design is drawn from years of collective experience dealing with complex content management problems as well as some luck as we were fortunate enough to work on some pretty interesting &lt;a href="http://findarticles.com/p/articles/mi_m0BTY/is_4_6/ai_66169161"&gt;bleeding edge content utilization companies&lt;/a&gt; along the way.&lt;br /&gt;&lt;br /&gt;All that experience lead to a product development plan where we invested a significant amount of time in designing our system and then set out to implement the most basic items first.  We found that there was no way to just account for the most basic items in our design, but wherever possible our design called for basic components to be used as the foundation for more complex system functions.&lt;br /&gt;&lt;br /&gt;My interpretation of the quote as it pertains to what Wrycan has done is this:&lt;br /&gt;&lt;blockquote&gt;"No matter how complex the problem you intend your system to solve, it is better to implement a hand full of simple items and get it in front of users and then build from there.  Version 1.0 is no place for complex features.  Get the basics right first."&lt;/blockquote&gt;So did that mean our customers weren't calling and emailing asking "why can't we do this?", or "why can't we do that?"  No, of course they did.  But we have found that a system does the basics really really well  more than makes up for the items our customers &lt;span style="font-style: italic;"&gt;thought&lt;/span&gt; were missing.  Once we started releasing more complex features we were able to incorporate customer feedback which only made our customers more engaged and invested in the product&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-3090354851250688044?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=3090354851250688044" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/3090354851250688044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/3090354851250688044?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/owE0NtKF5fs/start-simple-and-let-it-evolvenot-quite.html" title="Start simple and let it evolve...not quite" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2008/11/start-simple-and-let-it-evolvenot-quite.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QFRngzcSp7ImA9WxRUEU8.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-7883710386420625360</id><published>2008-11-15T10:30:00.000-05:00</published><updated>2008-11-19T14:01:57.689-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-19T14:01:57.689-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="altova" /><category scheme="http://www.blogger.com/atom/ns#" term="case study" /><category scheme="http://www.blogger.com/atom/ns#" term="mapforce" /><title>Wrycan/Altova Case Study</title><content type="html">As an &lt;a href="http://www.altova.com/"&gt;Altova &lt;/a&gt;and long time users of Altova's tools, we are often called upon to help Altova's  customers get the most out of tools like &lt;a href="http://www.altova.com/products/xmlspy/xml_editor.html"&gt;XMLSpy &lt;/a&gt;and &lt;a href="http://www.altova.com/products/mapforce/data_mapping.html"&gt;Mapforce&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this case we were asked to help &lt;a href="http://www.fitzandfloyd.com/" target="_blank" class="link"&gt;Fitz and Floyd&lt;/a&gt;, a leader in design and manufacture of hand painted ceramic giftware.   Fitz and Floyd needed a way to interface their existing &lt;a href="http://www.oracle.com/"&gt;Oracle&lt;/a&gt;-based &lt;a href="http://en.wikipedia.org/wiki/Customer_relationship_management"&gt;CRM&lt;/a&gt; system to their new Web-based storefront application from &lt;a href="http://www.marketlive.com/" target="_blank" class="link"&gt;MarketLive&lt;/a&gt;, the leader in e-commerce software solutions.    &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The result &lt;/span&gt;&lt;span style="font-size:100%;"&gt;was &lt;/span&gt; a simple transaction manager that allowed the transactions handled by the MapForce-generated, Java-based data integration applet to be scheduled, processed, and logged.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nSkHJixOzaE/SSRiSlFgG6I/AAAAAAAAAAU/L3xgFSCmboU/s1600-h/wry_batchJobs.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 149px;" src="http://1.bp.blogspot.com/_nSkHJixOzaE/SSRiSlFgG6I/AAAAAAAAAAU/L3xgFSCmboU/s400/wry_batchJobs.gif" alt="" id="BLOGGER_PHOTO_ID_5270445535262677922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;figure: example of web-based transaction system interface&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Read the full case study:&lt;br /&gt;&lt;a href="http://www.altova.com/cust_wrycan_fitz.html"&gt;Altova partner uses Mapforce to create a modern, Web-based, Oracle to FTP system interface for a manufacturing client’s online storefront.&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-7883710386420625360?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=7883710386420625360" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/7883710386420625360?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/7883710386420625360?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/2kg7biCqzDQ/wrycanaltova-case-study.html" title="Wrycan/Altova Case Study" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_nSkHJixOzaE/SSRiSlFgG6I/AAAAAAAAAAU/L3xgFSCmboU/s72-c/wry_batchJobs.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2008/11/wrycanaltova-case-study.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHRHo-fip7ImA9WxRVGUg.&quot;"><id>tag:blogger.com,1999:blog-6459561331026677443.post-8416012427034743045</id><published>2008-11-05T13:11:00.000-05:00</published><updated>2008-11-17T14:33:55.456-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-17T14:33:55.456-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="case study" /><title>Wrycan featured in Atlassian Case Study</title><content type="html">For the last couple years two of the components of our development process have been &lt;a href="http://www.atlassian.com/software/jira/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;JIRA&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.atlassian.com/software/confluence/"&gt;Confluence&lt;/a&gt;, two products made by &lt;a href="http://www.atlassian.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Atlassian&lt;/span&gt;&lt;/a&gt;.  For those that aren't familiar with these two products, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JIRA&lt;/span&gt; is an issue tracking system and Confluence is a knowledge base (aka Wiki).&lt;br /&gt;&lt;br /&gt;We use both products very extensively to "track everything that we don't want to forget".  Both tools give us the ability us to manage a large number of projects relative to our size.  We are a company of less than 10 but routinely manage 10+ projects at one time.  An overview of how we use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;JIRA&lt;/span&gt; and Confluence to manage our consulting projects can be found &lt;a href="http://xsl.wrycan.com/how_we_work.jsp"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Atlassian&lt;/span&gt; has attempted to profile many of the small companies that utilize their products and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Wrycan&lt;/span&gt; just happened to be at the right conference at the right time.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.atlassian.com/software/jira/casestudies/wrycan.jsp"&gt;Read the case study here...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6459561331026677443-8416012427034743045?l=wrycan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6459561331026677443&amp;postID=8416012427034743045" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/8416012427034743045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6459561331026677443/posts/default/8416012427034743045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wrycan/~3/esD7qqR7Mg8/wrycan-featured-in-atlassian-case-study.html" title="Wrycan featured in Atlassian Case Study" /><author><name>daniel reed</name><uri>http://www.blogger.com/profile/04990838203578289983</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wrycan.blogspot.com/2008/11/wrycan-featured-in-atlassian-case-study.html</feedburner:origLink></entry></feed>

