As for the second part of the question, the answer is no, you don't
have to create template for every child.
First, if you want sub-tree to appear in the target document
without any changes you can use copy-of. Second, when using apply-templates you can specify xpath which will match multiple nodes.
For example :
<xsl:apply-templates select="*"/> will apply templates to all child elements of the current node
<xsl:apply-templates select="@*"/> will apply templates to all attributes of the current node
<xsl:apply-templates select="descendant::*"/> will apply templates not only to direct children but for all descendant elements of the current element