<p>The built-in <code>PHP</code> extension for <code>SOAP</code> doesn't validate everything in the incoming <code>SOAP</code> request against the <code>XML Schema</code> in the <code>WSDL</code>. It does check for the existence of basic entities, but when you have something complicated like <code>simpleType</code> restrictions the extension pretty much ignores their existence.</p>

<p>What is the best way to validate the <code>SOAP</code> request against <code>XML Schema</code> contained in the <code>WSDL</code>?</p>

Typically one doesn't validate against the WSDL.  If the WSDL is designed properly there should be an underlying xml schema (XSD) to validate the body of the request against.  Your XML parser should be able to do this.
The rest is up to how you implement the web service and which SOAP engine you are using.  I am not directly familiar with the PHP engine.  For WSDL/interface level "validation" I usually do something like this:
Does the body of the request match a known request type and is it valid (by XSD)?
Does the message make sense in this context and can i map it to an operation/handler?
If so, start processing it
Otherwise: error