I'd even like to get rid of the ui:composition there and perhaps have something like "cc:component" or "cc:tag" as the wrapper.
We can also leverage the default namespace to cut out the unnecessary namespace prefixes:
<?xml version="1.0" encoding="UTF-8"?>
<component xmlns="jsf:cc">
<interface>
<attribute name="name" required="true"/>
</interface>
<implementation>
Hello, #{
cc.attr.name}
</implementation>
</component>
Notice that I'm not really changing all that much in JSF to get to this point. It's really just a shift in thinking (and recommending).