private MetadataObject[] ParseObjects(XDocument file) { IEnumerable <XElement> elements = file.Root.Descendants(OBJECT_DESC); MetadataObject[] metadataObjects = new MetadataObject[elements.Count()]; // Object index. int i = 0; foreach (XElement element in elements) { metadataObjects[i] = ParseObject(elements, element); // Check for name collisions. for (int j = 0; j < i; j++) { if (metadataObjects[i].Name == metadataObjects[j].Name) { throw MetadataParserException.ObjectNameCollision(metadataObjects[i].Name); } } i++; } return(metadataObjects); }