1

現在、XSLT を使用して XML ファイルを EDIFACT 形式のファイルに変換しようとしています。翻訳フェーズは問題​​ないようです。パススルー送信ポートを使用することで、EDIFACT ファイルを XML 形式で取得できます。ただし、ファイルを 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