Número de relleno con ceros a la izquierda en XSLT 1.0

Tenemos un número en XML que puede ir hasta 3 dígitos en un archivo XML grande que debe convertirse a texto de longitud fija para cargarlo en otro sistema.

Necesito rellenar esto con ceros iniciales a una longitud de 15 en la salida (que es texto de longitud fija)

Ejemplos:

 - 1 becomes   000000000000001
 - 11 becomes  000000000000011
 - 250 becomes 000000000000250

Intenté esto:

<xsl:value-of select="substring(concat('000000000000000', msg:BankAccount/msg:Counter), 12, 15)"/>

para obtener los 15 ceros al principio y tomar la subcadena, pero debo haber cometido un error con la subcadena porque en los resultados obtengo

0000000000000000000000009LLOYDS BANK PLC
00000000000000000000000010LLOYDS BANK PLC

También intentéformat-number pero yo devuelve NaN

<xsl:value-of select="format-number(msg:BankAccount/msg:Counter, '000000000000000')"/>

devuelve 'NaN'

Entonces, ¿qué he hecho mal y cuál es la mejor manera de hacerlo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta