if (block instanceof SOAPEnvelopeBlock) {
return new MessageImpl((SOAPEnvelope)block.getBusinessObject(true), protocol);
} else if (block instanceof DataSourceBlock) {
return createFrom(block.getOMElement(), protocol);
} else if (block instanceof OMBlock){
OMBlock omblock = (OMBlock)block;
return new MessageImpl((OMElement)omblock.getBusinessObject(true), protocol);
}
return createFrom(block.getXMLStreamReader(true), protocol);
}