【问题标题】:btm mapping exception - Attribute and namespace nodes cannot be added to the parent elementbtm 映射异常 - 不能将属性和命名空间节点添加到父元素
【发布时间】:2018-02-01 17:39:43
【问题描述】:

我有btm mapping file 我做了custom body mapping 如下所示,但当时transformation xslt gives below error -

属性和命名空间节点不能添加到父元素 在已添加文本、评论、pi 或子元素节点之后

xslt 映射 -

    <DemoParent>
 <IdRef>
                <xsl:attribute name="identifier">
                  <xsl:value-of select="header/msgHeader/Number/text()" />
                </xsl:attribute>
                <xsl:attribute name="identifier">
                  <xsl:value-of select="header/msgHeader/customerNumber/text()" />
                </xsl:attribute>

              </IdRef>
              <xsl:attribute name="name">
                <xsl:value-of select="$var:v12" />
              </xsl:attribute>
              <xsl:element name="TEST">
            <xsl:copy-of select="//*[local-name()='DEMO1' and namespace-uri()='']/*[local-name()='header' and namespace-uri()='']/*[local-name()='msgHeader' and namespace-uri()='']/*[local-name()='sale' and namespace-uri()='']/*" />
     </xsl:element>
            </DemoParent>

为自定义映射添加&lt;xsl:element name="TEST"&gt;

【问题讨论】:

  • 第一个&lt;/IdRef&gt; 应该是&lt;IdRef&gt; 吗?您认为要向哪个元素添加 name 属性?如果是DemoParent,则需要将xsl:attribute移到IdRef之前。 (或者像&lt;DemoParent name="{$var:v12}"&gt;一样直接添加。)
  • 您向我们展示的代码有问题,IdRef 结束标记不能立即跟在 DemoParent 开始标记之后。
  • 另外,创建identifier 属性然后创建另一个identifier 属性有效地消除第一个属性的值似乎毫无意义。
  • 抱歉错字有正确更新
  • ` ` 为自定义映射添加

标签: xml xslt biztalk-mapper


【解决方案1】:

规则是向元素添加属性的指令必须出现在向同一元素添加子节点的指令之前/上方。 (错误消息是按照执行顺序来说话的,这是一个礼貌的虚构)。

在您编辑的帖子中,我们可以看到对于 DemoParent,创建 IdRef 子元素的指令出现在创建 name 属性的 xsl:attribute 指令上方;它需要被移动,所以属性首先出现。

【讨论】:

  • 非常感谢,但我不明白术语instructions 这里你能用更改代码sn-p 详细说明吗?谢谢
  • 我对那个评论有点困惑,因为我看不出你如何在不阅读“指令”的情况下学习编写 XSLT 代码。你是如何在没有遇到这个术语的情况下学习这门语言的?被评估以产生结果的所有 XSLT 元素都是指令:例如 xsl:element、xsl:attribute、xsl:for-each、xsl:if;但不是像 xsl:template 和 xsl:strip-space 这样的声明。
  • 我只是支持没有关于 xslt lang 的确切信息的问题之一 :( 顺便说一句,非常感谢您的解释,这很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多