<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17155324383478338</id><updated>2011-07-28T07:27:36.307-07:00</updated><category term='fop'/><category term='xml'/><category term='xsl'/><category term='introduction'/><category term='javascript'/><category term='java'/><category term='xsl-fo'/><category term='file upload'/><category term='jboss'/><category term='htmlunit'/><category term='poi'/><category term='eclipse'/><category term='robots'/><title type='text'>DieZ's Blog about Software Development</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-6363531545171137292</id><published>2009-04-21T08:36:00.000-07:00</published><updated>2009-04-21T08:42:33.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='htmlunit'/><title type='text'>HtmlUnit and .net AJAX</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;Create robot for web-system based on .net with AJAX.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;After login system writes that session is expired.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Use following code to create WebClient instance:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);&lt;br /&gt;webClient.setThrowExceptionOnScriptError(false);&lt;br /&gt;webClient.setRefreshHandler(new RefreshHandler() {&lt;br /&gt;    public void handleRefresh(Page page, URL url, int arg) throws IOException {&lt;br /&gt;        System.out.println("handleRefresh");&lt;br /&gt;    }&lt;br /&gt;});&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I haven't found out why does it work (whether solution is in firefox2 engine or in script error processing or in refresh handler) but it works!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-6363531545171137292?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/6363531545171137292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2009/04/htmlunit-and-net-ajax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6363531545171137292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6363531545171137292'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2009/04/htmlunit-and-net-ajax.html' title='HtmlUnit and .net AJAX'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-6913976440489071777</id><published>2009-02-05T03:37:00.000-08:00</published><updated>2009-02-05T03:40:06.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Start JBoss from Eclipse: Timeout error</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task: &lt;/span&gt;&lt;br /&gt;Start JBoss 5.0 from Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;Alert appears:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Server JBoss v5.0 at localhost was unable to start within 50 seconds. If the server requires more time, try increasing the timeout in the server editor.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;But... there are not any timeout fields in servers editor in "Window -&gt; Preferences"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Find your server in "Servers" tab (among "Problems", "Search", "Console" so on), double click on it and just change timeout in this editor!&lt;br /&gt;&lt;span style="font-size:85%;"&gt;P.S. Don't forget to press "Ctrl+S" there....&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-6913976440489071777?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/6913976440489071777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2009/02/start-jboss-from-eclipse-timeout-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6913976440489071777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6913976440489071777'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2009/02/start-jboss-from-eclipse-timeout-error.html' title='Start JBoss from Eclipse: Timeout error'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-5787524890051741817</id><published>2008-12-22T16:58:00.000-08:00</published><updated>2008-12-22T17:11:57.037-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='poi'/><title type='text'>POI: How to get sheet name in XLS file</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;Get sheet name in XLS file using Apache POI&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;I tried to find getter of name among HSSFSheet methods... but...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Use method &lt;span style="font-size:85%;font-family: courier new;"&gt;HSSFWorkbook.getSheetName(int sheetId)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;font-family: courier new;"&gt;&lt;br /&gt;InputStream in = new BufferedInputStream(new FileInputStream("mybook.xls"));&lt;br /&gt;...&lt;br /&gt;HSSFWorkbook wb = new HSSFWorkbook(in);&lt;br /&gt;for (int sheetId = 0; sheetId &amp;#60; wb.getNumberOfSheets(); sheetId++) {&lt;br /&gt;&amp;emsp;HSSFSheet sheet = wb.getSheetAt(sheetId);&lt;br /&gt;&amp;emsp;System.out.println(&lt;span style="font-weight: bold;"&gt;wb.getSheetName(sheetId)&lt;/span&gt;);&lt;br /&gt;&amp;emsp;...&lt;br /&gt;}&lt;br /&gt;// Don't forget to Close input stream in finally section ;-)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-5787524890051741817?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/5787524890051741817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/poi-how-to-get-sheet-name-in-xls-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/5787524890051741817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/5787524890051741817'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/poi-how-to-get-sheet-name-in-xls-file.html' title='POI: How to get sheet name in XLS file'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-589923775132072303</id><published>2008-12-21T10:54:00.000-08:00</published><updated>2008-12-21T11:17:01.988-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='file upload'/><title type='text'>JS: FileName from file select field to text field</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;There are file select and text input field on page.&lt;br /&gt;When text field is empty and file is selected, text field should be filled in with name  of file without extension and absolute path.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-weight: bold;"&gt;Fields&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;font-family: courier new;"&gt;&lt;br /&gt;&amp;#60;input type="file" name="myfile" onchange="fileChanged(this, this.form['name'])" /&amp;#62;&lt;br /&gt;&amp;#60;input type="text" name="name" /&amp;#62;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-weight: bold;"&gt;Onchange JavaScript:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;font-family: courier new;"&gt;&lt;br /&gt;function fileChanged(fileSelectField, textField) {&lt;br /&gt;&amp;emsp;fileName = fileSelectField.value;&lt;br /&gt;&amp;emsp;if (textField.value==null || textField.value == "") {&lt;br /&gt;&amp;emsp;&amp;emsp;// Find start position&lt;br /&gt;&amp;emsp;&amp;emsp;var start = fileName.lastIndexOf('/');&lt;br /&gt;&amp;emsp;&amp;emsp;if (fileName.lastIndexOf('\\') &gt; start) {&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;start = fileName.lastIndexOf('\\');&lt;br /&gt;&amp;emsp;&amp;emsp;}&lt;br /&gt;&amp;emsp;&amp;emsp;// We should skip slash. It also works if no slashes found&lt;br /&gt;&amp;emsp;&amp;emsp;start = start + 1;  &lt;br /&gt;&amp;emsp;&amp;emsp;// Find end position&lt;br /&gt;&amp;emsp;&amp;emsp;var end = fileName.lastIndexOf(".");&lt;br /&gt;&amp;emsp;&amp;emsp;if (end &lt; start) {&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;end=fileName.length;&lt;br /&gt;&amp;emsp;&amp;emsp;}&lt;br /&gt;&amp;emsp;&amp;emsp;// Set value into field&lt;br /&gt;&amp;emsp;&amp;emsp;textField.value=fileName.substr(start, end-start);&lt;br /&gt;&amp;emsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-589923775132072303?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/589923775132072303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/js-filename-from-file-select-field-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/589923775132072303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/589923775132072303'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/js-filename-from-file-select-field-to.html' title='JS: FileName from file select field to text field'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-3957319301716787746</id><published>2008-12-10T04:46:00.000-08:00</published><updated>2008-12-10T04:58:00.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xsl-fo'/><category scheme='http://www.blogger.com/atom/ns#' term='fop'/><title type='text'>FOP: table-layout="auto" warning</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;Generate table using XSL-FO and FOP 0.9:&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%"&gt;&amp;#60;fo:table&amp;#62;&lt;/span&gt; etc...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;Warning in console appears:&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%"&gt;Warning(Unknown location): fo:table, table-layout="auto" is currently not supported by FOP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;It's because default value of table-layout is "auto". It means width of table should be caltulated automatically by generator. But FOP 0.9 can't do it. So, we should turn off this function and define width manually:&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%"&gt;&amp;#60;fo:table table-layout="fixed" width="100%" &amp;#62;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-3957319301716787746?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/3957319301716787746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-table-layoutauto-warning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/3957319301716787746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/3957319301716787746'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-table-layoutauto-warning.html' title='FOP: table-layout=&quot;auto&quot; warning'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-2583277344575678524</id><published>2008-12-04T09:26:00.001-08:00</published><updated>2008-12-04T17:08:49.209-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xsl-fo'/><category scheme='http://www.blogger.com/atom/ns#' term='fop'/><title type='text'>FOP: Table of Contents</title><content type='html'>I needed this function but I haven't found black-on-white howto... So...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;Table of contents is needed (in beginning, in the end of among other parts of document). Size of each chapter and number of chapters are unknown and can't be preliminary defined.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;There are different possibilities, even to insert hyperlinks in document (like &amp;#60;a name="..."&amp;#62; in HTML). But I need printable document so I need to get pages numbers only.&lt;br /&gt;&lt;br /&gt;1) Table of contents&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%"&gt;&lt;br /&gt;&amp;#60;fo:table&amp;#62;&lt;br /&gt;&amp;emsp;&amp;#60;fo:table-column/&amp;#62;&lt;br /&gt;&amp;emsp;&amp;#60;fo:table-column/&amp;#62;&lt;br /&gt;&amp;emsp;&amp;#60;fo:table-body&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;#60;xsl:for-each select="mydocument/chapters/chapter"&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:table-row&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:table-cell&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:block margin-bottom="0.8cm"&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;xsl:value-of select="@subject"/&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:block&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:table-cell&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:table-cell&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:block margin-bottom="0.8cm"&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;fo:page-number-citation&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;xsl:attribute name="ref-id"&amp;#62;chapter&amp;#60;xsl:value-of select="@id"/&amp;#62;&amp;#60;/xsl:attribute&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:page-number-citation&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:block&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:table-cell&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;emsp;&amp;#60;/fo:table-row&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;#60;/xsl:for-each&amp;#62;&lt;br /&gt;&amp;emsp;&amp;#60;/fo:table-body&amp;#62;&lt;br /&gt;&amp;#60;/fo:table&amp;#62;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Iterate over all chapters (id of chapter is an attribute):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%"&gt;&lt;br /&gt;&amp;#60;xsl:for-each select="mydocument/chapters/chapter"&gt;&lt;br /&gt;&amp;emsp;&amp;#60;fo:block&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;&amp;#60;xsl:attribute name="id"&amp;#62;chapter&amp;#60;xsl:value-of select="@id" /&amp;#62;&amp;#60;/xsl:attribute&amp;#62;&lt;br /&gt;&amp;emsp;&amp;#60;/fo:block&amp;#62;&lt;br /&gt;&amp;emsp;&amp;emsp;...&lt;br /&gt;&amp;#60;/xsl:for-each&amp;#62;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-2583277344575678524?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/2583277344575678524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-table-of-contents.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/2583277344575678524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/2583277344575678524'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-table-of-contents.html' title='FOP: Table of Contents'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-1482837471927687180</id><published>2008-12-03T18:03:00.000-08:00</published><updated>2008-12-03T18:15:50.302-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xsl-fo'/><category scheme='http://www.blogger.com/atom/ns#' term='fop'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='xsl'/><title type='text'>XSL: Get position() of parent node</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task:&lt;/span&gt;&lt;br /&gt;Get position() function of parent node. It was needed to represent xml structure like following (i had to check whether parent element is first, but I got interested in &lt;span style=";font-family:courier new;font-size:85%;"  &gt;position()&lt;/span&gt; problem):&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Element1&lt;/td&gt;&lt;td&gt;Subelement1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Subelement2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Element2&lt;/td&gt;&lt;td&gt;Subelement3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Subelement4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;parent::position() doesn't work because position is not property of element. In FOP an error appears:&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Error: A node test that matches either NCName:* or QName was expected.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Use &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;count(parent::*/preceding-sibling::*)+1&lt;/span&gt;&lt;/span&gt; code instead of &lt;span style=";font-family:courier new;font-size:85%;"  &gt;parent::position()&lt;br /&gt;By the way, if you wanna get &lt;span style="font-style: italic;"&gt;position of parent of parent&lt;/span&gt;... :)&lt;br /&gt;Use &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;count(parent::*parent::*/preceding-sibling::*)+1&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/17155324383478338-1482837471927687180?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/1482837471927687180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/get-position-of-parent-node.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/1482837471927687180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/1482837471927687180'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/get-position-of-parent-node.html' title='XSL: Get position() of parent node'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-6914950229284399</id><published>2008-12-01T16:00:00.000-08:00</published><updated>2008-12-03T18:15:00.124-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xsl-fo'/><category scheme='http://www.blogger.com/atom/ns#' term='fop'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><title type='text'>FOP: insert space</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Task: &lt;/span&gt;&lt;br /&gt;I need to insert space (like &amp;amp;nbsp;) into XSL-FO document (FOP is used)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;When I use     an exception is thrown:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;org.xml.sax.SAXParseException: The entity "nbsp" was referenced, but not declared.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;Use &lt;span style="font-family:courier new;"&gt;&amp;amp;#160;&lt;/span&gt; instead of &lt;span style="font-family:courier new;"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-6914950229284399?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/6914950229284399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-insert-space.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6914950229284399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/6914950229284399'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/fop-insert-space.html' title='FOP: insert space'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17155324383478338.post-4105786355805157416</id><published>2008-12-01T14:11:00.000-08:00</published><updated>2008-12-01T16:22:19.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introduction'/><title type='text'>My new blog...</title><content type='html'>Hi, guys!&lt;br /&gt;&lt;br /&gt;I'm &lt;span style="font-weight: bold;"&gt;DieZ&lt;/span&gt;, software developer from Kharkov, Ukraine.&lt;br /&gt;&lt;br /&gt;From the moment of writing &lt;a href="http://diezsblog.blogspot.com/2008/09/plunging-into-software-development.html"&gt;this message&lt;/a&gt;, some things were changes... some became obsolete and some new things appeared.&lt;br /&gt;&lt;br /&gt;So, now I'm &lt;span style="font-weight: bold;"&gt;freelancer&lt;/span&gt;. It's quite interesting because I have to solve different problems, not only concerning development process, but also as for self-motivation, self-organization, self-discipline and even some problems with taxes :)&lt;br /&gt;&lt;br /&gt;I'm &lt;span style="font-weight: bold;"&gt;project manager, sales manager, developer and tester &lt;/span&gt;at the moment -- sometimes it seems too hard but it's like a training for my brains, training for my organization and communication skills.&lt;br /&gt;&lt;br /&gt;For this moment I've made about $60 of cash. But hopefully soon I get more money :-D&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;In this blog &lt;/span&gt;I'm going to describe different problems I meet on my way. And try to describe solutions. I think it will be useful...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17155324383478338-4105786355805157416?l=diez-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diez-software.blogspot.com/feeds/4105786355805157416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diez-software.blogspot.com/2008/12/my-new-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/4105786355805157416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17155324383478338/posts/default/4105786355805157416'/><link rel='alternate' type='text/html' href='http://diez-software.blogspot.com/2008/12/my-new-blog.html' title='My new blog...'/><author><name>Dmytro M. AKA DieZ</name><uri>http://www.blogger.com/profile/04385481083522569512</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://bp1.blogger.com/_LULrLdi6Wcw/SDm16n6sxvI/AAAAAAAAAAs/UffY9xse05I/S220/DieZ.JPG'/></author><thr:total>0</thr:total></entry></feed>
