body.appendChild(e);
e.appendChild(document.importNode(nodes.item(j), true));
}
}
} else {
DocumentFragment frag = document.createDocumentFragment();
Element e = null;
for (int i = 0; i < nodes.getLength(); i++) {
Node n = nodes.item(i);
if (n instanceof Element) {
if (e != null) {
throw new Fault("Header part '" + part.getName() + "' contains more than one element; expected a single element.");
} else {
e = (Element) n;
}
}
}
if (e == null) {
throw new Fault("Header part '" + part.getName() + "' contains no element; expected a single element.");
}
QName headerName = part.getElement();
if (!headerName.equals(DomUtil.getQName(e))) {
throw new Fault("Header part '" + part.getName() + "' element '" + DomUtil.getQName(e) + " doesn't match expected element '" + QNameUtil.toString(headerName) + "'");
}
for (int j=0; j<nodes.getLength(); j++) {
frag.appendChild(document.importNode(nodes.item(j), true));
}
message.getSoapHeaders().put(headerName, frag);
}
}
message.setContent(Source.class, new DOMSource(document));