[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Saxon processing problem...

Subject: Saxon processing problem...
From: Robert Wilkins <wilkins.robert@xxxxxxxxxxx>
Date: Sat, 29 Mar 2008 13:46:12 -0400
 Saxon processing problem...
All of this should work, did work, but doesn't.  The source document
contains an error message table. The stylesheet should simply grab a
group of rows from a table, and write the results to a set of result-
documents based on a group-size parameter. I am using several other
stylesheets that perform similar tasks, and all of them work. This
source document is DITA-based; the others are not. Any help would be
greatly appreciated.

Error #1 -
If use Saxon8 or Saxon9 and try to output to a <result-document> from
the command line, I get a java.lang.StackOverflowError. If I use
Saxon9B in Eclipse (w/oXygenxml), I get an error that says "[Saxon9B]
null	Ant_Doc/xsl	mkpreprocerrs.xsl	Unknown	1206732845515	291"

Error #2
If I comment the <result-document> tags and use Saxon6.5.5 in Oxygen,
the transformations occur, but the title and short description
content in the output appear after the declaration, like this :


<?xml version="1.0" encoding="utf-8"?>Source document titleShort decription content <!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "Reference.dtd"> <reference id="allprocerrs1-ref"> <title id="allprocerrs1-title">Messages 2601 through 2621</title>

Source Document

<?xml version="1.0"?>
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
<reference id="allpreprocerrs_ref">
<title>Source document title</title>
<shortdesc> Short decription content/shortdesc>
<refbody>
<table id="allpperrs_tbl">
<tgroup cols="5">
<colspec colnum="1" colname="col1" colwidth="1*"/>
<colspec colnum="2" colname="col2" colwidth="1*"/>
<colspec colnum="3" colname="col3" colwidth="3*"/>
<colspec colnum="4" colname="col4" colwidth="3*"/>
<colspec colnum="5" colname="col5" colwidth="1*"/>
<thead>
<row>
<entry colname="col1" align="center">Type</entry>
<entry colname="col2" align="center">Number</ entry>
<entry colname="col3" align="center">Message</ entry>
<entry colname="col4" align="center">Possible Cause</entry>
<entry colname="col5" align="center">UltraLite</ entry>
</row>
</thead>
<tbody>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2601</p>
</entry>
<entry colname="col3" align="left">
<p>subscript value %1 too large</p>
</entry>
<entry colname="col4">
<p>You have attempted to index a host variable that is an array with a value too large for the array.</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2602</p>
</entry>
<entry colname="col3" align="left">
<p>combined pointer and arrays not supported for host types</p>
</entry>
<entry colname="col4">
<p>You have used an array of pointers as a host variable. This is not legal.</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2603</p>
</entry>
<entry colname="col3" align="left">
<p>combined pointer and arrays not supported for host types</p>
</entry>
<entry colname="col4">
<p>You have attempted to declare a host variable as an array of character arrays. This is not a legal host variable type</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2604</p>
</entry>
<entry colname="col3" align="left">
<p>VARCHAR type must have a length</p>
</entry>
<entry colname="col4">
<p>You have attempted to declare a VARCHAR or BINARY host variable using the DECL_VARCHAR or DECL_BINARY macro but have not specified
a size for the array.
</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2605</p>
</entry>
<entry colname="col3" align="left">
<p>arrays of VARCHAR not supported</p>
</entry>
<entry colname="col4">
<p>You have attempted to declare a host variable as an array of VARCHAR or BINARY. This is not a legal host variable type.</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
<row>
<entry colname="col1" align="left">
<p>Error</p>
</entry>
<entry colname="col2">
<p>2606</p>
</entry>
<entry colname="col3" align="left">
<p>VARCHAR host variables cannot be pointers</p>
</entry>
<entry colname="col4">
<p>You have attempted to declare a host variable as a pointer to a VARCHAR or BINARY. This is not a legal host variable type.</p>
</entry>
<entry colname="col5">
<p>False</p>
</entry>
</row>
</tbody>
</tgroup>
</table>
</refbody>
</reference>


Stylesheet

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

	<xsl:output method="text"/>
	<xsl:output method="xml"
		doctype-public="-//OASIS//DTD DITA Composite//EN"
		doctype-system="reference.dtd"
		indent="yes"
		name="xml"/>
		
	<xsl:strip-space elements="*"/>
	<xsl:param name="grp-size" select="number(20)"/>

<xsl:template match="//table">
<xsl:apply-templates mode="stategroup" select="//tbody/row[position () mod $grp-size=1]"/>
</xsl:template>


<xsl:template match="//tbody/row" mode="stategroup">
<xsl:variable name="num">
<xsl:number count="row[position() mod $grp-size=1]"/>
</xsl:variable>
<xsl:variable name="filename" select="concat('output/preprocerrs/ preprocerr',$num)"/>
<xsl:result-document href="{$filename}" format="xml">

<xsl:variable name ="ref-id" select="concat('preproc', $num,'- ref' )"/>
<xsl:variable name ="ttl-id" select="concat('preproc', $num,'- ttl' )"/>
<xsl:variable name ="tbl-id" select="concat('preproc', $num,'- tbl' )"/>


<reference id="{$ref-id}">
<title id="{$ttl-id}">Preprocessing Errors
<xsl:variable name="start" select="./entry[@colname='col2']"/>
<xsl:value-of select="$start[position() mod $grp-size=1]"/> through
<xsl:apply-templates mode="varstate" select=". | following- sibling::row[position() &lt; $grp-size]">
</xsl:apply-templates>
</title>
<shortdesc></shortdesc>
<refbody>
<table id="{$ttl-id}">
<tgroup cols="4">
<colspec column="1" colname="col1" colwidth="1*"/>
<colspec column="2" colname="col2" colwidth="2.25*"/>
<colspec column="3" colname="col3" colwidth="1*"/>
<colspec column="4" colname="col5" colwidth="2.25*"/>
<thead>
<row>
<entry colname="col1" align="center">Error Code</entry>
<entry colname="col1" align="center">Type</entry>
<entry colname="col1" align="center">Message</entry>
<entry colname="col1" align="center">Possible Cause</entry>
</row>
</thead>
<tbody>
<xsl:apply-templates mode="stateitem" select=". | following-sibling::row[position() &lt; $grp-size]">
</xsl:apply-templates>
</tbody>
</tgroup>
</table>
</refbody>
</reference>
</xsl:result-document>
</xsl:template>


<xsl:template match="//row" mode="stateitem">
<xsl:variable name="msg-type" select="entry[@colname='col1']"/>
<xsl:variable name="errnum" select="entry[@colname='col2']"/>
<xsl:variable name="errmsg" select="entry[@colname='col3']"/>
<xsl:variable name="poss-cause" select="entry[@colname='col4']"/>

<row>


			<entry colname="col1" align="left" valign="top">
				<xsl:value-of select="$msg-type"/>
			</entry>
			<entry colname="col2" align="left" valign="top">
				<xsl:value-of select="$errnum"/>
			</entry>
				<entry colname="col3" align="left" valign="top">
				<xsl:value-of select="$errmsg"/>
				</entry>
			<entry colname="col4" align="left" valign="top">
				<xsl:value-of select="$poss-cause"/>
			</entry>
		</row>
	</xsl:template>
	
	
	<xsl:template match="//row" mode="varstate">
		<xsl:choose>
			<xsl:when test="position()=last()">
				<xsl:value-of select="entry[@colname='col2']"/>
			</xsl:when>
		</xsl:choose>
	</xsl:template>
	
	
</xsl:stylesheet>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.