Subject: Re: [xsl] MSXML 4 - RowSetSchema XML From: "Tom Stewart" <tbstewart@xxxxxxx> Date: Mon, 16 Feb 2004 17:11:23 -0700 |
Kirk, Thank you for sharing this information. It's exactly what I need! I will try it. Cheers, --Tom. ----- Original Message ----- From: "Kirk Allen Evans" <kaevans@xxxxxxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Saturday, February 07, 2004 8:02 PM Subject: RE: [xsl] MSXML 4 - RowSetSchema XML > > Q: How do I write the XSL to detect a missing rowset attribute? I want > > to add whitespace to the cell to keep the data set lined up in the correct > > columns. > > One way is to test to see if the element has all of the attributes by > specifying them in the XSLT: > > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="text"/> > <xsl:template match="root"> > <xsl:text> > Nodes without A: > </xsl:text> > <xsl:apply-templates select="child::*[not(@a)]"/> > > <xsl:text> > Nodes without B: > </xsl:text> > <xsl:apply-templates select="child::*[not(@b)]"/> > > <xsl:text> > Nodes without C: > </xsl:text> > <xsl:apply-templates select="child::*[not(@c)]"/> > </xsl:template> > <xsl:template match="*"> > <xsl:value-of select="local-name()"/> > <xsl:if test="position() != last()"> > <xsl:text>,</xsl:text> > </xsl:if> > </xsl:template> > </xsl:stylesheet> > > Given the input document: > <root> > <foo a="1" b="2" c="3"/> > <bar a="1"/> > <baz a="1" b="2"/> > </root> > > The result is: > > > Nodes without A: > > Nodes without B: > bar > Nodes without C: > bar,baz > > > This may fit your scenario because you specified you were using ADO and the > RowSetSchema [1], where you will always have a fixed number of attributes > for each of the s:AttributeType elements. This approach does not work well > for the child s:DataType element, where the number of attributes is > determined by the datatype itself (a type of "int" will have an > "rs:precision" attribute, while a type of "string" will not). > > This approach is not very reusable in different instances because you rely > on the same attributes to be present for each element. You could just take > the approach of finding out the maximum number of attributes [2] that an > element may have and use that when generating the table. > > [1] http://gethelp.devx.com/techtips/xml_pro/10min/10min0100/listing2.htm > > [2] http://www.topxml.com/code/default.asp?p=3&id=v20030314165921 > > > > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > tbstewart@xxxxxxx > Sent: Friday, February 06, 2004 8:05 AM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] MSXML 4 - RowSetSchema XML > > Hi, > > I am using MSXML 4.0 to perform server-side (memory resident) > transformations in my Classic ASP Web application. The default XML that > ADO generates is a combination of the schema and the XML in what MS calls > a RowSetSchema. The problem with using the XML as is, is that when a data > item is null the node's attribute is not included in the rowset. Hence, > the report's table cell is not preserved and the remaining data columns > shift one or more columns to the left. > > Q: How do I write the XSL to detect a missing rowset attribute? I want to > add whitespace to the cell to keep the data set lined up in the correct > columns. > > Thanks for your help. > > Cheers, > --Tom > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] MSXML 4 - RowSetSchema XM, Kirk Allen Evans | Thread | Re: [xsl] MSXML 4 - RowSetSchema XM, Joe Fawcett |
[xsl] exslt:node-set() vs Xalan-J 2, Julian Reschke | Date | [xsl] is there any tool that automa, Donal Regan |
Month |