即時函數試圖調用xsl中的c#函數。我必須將一些值映射到xml中。有3種主成分如何調用xsl中的c#函數
-xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var"
xmlns:ns0="http://iti/serv/dataloader"
xmlns:HelpersNS0="http://ri/clus/mapperhelpers/v1.0/I/F/C/CustomComponents ">
<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
<xsl:template match="/*[local-name()='InvokeDataLoader']">
<ns0:scriptToExecute>
<xsl:value-of select="HelpersNS0:GetDataLoaderPath()"/>
</ns0:scriptToExecute>
</xsl:template>
</xsl:stylesheet>
-xml從哪裏獲得的C#組件
<?xml version="1.0" encoding="UTF-8" ?>
<ExtensionObjects>
<ExtensionObject
Namespace="http://ri/clus/mapperhelpers/v1.0/I/F/C/CustomComponents"
AssemblyName="G.T.I_Fatt.CustomComponents, Version=1.0.0.0,Culture=neutral, PublicKeyToken=6ecedb456a4a8c16"
ClassName="G.T.I_Fatt.CustomComponents.MapperHelpers" />
</ExtensionObjects>
-xml改造
<?xml version="1.0" encoding="UTF-8" ?>
<InvokeDataLoader xmlns="http://iti/serv/dataloader">
<scriptToExecute/>
<inputFile/>
</InvokeDataLoader>
但是當我嘗試改變我得到這個錯誤:「命名空間不包含任何功能」
您使用哪種XSLT處理器?下面列出了Microsoft'XslCompiledTransform'的擴展機制:http://msdn.microsoft.com/en-us/library/6datxzsd%28v=vs.110%29.aspx。您可以使用內嵌C#或VB代碼的「腳本」塊,也可以在需要使用http://msdn.microsoft.com/zh-CN/library/system.xml.xsl傳遞擴展對象的地方使用擴展對象.xsltargumentlist.addextensionobject%28V = vs.110%29.aspx。您發佈的代碼段不使用這兩種機制中的任何一種。那麼您使用哪種XSLT處理器? –
其實我用Xtrans工具來測試它,但是不好使用visual studio和Biztalk地圖使它工作 – user3489663