By default, XSLT implements the "push" paradigm: source constructs are pushed into the stylesheet in the same order as they come in the source. However it is also capable of implementing the "pull" style, where the stylesheet controls what information from the source and in what order is processed. What you need here is a bit of pull XSLT, for example:
Then you provide separate XSLT templates for the name, age, and address elements, and these templates will get called in the order specified here, no matter what is their order in the source. These templates may be simple xsl:copy if you don't need to do any processing.