}
public NodeImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
// Read an <implementation.node> element
NodeImplementation implementation = implementationFactory.createNodeImplementation();
implementation.setUnresolved(false);
// Read the composite attribute
QName qname = getQName(reader, "composite");
if (qname != null) {
Composite composite = assemblyFactory.createComposite();
composite.setName(qname);
String uri = getString(reader, "uri");
composite.setURI(uri);
composite.setUnresolved(true);
implementation.setComposite(composite);
}
// Skip to end element
while (reader.hasNext()) {
if (reader.next() == END_ELEMENT && IMPLEMENTATION_NODE.equals(reader.getName())) {