xsl-list
[Top] [All Lists]

xsl doesnt produce valid xhtml!!

2003-10-21 01:26:54

Sorry, i dont think the attachments were working, ill paste them in:
-----------------------------------------------------
examplexsl.xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:output method="html" encoding="UTF-8" indent="yes" />

        <xsl:variable name="Digits" select="1234567890"/>

        <xsl:template match="ves">
        <html>
        <table>
                <xsl:apply-templates select="ve[not(contains(@pos, '.'))]" />
        </table>
        </html>
        </xsl:template>

        <xsl:template match="ve">
                <xsl:variable name="rowspan" select="@des" />

                <xsl:choose>
                <!--TYPE-->
                <xsl:when test="entrydata/@colno='0'">
                        <!--<tr align="Left" valign="Top">-->TR<!--HEREHERE-->
                                <td rowspan="{$rowspan}" bgColor="#FFFFC2" 
valign="Middle">
                                        <xsl:choose>
                                        <xsl:when test="entrydata/text=''">
                                        <B>-Uncategorised Type-</B>
                                        </xsl:when>
                                        <xsl:otherwise>
<B><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></B>
                                        </xsl:otherwise>
                                        </xsl:choose>
                                </td>
            </xsl:when>

                <!--RESPONSIBILITY, 1 dot-->
                <xsl:when test="entrydata/@colno='1'">
                        <xsl:choose>
<xsl:when test="((count(../ve/@pos[string-length(translate(.,$Digits,'')) = 1])) > 1) and substring(current()/@pos, string-length(current()/@pos),'1') = 1"> <!--if count 1 dot elements > 1 and the last digit of the current element is 1 then dont put tr tag-->


                                </xsl:when>
                                <xsl:otherwise>
                                <!--<tr align="left" 
valign="Top">-->TR<!--HEREHERE-->
                                </xsl:otherwise>
                        </xsl:choose>
                        <td rowspan="{$rowspan}" bgcolor="#FFFFC2" 
valign="Middle">
                                <xsl:choose>
                                <xsl:when test="entrydata/text=''">
                                <B>-Uncategorised Responsibility-<xsl:value-of 
select="@pos" /></B>
                                </xsl:when>
                                <xsl:otherwise>
<B><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></B>
                                </xsl:otherwise>
                                </xsl:choose>
                        </td>
            </xsl:when>

                <!--MISCELLANEOUS, 2 dots-->
                <xsl:when test="entrydata/@colno='2'">
                <xsl:choose>
<xsl:when test="((count(../ve/@pos[string-length(translate(.,$Digits,'')) = 2])) > 1) and substring(current()/@pos, string-length(current()/@pos),'1') = 1"> <!--if count 2 dot elements > 1 and the last digit of the current element is 1 then dont put tr tag-->


                                </xsl:when>
                                <xsl:otherwise>
                                        <!--<tr align="Left" 
valign="Top">-->TR<!--HEREHERE-->
                                </xsl:otherwise>
                        </xsl:choose>
                        <td rowspan="{$rowspan}" bgcolor="#FFFFC2" 
valign="Middle">
                                <xsl:choose>
                                <xsl:when test="entrydata/text=''">
                                <B>-Uncategorised Misc-<xsl:value-of select="@pos" 
/></B>
                                </xsl:when>
                                <xsl:otherwise>
<B><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></B>
                                </xsl:otherwise>
                                </xsl:choose>
                        </td>
            </xsl:when>

                <!--PROC, 3 dots-->
                <xsl:otherwise>
                        <xsl:choose>
<xsl:when test="((count(../ve/@pos[string-length(translate(.,$Digits,'')) = 3])) > 1) and substring(current()/@pos, string-length(current()/@pos),'1') = 1"> <!--if count 3 dot elements > 1 and the last digit of the current element is 1 then dont put tr tag-->


                                </xsl:when>
                                <xsl:otherwise>
                                        <!--<tr align="Left" 
valign="Top">-->TR<!--HEREHERE-->
                                </xsl:otherwise>
                        </xsl:choose>
                        <!--proc name-->
<td BgColor="#FFFFC2"><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></td>
                <!--proc owner-->
<td BgColor="#FFFFC2"><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></td>
                <!--proc status-->
                <xsl:choose>
                <xsl:when test="entrydata[5]/text='Draft'">
<td BGColor="FF0000"><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></td>
                </xsl:when>
                <xsl:otherwise>
<td BGColor="00FF00"><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></td>
                </xsl:otherwise>
                </xsl:choose>
                <!--proc ID number-->
<td BgColor="#FFFFC2"><xsl:value-of select="entrydata/text" /><xsl:value-of select="@pos" /></td>
                <!--</tr>-->endTR<!--HEREHERE-->
                </xsl:otherwise>

                </xsl:choose>
                <!--loop through the viewentries by position-->
                <xsl:apply-templates
         select="../ve[starts-with(@pos, current()/@pos)
                    and
                     string-length(translate(@pos,
                                             $Digits,
                                             ''
                                             )
                                  )
                     =
                      1 + string-length(translate(current()/@pos,
                                                  $Digits,
                                                 ''
                                                 )
                                        )
                    ]">
      </xsl:apply-templates>
        </xsl:template>

</xsl:stylesheet>

-----------------------------------------------------------
examplexml.xml:
<ves>
<ve pos="1" des="4" siblings="2">
<entrydata colno="0" name="Type">
<text>Worldwide</text></entrydata>
</ve>
<ve pos="1.1" des="3">
<entrydata colno="1" name="Responsibilities">
<text>Implementation</text></entrydata>
</ve>
<ve pos="1.1.1" des="1">
<entrydata colno="2" name="MiscData">
<text>Unit controls</text></entrydata>
</ve>
<ve pos="1.1.1.1" siblings="1">
<entrydata colno="3" name="procName">
<text>Obtain version of anti-virus software</text></entrydata>
<entrydata colno="4" name="procOwn">
<text>gale deve</text></entrydata>
<entrydata colno="5" name="procPriority">
<text>4</text></entrydata>
<entrydata colno="6" name="procPoints">
<text>hatfield, surrey</text></entrydata>
<entrydata colno="7" name="procStatus">
<text>Live</text></entrydata>
<entrydata colno="8" name="procID">
<text>uut-347</text></entrydata>
</ve>
<ve pos="1.1.2" des="2">
<entrydata colno="2" name="MiscData">
<text>Quality controls</text></entrydata>
</ve>
<ve pos="1.1.2.1" siblings="1">
<entrydata colno="3" name="procName">
<text>Check proc</text></entrydata>
<entrydata colno="4" name="procOwn">
<text>bob dill</text></entrydata>
<entrydata colno="5" name="procPriority">
<text>2</text></entrydata>
<entrydata colno="6" name="procPoints">
<text>surrey</text></entrydata>
<entrydata colno="7" name="procStatus">
<text>Live</text></entrydata>
<entrydata colno="8" name="procID">
<text>eut-347</text></entrydata>
</ve>
<ve pos="1.1.2.2" siblings="1">
<entrydata colno="3" name="procName">
<text>Obtain ver</text></entrydata>
<entrydata colno="4" name="procOwn">
<text>dave</text></entrydata>
<entrydata colno="5" name="procPriority">
<text>5</text></entrydata>
<entrydata colno="6" name="procPoints">
<text>hatfield</text></entrydata>
<entrydata colno="7" name="procStatus">
<text>Live</text></entrydata>
<entrydata colno="8" name="procID">
<text>urt-347</text></entrydata>
</ve>
<ve pos="1.2" des="1">
<entrydata colno="1" name="Responsibilities">
<text>Testing</text></entrydata>
</ve>
<ve pos="1.2.1" des="1">
<entrydata colno="2" name="MiscData">
<text>More controls</text></entrydata>
</ve>
<ve pos="1.2.1.1" siblings="1">
<entrydata colno="3" name="procName">
<text>Check tools available</text></entrydata>
<entrydata colno="4" name="procOwn">
<text>gale deve</text></entrydata>
<entrydata colno="5" name="procPriority">
<text>4</text></entrydata>
<entrydata colno="6" name="procPoints">
<text>hatfield, surrey</text></entrydata>
<entrydata colno="7" name="procStatus">
<text>Live</text></entrydata>
<entrydata colno="8" name="procID">
<text>uut-347</text></entrydata>
</ve>
</ves>



------------------------------------------------------------
validoutput.html:
<html>
<table><tr><td rowspan="4" bgColor="#FFFFC2" valign="Middle"><B>Worldwide1</B></td> <td rowspan="3" bgcolor="#FFFFC2" valign="Middle"><B>Implementation1.1</B></td> <td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>Unit controls1.1.1</B></td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td>
<td BGColor="00FF00">Obtain version of anti-virus software1.1.1.1</td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td></tr>

<tr><td rowspan="2" bgcolor="#FFFFC2" valign="Middle"><B>Quality controls1.1.2</B></td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td>
<td BGColor="00FF00">Check proc1.1.2.1</td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td></tr>

<tr><td BgColor="#FFFFC2">Obtain ver1.1.2.2</td>
<td BgColor="#FFFFC2">Obtain ver1.1.2.2</td>
<td BGColor="00FF00">Obtain ver1.1.2.2</td>
<td BgColor="#FFFFC2">Obtain ver1.1.2.2</td></tr>

<tr><td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>Testing1.2</B></td>
<td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>More controls1.2.1</B></td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td>
<td BGColor="00FF00">Check tools available1.2.1.1</td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td></tr></table>
</html>

---------------------------------------------------------------
output.html:
<html>
<table>TR<td rowspan="4" bgColor="#FFFFC2" valign="Middle"><B>Worldwide1</B></td> <td rowspan="3" bgcolor="#FFFFC2" valign="Middle"><B>Implementation1.1</B></td> <td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>Unit controls1.1.1</B></td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td>
<td BGColor="00FF00">Obtain version of anti-virus software1.1.1.1</td>
<td BgColor="#FFFFC2">Obtain version of anti-virus software1.1.1.1</td>endTRTR<td rowspan="2" bgcolor="#FFFFC2" valign="Middle"><B>Quality controls1.1.2</B></td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td>
<td BGColor="00FF00">Check proc1.1.2.1</td>
<td BgColor="#FFFFC2">Check proc1.1.2.1</td>endTRTR<td BgColor="#FFFFC2">Obtain ver1.1.2.2</td>
<td BgColor="#FFFFC2">Obtain ver1.1.2.2</td>
<td BGColor="00FF00">Obtain ver1.1.2.2</td>
<td BgColor="#FFFFC2">Obtain ver1.1.2.2</td>endTRTR<td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>Testing1.2</B></td> <td rowspan="1" bgcolor="#FFFFC2" valign="Middle"><B>More controls1.2.1</B></td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td>
<td BGColor="00FF00">Check tools available1.2.1.1</td>
<td BgColor="#FFFFC2">Check tools available1.2.1.1</td>endTR</table>
</html>
--------------------------------------------------------------
From: "james walker" <jameswalkerandy(_at_)hotmail(_dot_)com>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] xsl doesnt produce valid xhtml
Date: Mon, 20 Oct 2003 13:22:14 +0100

I am having a problem with the design of an xsl. I want it to tak ethe <ve> tags and put it onto a table with rowpsans. examplexsl.xsl and examplexml.xml produce output.html and i want it to produce validoutput.html with the <tr> and </tr> tags in th ecrrect place. Only the processor complains at me when i try to process the xslt with <tr> tags in it *as it isnt valid xhtml). I f anyone knows of any way to solve this, i would much appreciate it, are there any ways to get around producing valid xhtml ?
thanks
(files attached)

_________________________________________________________________
Stay in touch with absent friends - get MSN Messenger http://www.msn.co.uk/messenger


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


_________________________________________________________________
Get Hotmail on your mobile phone http://www.msn.co.uk/msnmobile


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>
  • xsl doesnt produce valid xhtml!!, james walker <=