} else {
// otherwise, we need to insert the node at the correct
// position in document order. This code does an insertion sort:
// not ideal for performance, but it's very unusual to have more than
// one key definition for a key.
LocalOrderComparer comparer = LocalOrderComparer.getInstance();
boolean found = false;
for (int i=0; i<nodes.size(); i++) {
int d = comparer.compare(curr, nodes.get(i));
if (d<=0) {
if (d==0) {
// node already in list; do nothing
} else {
// add the node at this position