(: file: list_inconsistent_metadata_1var.xq date: 27-August-2010 author: Gary Lewis purpose: Lists all metadata for a specified variable that is inconsistent with the code values and labels for that variable in a specified base year. usage: Run from path where program is located. example: zorba -e var:="control" -e base:="2008" -f -q list_inconsistent_metadata_1var.xq -o list_inconsistent_metadata_control.xml -z indent=yes :) declare variable $var external; declare variable $base external; { let $k := doc("../xml/metadata/ipedsVars_metadata_codes.xml")/variables/var[@name = $var][@year = $base]/code, $base_values := $k/@value for $i in doc("../xml/metadata/ipedsVars_metadata_codes.xml")/variables/var[@name = $var] let $year := $i/@year order by $year descending return { for $j in $i/code let $value := $j/@value, $label := $j/@label, $base_value := if ($value = $base_values) then $value else "", $base_label := if ($base_value eq "") then "" else $k[@value = $value]/@label where $base_label eq "" or $base_label != $label return } }