for (int j = i; j < nodes.length; j++) {
if (nodes[j].nodeType == XMLStreamReader.END_ELEMENT &&
nodes[j].nodeId.equals(nodeId)) {
isClosed = true;
NodeProxy proxy = new NodeProxy(otherDoc, nodes[i].nodeId);
Serializer serializer = broker.getSerializer();
serializer.reset();
serializer.setProperty(Serializer.GENERATE_DOC_EVENTS, "false");
serializer.setReceiver(handler);
serializer.toReceiver(proxy, false);
i = j;
break;
}
}
if (!isClosed) {
attribs = new AttrList();
if (nodes[i].qname.needsNamespaceDecl())
attribs.addAttribute(ATTR_NAMESPACE, nodes[i].qname.getNamespaceURI());
attribs.addAttribute(ATTR_NAME, nodes[i].qname.getStringValue());
handler.startElement(ELEMENT_START, attribs);
handler.endElement(ELEMENT_START);
}
break;
case XMLStreamReader.END_ELEMENT:
attribs = new AttrList();
if (nodes[i].qname.needsNamespaceDecl())
attribs.addAttribute(ATTR_NAMESPACE, nodes[i].qname.getNamespaceURI());
attribs.addAttribute(ATTR_NAME, nodes[i].qname.getStringValue());
handler.startElement(ELEMENT_END, attribs);
handler.endElement(ELEMENT_END);
break;
case XMLStreamReader.COMMENT:
attribs = new AttrList();
handler.startElement(ELEMENT_COMMENT, attribs);
handler.characters(nodes[i].value);
handler.endElement(ELEMENT_COMMENT);
break;
default:
NodeProxy proxy = new NodeProxy(otherDoc, nodes[i].nodeId);
Serializer serializer = broker.getSerializer();
serializer.reset();
serializer.setProperty(Serializer.GENERATE_DOC_EVENTS, "false");
serializer.setReceiver(handler);
serializer.toReceiver(proxy, false);
break;
}
}
}