diff --git a/lib/src/sparql/xml_results.rs b/lib/src/sparql/xml_results.rs index adfea61a..6d1e3091 100644 --- a/lib/src/sparql/xml_results.rs +++ b/lib/src/sparql/xml_results.rs @@ -542,7 +542,13 @@ impl ResultsIterator { State::Result => return Ok(Some(new_bindings)), State::Binding => { if let Some(var) = ¤t_var { - new_bindings[self.mapping[var]] = term.take() + if let Some(var) = self.mapping.get(var) { + new_bindings[*var] = term.take() + } else { + return Err( + invalid_data_error(format!("The variable '{}' is used in a binding but not declared in the variables list", self.reader.decode(&var).map_err(map_xml_error)?)).into() + ); + } } else { return Err( invalid_data_error("No name found for tag").into()