This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: calling a web service from XSLT
- From: "Frank Chen" <jsfrank dot chen at msa dot hinet dot net>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Sat, 1 Jun 2002 02:41:24 +0800
- Subject: Re: [xsl] calling a web service from XSLT
- References: <3CF79661.9070504@redrice.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi:
Very interesting. You do 'breakthrough' my imagination!
----- Original Message -----
From: "Francis Norton" <francis@redrice.com>
To: "xsl-list" <xsl-list@lists.mulberrytech.com>
Sent: Friday, May 31, 2002 11:27 PM
Subject: [xsl] calling a web service from XSLT
> (Apologies to xml-dev readers who may have seen my related message)
>
> It's not a theoretical breakthrough or anything like that, but I thought
> xsl-list readers might be interested in a working example of calling a
> Web Service from XSLT.
>
> For files like this:
>
> <cardlist>
> <card number="00000000000000"/>
> </cardlist>
>
> you can run (with msxsl.exe - the "https:" URL appears to break saxon)
> the following transform:
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0" xmlns:cdyne="http://ws.cdyne.com/">
> <xsl:output indent="yes"/>
> <xsl:variable name="CheckCC"
>
select="'https://secure.cdyne.com/creditcardverify/luhnchecker.asmx/CheckCC?
CardNumber='"
> />
> <!-- -->
> <!-- do a "pass-through" type transform -->
> <xsl:template match="@* | node()">
> <xsl:copy>
> <xsl:apply-templates select="@* | node()"/>
> </xsl:copy>
> </xsl:template>
> <!-- -->
> <!-- for everything except elements in the target namespace -->
> <xsl:template match="card">
> <xsl:copy>
> <xsl:attribute name="CardValid">
> <xsl:value-of select="document(concat($CheckCC,
> @number))/cdyne:ReturnIndicator/cdyne:CardValid = 'true'" />
> </xsl:attribute>
> <xsl:apply-templates select="@* | node()"/>
> </xsl:copy>
> </xsl:template>
> <!-- -->
> </xsl:stylesheet>
>
> to get each card element marked up with a CardValid attribute containing
> a boolean true or false.
>
> Not something I'd use in production lightly, and limited to Web Services
> with an HTTP GET binding, but satisfactory in its way.
>
> Francis.
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list