Исключение отображения btm - узлы атрибута и пространства имен нельзя добавить к родительскому элементу
Я имею btm mapping file
я сделал custom body mapping
как ниже, но во время transformation xslt gives below error
-
Узлы атрибута и пространства имен не могут быть добавлены к родительскому элементу после того, как узел текста, комментария, pi или узла подэлемента уже был добавлен
xslt mapping -
<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>
<xsl:element name="TEST">
добавлен для пользовательского сопоставления
1 ответ
Правило состоит в том, что инструкции, которые добавляют атрибуты к элементу, должны появляться перед / над инструкциями, которые добавляют дочерние узлы к тому же элементу. (Сообщение об ошибке говорит о порядке исполнения, что является вежливым вымыслом).
В вашем отредактированном посте мы видим, что для DemoParent инструкция по созданию дочернего элемента IdRef появляется над инструкцией xsl:attribute, которая создает атрибут name; его нужно переместить, чтобы атрибут был первым.