DatabaseGroupNode nextNode = null;
for (int iNode = 0; iNode < nodes.size(); iNode++) {
DatabaseGroupNode childNode = (DatabaseGroupNode)nodes.get(iNode);
if (versionParameter.matches(childNode)) {
int matches = 0;
DatabaseElementList valueNodes = childNode.find(rule.value().path().substring(childNode.schema().path().length() + 1));
for (int iValueNode = 0; iValueNode < valueNodes.size(); iValueNode++) {
DatabaseAttributeNode attributeNode = (DatabaseAttributeNode)valueNodes.get(iValueNode);
for (int iAttrValue = 0; iAttrValue < attributeNode.value().size(); iAttrValue++) {
DatabaseTextNode textNode = attributeNode.value().get(iAttrValue);
if ((versionParameter.matches(textNode)) && (textNode.value().equals(keyValue))) {