The value for Operation, shouldn't it be "PKCS_11" ? Don't the rules for normalizing names remove # signs?
<RequestMessage>
<RequestHeader>
<ProtocolVersion>
<ProtocolVersionMajor type="Integer" value="2"/>
<ProtocolVersionMinor type="Integer" value="0"/>
</ProtocolVersion>
<ClientCorrelationValue type="TextString" value="PKCS11-M-1-20 step=0"/>
<BatchCount type="Integer" value="1"/>
</RequestHeader>
<BatchItem>
<Operation type="Enumeration" value="PKCS#11"/>
<RequestPayload>
<PKCS_11Function type="Enumeration" value="C_Initialize"/>
<PKCS_11InputParameters type="ByteString" value="01"/>
</RequestPayload>
</BatchItem>
</RequestMessage>