Project

Profile

Help

Bug #4792 » func_call_with_empty_param.xquery

Anton Shchetikhin, 2020-10-08 19:44

 
declare default element namespace 'http://пф.рф/ВС/СЗВ-М/2017-01-01';
declare namespace УТ = "http://пф.рф/унифицированныеТипы/2014-01-01";
declare namespace АФ = "http://пф.рф/АФ";
declare namespace АФ3 = "http://пф.рф/АФ/2017-01-01";
declare variable $document as document-node() external;
declare function local:nodePosition($node as node()?) as node()
{

element {xs:QName("Результат")}
{
string-join(
for $ancestor in $node/ancestor-or-self::*
let $sibsOfSameName := $ancestor/preceding-sibling::*[name()=name($ancestor)]
let $followingSibling := $ancestor/following-sibling::*[name()=name($ancestor)]
return concat(name($ancestor),
if (count($sibsOfSameName) = 0 and count($followingSibling) = 0) then '' else concat('[',count($sibsOfSameName) + 1,']')),
'/'
)
}
};
declare function local:result($path as xs:string, $expected as xs:anyAtomicType, $objectName as xs:string, $objectValue as xs:anyAtomicType) as node()
{

if ($path = '0') then
element {xs:QName("Результат")}
{
$path
}
else
element {xs:QName("Результат")}
{
element {xs:QName("ПутьДоЭлемента")}
{
$path
},
element {xs:QName("ОжидаемоеЗначение")}
{
$expected
},
element {xs:QName("Объект")}
{
element {xs:QName("Наименование")}
{
$objectName
},
element {xs:QName("Значение")}
{
$objectValue
}
}
}
};
declare function local:getResult($res as item()*) as item()*
{
if (exists($res)) then $res else local:result('0','','','')
};
<БлокПроверок ID="АФ.КСФ.1" name="Проверка структуры файла">
<Проверка ID="1">
<Описание>Проверяемый файл должен быть корректно заполненным XML-документом</Описание>
<РезультатЗапроса>
{
local:getResult(())}
</РезультатЗапроса>
<КодРезультата>50</КодРезультата>
</Проверка>
</БлокПроверок>

(1-1/7)