есть такой метод проверки наличия обязательных данных в XML

Код AS3:
public static function checkXMLFormat(node:XML, ...props):Boolean
{
var p:String;
var res:Boolean = true;
for (p in props)
{
res &&= node.hasOwnProperty(props[p]);
}
return res
}
сначала вызываю:

Код AS3:
// прерываем с ошибкой, если нет блока <settings>
if (!checkXMLFormat(xml, "settings")) return false
затем:

Код AS3:
// прерываем с ошибкой, если заданы не все параметры
if (!checkXMLFormat(xml.settings, "bookid", "pagewidth", "pageheight")) return false
xml.settings уже не XML, а XMLList и вызывает ошибку.
пока решил так: в параметрах метода переписываю на
node:Object и в первой же строке
XML(node);
работает чьодко, но это как-то через... неправильно наверное. может есть более элегантное решение?
хотя решил все сделать жошще, но геморней: все остается как есть, но при каждом вызове, если нужно, делаю приведение XML(...)
а то предыдущий вариант диравый какой-то.