title: 'abs()' is an unknown XSLT function
body: <p>I have XSLT like:</p>
  
  <pre><code>&lt;xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"&gt;
  .......
  &lt;xsl:value-of select="format-number(abs(QUANTITY), '#')"/&gt;
  ....
  </code></pre>
  
  <p>which works perfectly with tools like Altova XMLSpy, but when I am trying to do transformation from .Net:</p>
  
  <pre><code>XslTransform myXslTransform = new XslTransform();
  myXslTransform.Load("some.xls");
  myXslTransform.Transform(@"inputxml", @"c:\out.csv");
  </code></pre>
  
  <p>It throws exception</p>
  
  <pre><code>System.Xml.Xsl.XsltException was unhandled
    Message='abs()' is an unknown XSLT function.
    Source=System.Data.SqlXml
  </code></pre>
  
  <p>I know ABS is a simple-enough function to implement, but question is why it happens with .Net?</p>
  
  <p>Does anybody have any thoughts?</p>