import schema namespace ipo="http://www.example.com/IPO"; | |
import schema namespace pst="http://www.example.com/postals"; | |
import schema namespace zips="http://www.example.com/zips"; | |
import module namespace zok="http://www.example.com/xq/zips"; | |
import module namespace pok="http://www.example.com/xq/postals"; | |
(: insert-start :) | |
declare variable $input-context external; | |
(: insert-end :) | |
declare function local:address-ok($a as element(*, ipo:Address)) | |
as xs:boolean | |
{ | |
typeswitch ($a) | |
case $zip as element(*, ipo:USAddress) | |
return zok:zip-ok($zip) | |
case $postal as element(*, ipo:UKAddress ) | |
return pok:postal-ok($postal) | |
default return false() | |
}; | |
for $p in $input-context//element(ipo:purchaseOrder) | |
where not( local:address-ok($p/shipTo) and local:address-ok($p/billTo)) | |
return $p |