Mercurial > hg > mpdl-group
diff software/eXist/webapp/mpdl/text/all.xql @ 9:1ec29fdd0db8
neue .lex Dateien f?r Normalisierung / externe Objekte update
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 22 Feb 2011 16:03:45 +0100 |
parents | 5589d865af7a |
children | d6f528ad5d96 |
line wrap: on
line diff
--- a/software/eXist/webapp/mpdl/text/all.xql Thu Feb 10 14:02:05 2011 +0100 +++ b/software/eXist/webapp/mpdl/text/all.xql Tue Feb 22 16:03:45 2011 +0100 @@ -35,69 +35,6 @@ } }; -declare function mpdl-text:insert($fragment as element(), $externalObjects as element()*) { - let $firstObject := $externalObjects[1] - let $xmlNodeId := $firstObject/@xmlNodeId - let $posNode := $fragment//*[@xmlNodeId = $xmlNodeId] - let $before := $firstObject/@before - let $boolBefore := - if ($before = "true") - then true() - else false() - let $charPosStr := $firstObject/@charPos - let $charPos := - if($charPosStr != "" and not(empty($charPosStr))) - then number($charPosStr) - else -1 - let $newNode := $firstObject/content - let $size := count($externalObjects) - let $otherObjects := - if ($size > 1) - then subsequence($externalObjects, 2, $size) - else () - let $insertedFragment := mpdl-text:insert($fragment, $posNode, $boolBefore, $charPos, $newNode) - let $result := - if ($size >= 1) - then - mpdl-text:insert($insertedFragment, $otherObjects) - else - $fragment - return $result -}; - -declare function mpdl-text:insert($element as element(), $node, $before, $charPos, $newNode) { - if ($element = $node and $before and $charPos = -1) - then - ($newNode, - element {node-name($node)} - {$node/@*, - for $child in $node/node() - return if ($child instance of element()) - then mpdl-text:insert($child, $node, $before, $charPos, $newNode) - else $child - }) - else if ($element = $node and not($before) and $charPos = -1) - then - (element {node-name($node)} - {$node/@*, - for $child in $node/node() - return if ($child instance of element()) - then mpdl-text:insert($child, $node, $before, $charPos, $newNode) - else $child - }, $newNode) - else if ($element = $node and $charPos >= 0) - then - util:parse(mpdltext:insertAtCharPos(util:serialize($node, ()), util:serialize($newNode, ()), $charPos)) - else - element {node-name($element)} - {$element/@*, - for $child in $element/node() - return if ($child instance of element()) - then mpdl-text:insert($child, $node, $before, $charPos, $newNode) - else $child - } -}; - declare function mpdl-text:indexTerms($mpdlCollectionName, $language, $document, $indexTermsStartStr, $pn as xs:int, $pageSize as xs:int) as node()* { let $index := if ($mpdlCollectionName = 'archimedes')