XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + DBF converter with the Cyrilli... (3)
-> + Stylus Studio caching document... (3)
-> + Stylus Studio Online help inst... (9)
-> + specific colors (2)
-> + Formatting problems when creat... (2)
-> - Headers and Footers (1)
-> + XML output's a URL in Browser ... (2)
-> + Generating Java Code for XML (3)
-> + format dates in publisher (2)
-> + grouping in Stylus Studio Publ... (5)
-> + Can schema documentation title... (3)
-> + Stylus can not find the right ... (2)
-> + Problem to create Schema from ... (5)
-> - Design a DTD to represent the ... (1)
-> + Surround SCM integration (3)
-> + Converting a csv file to xml u... (5)
-> + Legacy Format Handling (3)
-> + Size limit for XML documents (2)
-> + Can Stylus Studio easily expor... (3)
-> + Problem convert excel to xml (5)
-> + convert X12 EDI into XML in a... (2)
-> + Capturing the return data for ... (3)
-> + stamps.com wsdl issues (3)
-> + Preview issues (2)
-> + Stylus Studio X14 - XML to EDI... (3)
-> + Stylus Studio X14 - Overrides ... (4)
-> + Anyway to specify namespace pr... (6)
-> + StylusStudio 2010 crashes when... (6)
-> + Version Upgrade (2)
-> + How to write a if -else statem... (4)
-> + URGENT URGENT URGENT ! (EDIF... (3)
-> + X14 Saxon document uri problem (5)
-> + namespace problem on XML gener... (7)
-> + Stylus Studio Tool Bars (2)
-> + X14 Enterprise - Web Services ... (3)
-> + Saxon edition in X14 Enterpris... (2)
-> + How to create PDF documents wi... (2)
-> + WSCall doesn't work from xquer... (4)
-> + Issues with converter (8)
-> + xsd null strings - option to i... (2)
-> - wrapping table rows and mismat... (3)
-> ->wrapping table rows and m...
-> ->wrapping table rows and m...
-> + Report Designer: Is it possibl... (4)
-> + Message Baplie 1.5 with 1.911 ... (2)
-> + saved merged view in diff engi... (2)
-> + Cannot see needed element to m... (2)
-> + Matching problem in function (3)
-> - Funny warning message (1)
-> - Missing rows and text when con... (1)
-> + Another JSON problem (2)
-> + JSON problem (8)
-> + WebDav Custom properties (2)
-> + jvm not registering in the too... (2)
-> + How to turn off error about mi... (6)
-> + XML Attribute Element output f... (2)
-> + ddtek:wscall not returning all... (7)
-> - Trial Only Lasted 7 of the 14 ... (1)
-> + tree view without leaves (fiel... (3)
-> + XML to Text File (2)
-> + Stylus Studio Processor Debugg... (3)
-> + Java XMLPipeline result to str... (6)
-> + Attribute - XSD, DataDirect, X... (7)
-> + .NET XslCompliedTransform pro... (3)
-> + How to increase JVM Heap Size? (10)
-> + How in XSD do I reference the ... (2)
-> + Conversion of negative numbers (2)
-> + XSLT mapper (2)
-> - Converting csv file with embed... (1)
-> + WSDL completion inquiry (2)
-> - Move License (1)
-> + XML to Excel conversion and vi... (8)
-> + “spell checker” and “well-form... (2)
-> + Relational DB Icon Not appeari... (2)
-> + How come AUP doesn't respond (4)
-> - Software activation does not w... (1)
-> + Stylus studio continually cras... (2)
-> + Error running on Windows 7 (3)
-> + Creating xml start and end tag... (4)
-> + Keeping track of position afte... (3)
-> + splitting a row into multiple ... (3)
-> + Where is Convert to XML? (2)
-> + Built-In XSLT Processor Missin... (4)
-> - Converting XSL to XSL-FO (1)
-> - Can we compare two XML Schema ... (1)
-> - Stylus Studio EDI Conversion /... (1)
-> + Installation Issue Windows XP ... (2)
-> + Converting CSV with component ... (2)
-> - how to edit a xsl file, so tha... (1)
-> - Cannot save file to Webdav (1)
-> + How to copy Column Names on Gr... (3)
-> - XML when to use (1)
-> - Attribute vs data elements (1)
-> - Attribute Group (1)
-> - EDI conversion from command li... (1)
-> - WSDL schema - import of xsd (1)
-> + Get Date (2)
-> + help calling https web service (5)
-> - Newbie looking out for BizTalk... (1)
-> + Publishing XML pipeline as Web... (2)
-> - annotation within sequence ele... (1)
-> - backmapping using Saxonica 9.1... (1)
-- Previous [301-320] [321-340] [341-360] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Michael CepekSubject: wrapping table rows and mismatched end-tag errors
Author: Michael Cepek
Date: 08 Nov 2011 03:45 PM
Originally Posted: 08 Nov 2011 03:46 PM
I'm using for-each to generate table cells. I want at most 10 cells per row. But StylusStudio doesn't like it when I conditionally end and then restart the table row. It complains that the enclosing tag isn't terminated properly. Here's the transform code snippet:

<table>
<tr>
<xsl:for-each select="//blah">
<xsl:if test="position()!=1 and (position() mod 10)=1">
</tr><tr>
</xsl:if>

The error generated (against the close-tr tag line) is:

SXXP0003: Error reported by XML parser: The element type "xsl:if" must be terminated by the matching end-tag "</xsl:if>"

I've tried a number of things that didn't help:
- commenting out <xsl:output method="html">
- wrapping the </tr><tr> tags in <xsl:text>
- using &lt;/tr&gt;&lt;tr&gt;
- looking for an option to disable enforced tag pairing

This seems to be a StylusStudio issue, as the XSL editor itself is quite insistent on having matched tags.

Note that changing the </tr><tr> line in my snippet above to <td>WRAP</td> works as expected.

How can I accomplish my goal of restarting the table row within the loop? Thanks.

Postnext
Ivan PedruzziSubject: wrapping table rows and mismatched end-tag errors
Author: Ivan Pedruzzi
Date: 10 Nov 2011 02:59 AM

Stylus Studio is not at fault, the error is correctly thrown by the XSLT processor, because the XSLT source is not well formed.

Grouping is one of the typical tasks that requires a bit of strategy

In the attached example a generic list of element is rendered in a table given a fix number of columns

Hope this helps
Ivan Pedruzzi
Stylus Studio Team



Documentgroup-by-number-of-table-cells.zip

Posttop
Michael CepekSubject: wrapping table rows and mismatched end-tag errors
Author: Michael Cepek
Date: 10 Nov 2011 09:55 AM
Thanks Ivan. I see how to do it. I find it curious how the construct of the language (XSLT) forces the use of a nested loop to solve this simple problem.

For those playing along at home, here's the translation of my original post that works.

<xsl:variable name="numCols" select="10"/>
<table>
<xsl:for-each select="//blah">
<xsl:if test="position() mod $numCols = 1">
<xsl:variable name="rowStart" select="position()"/>
<tr>
<xsl:for-each select="//blah">
<xsl:if test="position() &gt;= $rowStart and position() &lt; $rowStart + $numCols">
<td>

And the following is Ivan's example code that you can copy and paste. It can be run against the books.xml file in the 'examples' directory that comes with StylusStudio.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:variable name="numCols" select="9"/>
<xsl:template match="/">
<html>
<head/>
<body>
<table border="1">
<xsl:for-each select="/books/book/*">
<xsl:if test="position() mod $numCols = 1">
<xsl:variable name="rowStart" select="position()"/>
<tr>
<xsl:for-each select="/books/book/*">
<xsl:if test="position() &gt;= $rowStart and position() &lt; $rowStart + $numCols">
<td>
<xsl:value-of select="."/>
</td>
</xsl:if>
</xsl:for-each>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.