XSLT de transformation de la chaîne de format datetime

Je suis en train de convertir une date/heure qui est dans un format de chaîne de format datetime. Actuellement j'ai ceci mais ça ne fonctionne pas:

<xsl:function name="hcim:ParseDateTime" as="xs:dateTime">
    <xsl:param name="DateTimeAsString" as="xs:string"/>

    <xsl:variable name="date" select="xs:date(substring($DateTimeAsString, 0, 10))"/>
    <xsl:variable name="time" select="xs:time(substring($DateTimeAsString, 11, 8))"/>
    <xsl:value-of select="dateTime($date, $time)" />
</xsl:function>

L'erreur que j'obtiens est:

XSLT2 Transformation failed: Error in XPath 2.0 expression 
    (Cast failed, invalid lexical value - xs:date 'String' - xs:date)
Error occurred in file '******' in statement 
    'select="xs:date(substring($DateTimeAsString, 0, 10))"'.

Est-il une meilleure façon de le faire? Mon entrants chaîne est dans le format:

2011-07-15 01:05:14 PM
InformationsquelleAutor farbodg | 2013-08-08