我目前正在尝试将使用 XSLT 的 XML 文件转换为 EDIFACT 格式文件。翻译阶段似乎很好。通过使用直通发送端口,我可以获得 XML 格式的 EDIFACT 文件。但是,一旦我尝试将文件传递给 EDISend 管道,我就会遇到异常
错误详细信息:“无法从交换中读取分隔符集。根节点中缺少属性 DelimiterSetSerializedData”
对于这个特定的翻译,我使用 EdifactInterchangeXml 作为目标模式。
在 XSLT 本身中,我还声明了以下部分:
<ex0:EdifactInterchangeXml DelimiterSetSerializedData="39:-1:-1:43:58:63:42:44:-1" xmlns:ex0="http://schemas.microsoft.com/Edi/Edifact">
<!--UNB-->
<ex1:UNB xmlns:ex1="http://schemas.microsoft.com/Edi/EdifactServiceSchema">
<UNB1>
<UNB1.1><xsl:text>UNOA</xsl:text></UNB1.1>
<UNB1.2><xsl:text>1</xsl:text></UNB1.2>
</UNB1>
<UNB2>
<UNB2.1><xsl:text>PSA</xsl:text></UNB2.1>
</UNB2>
<UNB3>
<UNB3.1><xsl:value-of select="userCSharp:Mandatory(substring($Desc_COMMID,1,35))"/></UNB3.1>
</UNB3>
<UNB4>
<UNB4.1><xsl:value-of select="substring($DT,3,6)"/></UNB4.1>
<UNB4.2><xsl:value-of select="substring($DT,9,4)"/></UNB4.2>
</UNB4>
<UNB5><xsl:text>(EBP)001</xsl:text></UNB5>
<xsl:if test="$Desc_COMMID">
<UNB10><xsl:value-of select="substring($Desc_COMMID,1,35)"/></UNB10>
</xsl:if>
</ex1:UNB>
<ex2:TransactionSetGroup xmlns:ex2="http://schemas.microsoft.com/Edi/Edifact">
<ex3:TransactionSet DocType="http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006#EFACT_1911_BAPLIE" xmlns:ex3="http://schemas.microsoft.com/Edi/Edifact">
<ns0:EFACT_1911_BAPLIE>
<!--UNH-->
<UNH>
<UNH1><xsl:text>(EBP)0001</xsl:text></UNH1>
<UNH2>
<UNH2.1><xsl:text>BAPLIE</xsl:text></UNH2.1>
<UNH2.2><xsl:text>1</xsl:text></UNH2.2>
<UNH2.3><xsl:text>911</xsl:text></UNH2.3>
<UNH2.4><xsl:text>UN</xsl:text></UNH2.4>
<UNH2.5><xsl:text>SMDG15</xsl:text></UNH2.5>
</UNH2>
</UNH>
有什么建议可能导致上述错误?