Subject: [xsl] what's the best way to validate input parameters to a stylesheet? From: "Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 19 Mar 2021 21:57:38 -0000 |
Hello! I've got a stylesheet that takes two string parameters: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:param name="from.att" as="xs:string"/> <xsl:param name="to.att" as="xs:string"/> Both parameters are expected to be strings in the form of @attributename=value At first I tried adding a check at the top level of the stylesheet: <xsl:if test="not(matches($from.att, '^@\w+=\w+$') and matches($to.att, '^@\w+=\w+$'))"> <xsl:message terminate="yes">Input parameters must be in the form '@attributename=value'.</xsl:message> </xsl:if> but <xsl:if> isn't allowed at the top level of a stylesheet. So for now I'm doing this in a "dummy" root element template that doesn't do anything: <!-- this doesn't actually do anything other than validate our input parameters --> <xsl:template match="/" priority="20"> <xsl:choose> <xsl:when test="matches($from.att, '^@\w+=\w+$') and matches($to.att, '^@\w+=\w+$')"> <xsl:next-match/> </xsl:when> <xsl:otherwise> <xsl:message>Input parameters must be in the form '@attributename=value'.</xsl:message> <xsl:copy-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:template> but I feel like there's probably a better way. Is there? ----- Chris Papademetrious Tech Writer, Implementation Group (610) 628-9718 home office (570) 460-6078 cell
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] sorting, xslt 2.0, Dave Pawson dave.paw | Thread | Re: [xsl] what's the best way to va, Wendell Piez wapiez@ |
Re: [xsl] sorting, xslt 2.0, Dave Pawson dave.paw | Date | Re: [xsl] what's the best way to va, Wendell Piez wapiez@ |
Month |