Не, что касается не рыбы, а верификации вообще, то надо сделать проверку, чтобы все элементы в листе имели однородную структуру, т.е. имели один и тот же тип (имя) (мы его не знаем и не должны знать, но в примере это item ), и одинаковый набор атрибутов (одинаковое кол-во и имена) - опять же без какой-либо конкретики,типа id и name, - просто однородность структуры данных должна быть.
Детей рассматривать не надо, т.к. это уже не имеет отношения конкретно к рассматриваемым нами данным. Вот с этой точки зрения, чтобы проверить однородность xml-листа, надо сравнить рыбы от всех его элементов, т.е. сравнить с рыбой первого элемента рыбы всех остальных.
Добавлено через 3 минуты
вот мое кондовое решение))) и рыба не в одну строчку))))

Код AS3:
private function checkDataProviderStructure (dataProvider:XMLList):Boolean
{
var xmlList:XMLList = new XMLList(dataProvider);
var fishStr:String = getXMLFish(xmlList[0]).toXMLString( );
for each (var xml:XML in xmlList)
{
if (getXMLFish(xml).toXMLString( ) != fishStr) return false;
}
return true;
}
private function getXMLFish (xml:XML):XML
{
var fish:XML = new XML(xml);
for (var i:uint = fish.@ * .length( ); i--; )
{
fish.@ * [i] = "";
}
return fish;
}
нигде по конкретным именам не обращаюсь))