code: @Override
  	protected Object deserialize(InvocationContext context, HttpResponse response) {
  		
  		if(unavailable || incompatible) {
  			
  			throw new IllegalStateException(unavailable? ERROR_CONTEXT_UNAVAILABLE :ERROR_CONTEXT_INCOMPATIBLE);
  		}
  		
  		try {
  			
  			HttpEntity entity = response.getEntity();
  			
  			return entity == null? null :Persister_read.invoke(persister, 
  					context.getRequest().getGenericReturnType(), EntityUtils.toString(entity));
  		} 
  		catch(Exception e) {
  			
  			throw new DeserializerException(new StringBuilder("XML deserialization failed for request <")
  			.append(context.getRequest().getName())
  			.append("> on endpoint <")
  			.append(context.getEndpoint().getName())
  			.append(">").toString(), e);
  		}
  	}
docs: <p>Deserializes the XML content returned by the {@link HttpResponse} entity using <b>Simple-XML</b>
  into the model specified on the endpoint definition.</p>
  
  <p>See {@link AbstractDeserializer#deserialize(InvocationContext, HttpResponse)}.
  
  @param context
  the {@link InvocationContext} with information on the the proxy invocation
  <br><br>
  @param response
  the {@link HttpResponse} which contains the XML content to be deserialized to a model
  <br><br>
  @return the model which was deserialized from the XML response content, else {@code null} if the
  given {@link HttpResponse} did not contain an {@link HttpEntity}
  <br><br>
  @throws IllegalStateException
  if the <b>Simple-XML library</b> was not found on the classpath or if an incompatible
  version of the library is being used
  <br><br>
  @throws DeserializerException
  if XML deserialization failed for the given entity using the Simple-XML library
  <br><br>
  @since 1.3.0