我已经使用 altova mapforce 生成了 XSLT,并且在 altova 中生成了 xslt 和输出 xml,没有任何问题。
当我在 Visual Studio 2013 中复制相同的 xslt 并尝试运行但最终出现以下错误时, 找不到与命名空间“ http://www.w3.org/2001/XMLSchema ”关联的脚本或扩展对象。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:core="http://www.altova.com/MapForce/UDF/core"
xmlns:vmf="http://www.altova.com/MapForce/UDF/vmf"
xmlns:ns0="http://www.altova.com/xslt-extensions"
xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-prefixes="core vmf ns0 xs fn">
<xsl:template name="core:firstCharacter">
<xsl:param name="value" select="()"/>
<xsl:param name="default" select="()"/>
<xsl:choose>
<xsl:when test="(fn:string-length($value) = xs:integer('0'))">
<xsl:sequence select="$default"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="var1_resultof_cast" as="xs:double" select="xs:double(xs:integer('1'))"/>
<xsl:sequence select="fn:substring($value, $var1_resultof_cast, $var1_resultof_cast)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/">
<xsl:variable name="var1_resultof_cast" as="xs:string" select="xs:string(xs:decimal('0'))"/>
<xsl:variable name="var2_entry" as="node()?" select="entry"/>
<xsl:variable name="var3_resultof_map" as="xs:string*">
以下行错误:
<xsl:variable name="var1_resultof_cast" as="xs:string" select="xs:string(xs:decimal('0'))"/>