There’s been some discussion recently about a new HTMl facility that provides reusable content: stuff that can appear in a Web page multiple times. It’s a facility similar to XInclude in some ways, except more limited in scope.
Similarly, if you use XPath or XSLT in the browser, the template element’s contents will be invisible.
The question was asked, is this OK for XML?
The answer, of course, is yes, it’s perfectly fine. The application can construct a data model from XML in any way it likes. XPath and XSLT in the browser operate on the DOM tree, so if something isn’t in the DOm they won’t see it.
Outside of a Web browser, template is just a normal element and XML systems have no reason to treat it specially. This is actually what you need, so that you can search for templates on your Web server.