Here's how the formal XML syntax would look (with our new URN namespaces
;))
<?xml version="1.0" encoding="UTF-8"?>
<f:view xmlns:f="jsf:core" xmlns:h="jsf:html"
omitXmlDeclaration="true">
<h:doctype lang="xhtml" type="strict"/>
<h:html>
<h:head>
</h:head>
<h:body>
<h1>Hello World!</h1>
</h:body>
</h:html>
</f:view>
And we should be writing composite components like this:
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns:ui="jsf:facelets" xmlns:cc="jsf:cc">
<cc:interface>
<cc:attribute name="name" required="true"/>
</cc:interface>
<cc:implementation>
Hello, #{cc.attr.name}
</cc:implementation>
</ui:composition>
The point being, no need for all the HTML wrapper garbage.
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).
-Dan
--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597
http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://www.google.com/profiles/dan.j.allen