错误消息URI不标识外部Java类

时间:2010-06-14 19:01:14

标签: c# xslt namespaces fxsl

我是XSL的新手,因此不熟悉在XSL中使用脚本。

我已经采用了示例代码(也使用C#)并将其改编为我自己使用..但它不起作用。

编辑:此代码适用于Visual Studio ..错误仅在Oxygen中生成...我仍然希望在Oxygen中没有错误,所以任何见解都值得赞赏!

错误消息是:URI urn:cs-scripts不识别外部Java类

我的相关代码是:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
xmlns:tok="urn:cs-scripts">

...
...
...
</xsl:template>


<xsl:variable name="temp">
    <xsl:value-of select="tok:getList('AAA BBB CCC', ' ')"/>
</xsl:variable>

<msxsl:script language="C#" implements-prefix="tok">
    <![CDATA[
    public string[] getList(string str, char[] delim)
  {
     return str.Split(delim, StringSplitOptions.None);
  }

  public string getString(string[] list, int i)
  {
     return list[i];
  }
  ]]>
</msxsl:script>


</xsl:stylesheet>

2 个答案:

答案 0 :(得分:4)

声明

xmlns:tok="urn:cs-script"

指的是在XSLT中用C#创建的函数。 Oxygen是在java中创建的,因此无法加载/编译C#生成的回调函数。

如果要删除Oxygen中的错误,请删除C#特定的回调函数(仅适用于.Net环境)。

答案 1 :(得分:2)

您不需要用于将字符串拆分为单词的扩展功能。

只需使用here所述的FXSL 1.x模板str-split-to-words

因为FXSL是用XSLT编写的,所以它适用于任何XSLT 2.0处理器和XSLT 1.x - 使用MSXML或支持EXSLT node-set()扩展的任何处理器(XslCompiledTransform也支持) .NET)。