Re: [xsl] Flagging records that don't match a particular pattern

Subject: Re: [xsl] Flagging records that don't match a particular pattern
From: "Grant Slade" <grant.slade@xxxxxxxxx>
Date: Wed, 28 Mar 2007 09:33:35 -0600
I have been investigating using xsl:message to try and capture
problems in my stylesheet.  I find that it does send a message to the
processor, but I'm unsure how to capture that message within the Java
application.  Is that possible?

On 3/20/07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
Since you are using XSLT 2.0 you could use xsl:result-document to create an
output file to hold the validation messages. Alternatively you might be able
to use xsl:message, by directing the xsl:message output to a suitable
destination.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Grant Slade [mailto:grant.slade@xxxxxxxxx]
> Sent: 20 March 2007 01:07
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Flagging records that don't match a particular pattern
>
> Hello - I am relatively new to xslt.  I was wondering how to
> flag records that don't match a pattern.  I am going to be
> iterating through about 8000 xml files in java transforming
> them from one xml to another format required by a different
> company.  I know that I am going to miss some of the patterns
> at first but was wondering if there's a way to flag the files
> that don't match up and maybe write them to a seperate directory.
>
> For example in matching author tags (<AU>Slade, Grant^Riggins,
> John</Au>) - could I do something in the xsl:otherwise part?:
>    <xsl:template match="AU">
>         <contrib contrib-type="author">
>             <xsl:choose>
>                 <xsl:when test="contains(., '^')">
>                     <xsl:for-each select="tokenize(.,'\^')">
>                         <xsl:choose>
>                             <xsl:when test="contains(.,',')">
>                                 <name>
>                                     <surname>
>                                         <xsl:value-of
> select="substring-before(.,',')"/>
>                                     </surname>
>                                     <given-names>
>                                         <xsl:value-of
> select="substring-after(.,',')"/>
>                                     </given-names>
>                                 </name>
>                             </xsl:when>
>                         </xsl:choose>
>                     </xsl:for-each>
>                 </xsl:when>
>                 <xsl:otherwise>OUTPUT TO DIFFERENT DIRECTORY
> HERE?</xsl:otherwise>
>             </xsl:choose>
>         </contrib>
>     </xsl:template>

Current Thread