private ObjectLabel[] getLabels(Element relElement, Relation relation, TypeHierarchy types) throws FusionTypeCheckException {
NodeList nodes = relElement.getElementsByTagName("Object");
String[] relTypes = relation.getFullyQualifiedTypes();
if (relTypes.length != nodes.getLength())
throw new FusionTypeCheckException(relation, relTypes.length, nodes.getLength());
ObjectLabel[] labels = new ObjectLabel[relTypes.length];
for (int ndx = 0; ndx < nodes.getLength(); ndx++) {
Element node = (Element) nodes.item(ndx);
String name = node.getAttribute("name");
String type = node.getAttribute("type");
labels[ndx] = createLabel(name, type);
if (!(types.isSubtypeCompatible(type, relTypes[ndx])))
throw new FusionTypeCheckException(relation, ndx, type, name);
}
return labels;
}