// FIXME: There is a copy of this same code in org.apache.xindice.server.xmldb.rpc.messages.Query#queryWrapper
// It should be refactored into some common place. May be, NodeSetUtil?
//
// Turn the NodeSet into a document.
DocumentImpl doc = new DocumentImpl();
Element root = doc.createElement("result");
doc.appendChild(root);
int count = 0;
while (ns != null && ns.hasMoreNodes()) {
final Object element = ns.getNextNode();
if (element instanceof Node) {
Node n = (Node) element;
if (n.getNodeType() == Node.DOCUMENT_NODE) {
n = ((Document) n).getDocumentElement();
}
if (n instanceof DBNode) {
((DBNode) n).expandSource();
}
root.appendChild(doc.importNode(n, true));
} else if (element instanceof Boolean || element instanceof Double) {
root.appendChild(doc.createTextNode(element.toString()));
} else if (element instanceof String) {
root.appendChild(doc.createTextNode((String) element));
} else {
throw new XindiceRuntimeException("Unknown result type (" + element.getClass().getName() + ") in nodeset");
}
count++;