xsl:element allows defining elements whose name you don't know when writing the stylesheet and also element whose names are dynamically created. I would always use the inline definition (i.e. by hand) if possible. It is shorter and I consider it more readable.