Iterator<NamePart> iter = def.getNameList().iterator();
for (PathSegment p = path.getRootSegment();; p = p.getChild()) {
if(p == null) break;
if (!iter.hasNext()) return false;
NamePart n = iter.next();
if (p.isArray()) {
if (n.getType() == Type.ARRAY) continue;
return false;
} else {
if (p.getNameSegment().getPath().equals(n.getName())) continue;
return false;
}
}
// we've reviewed all path segments. confirm that we don't have any extra name parts.