comparison software/eXist/webapp/mpdl/presentation/insertExternalElements.xsl @ 15:e99964f390e4

diverse Fehlerbehebungen
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Mon, 29 Aug 2011 17:40:19 +0200
parents 469d927b9ca7
children 7e883ce72fec
comparison
equal deleted inserted replaced
14:5df60f24e997 15:e99964f390e4
82 82
83 <xsl:template match="element()"> 83 <xsl:template match="element()">
84 <xsl:variable name="elemXmlNodeIdTmp" select="saxon:path(.)"/> 84 <xsl:variable name="elemXmlNodeIdTmp" select="saxon:path(.)"/>
85 <xsl:variable name="elemXmlNodeId" select="concat('/', substring-after(substring-after(substring-after($elemXmlNodeIdTmp, '/'), '/'), '/'))"/> 85 <xsl:variable name="elemXmlNodeId" select="concat('/', substring-after(substring-after(substring-after($elemXmlNodeIdTmp, '/'), '/'), '/'))"/>
86 <xsl:variable name="extElemXmlNodeIds" select="$externalElements//@xmlNodeId"/> 86 <xsl:variable name="extElemXmlNodeIds" select="$externalElements//@xmlNodeId"/>
87 <!-- Bug: if there are more than one external node at the same position, index-of delivers an error: ToDo: handle more than one external nodes at one position -->
87 <xsl:variable name="extElemIndex" select="index-of($extElemXmlNodeIds, $elemXmlNodeId)"/> 88 <xsl:variable name="extElemIndex" select="index-of($extElemXmlNodeIds, $elemXmlNodeId)"/>
88 <xsl:variable name="extElem" select="$externalElements/*[$extElemIndex]"/> 89 <xsl:variable name="extElem" select="$externalElements/*[$extElemIndex]"/>
89 <xsl:variable name="extElemContent" select="$extElem/content/*[1]"/> 90 <xsl:variable name="extElemContent" select="$extElem/*[1]"/>
90 <xsl:variable name="extElemXPointer" select="$extElem/@xpointer"/> 91 <xsl:variable name="extElemXPointer" select="$extElem/@xpointer"/>
91 <xsl:variable name="extElemXPointerPoint" select="substring-before(substring-after($extElemXPointer, '/point('), ')')"/> 92 <xsl:variable name="extElemXPointerPoint" select="substring-before(substring-after($extElemXPointer, '/point('), ')')"/>
92 <xsl:variable name="extElemXPointerPointInt"> 93 <xsl:variable name="extElemXPointerPointInt">
93 <xsl:choose> 94 <xsl:choose>
94 <xsl:when test="$extElemXPointerPoint != '.0' and $extElemXPointerPoint != '.1' and $extElemXPointerPoint != ''"> 95 <xsl:when test="$extElemXPointerPoint != '.0' and $extElemXPointerPoint != '.1' and $extElemXPointerPoint != ''">
138 </xsl:variable> 139 </xsl:variable>
139 <xsl:if test="$extElemXPointerPoint = '.0'"> 140 <xsl:if test="$extElemXPointerPoint = '.0'">
140 <xsl:sequence select="$extElemContent"/> 141 <xsl:sequence select="$extElemContent"/>
141 </xsl:if> 142 </xsl:if>
142 <xsl:if test="$extElemXPointerPointInt &gt;= 0"> 143 <xsl:if test="$extElemXPointerPointInt &gt;= 0">
143 <xsl:variable name="extElemContent" select="$extElem/content/*[1]"/> 144 <xsl:variable name="extElemContent" select="$extElem/*[1]"/>
144 <xsl:variable name="extElemContentSerialized" select="saxon:serialize($extElemContent, 'myXml')"/> 145 <xsl:variable name="extElemContentSerialized" select="saxon:serialize($extElemContent, 'myXml')"/>
145 <xsl:variable name="elemSerialized" select="saxon:serialize(., 'myXml')"/> 146 <xsl:variable name="elemSerialized" select="saxon:serialize(., 'myXml')"/>
146 <xsl:variable name="insertedElemSerialized" select="mpdlxmlutil:insertAtCharPos(mpdlxmlutil:new(), $elemSerialized, string($extElemXPointerPointInt), $extElemContentSerialized)"/> 147 <xsl:variable name="insertedElemSerialized" select="mpdlxmlutil:insertAtCharPos(mpdlxmlutil:new(), $elemSerialized, string($extElemXPointerPointInt), $extElemContentSerialized)"/>
147 <xsl:variable name="insertedElemDeSerializedTmp" select="saxon:parse($insertedElemSerialized)"/> 148 <xsl:variable name="insertedElemDeSerializedTmp" select="saxon:parse($insertedElemSerialized)"/>
148 <xsl:variable name="insertedElemDeSerialized"> 149 <xsl:variable name="insertedElemDeSerialized">