1

我目前正在尝试将使用 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>

有什么建议可能导致上述错误?

4

0 回答 0