code: @Override
  	protected String serialize(InvocationContext context, Object input) {
  		
  		if(unavailable || incompatible) {
  			
  			throw new IllegalStateException(unavailable? ERROR_CONTEXT_UNAVAILABLE :ERROR_CONTEXT_INCOMPATIBLE);
  		}
  		
  		if(input == null) {
  			
  			return null;
  		}
  		
  		try {
  			
  			ByteArrayOutputStream baos = new ByteArrayOutputStream();
  			Persister_write.invoke(persister, input, baos);
  			
  			return baos.toString();
  		} 
  		catch (Exception e) {
  			
  			throw new SerializerException(new StringBuilder("XML serialization failed for request <")
  			.append(context.getRequest().getName())
  			.append("> on endpoint <")
  			.append(context.getEndpoint().getName())
  			.append(">").toString(), e);
  		}
  	}
docs: <p>Serializes the given model using <b>Simple-XML</b> and returns the resulting XML {@link String}.</p>
  
  <p>See {@link AbstractSerializer#serialize(InvocationContext, Object)}.</p>
  
  @param input
  the input model to be serialized into an XML {@link String}
  <br><br>
  @param context
  the {@link InvocationContext} which is used to discover further information regarding
  the proxy invocation
  <br><br>
  @return the XML {@link String} which represents the provided input model, else {@code null} if the
  provided input was {@code null}
  <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 SerializerException
  if JSON serialization failed for the given entity using the Simple-XML library
  <br><br>
  @since 1.3.0