Domino’s lack of valid XHTML output
Today I decided to give XPages a try. Being a Domino developer, I’ve been creating web sites in Domino like they’ve been done for a long time. I have a view containing some documents that are available on the web, even went to the extent of making some design changes recently and some server configuration changes so that I could have SEO friendly URLs and hide all the Domino URL bloat. All of which was pretty easy. My biggest pain with developing web sites on the Domino platform is the pain of making Domino output valid XHTML, which if you’re a Domino developer, you know isn’t that easy of a task.
So far my biggest helpers have been the $$HTMLFrontMatter field for setting the page’s DTD, I use XHTML Strict. The other field I use is $$HTMLTagAttributes for adding XHTML namespace and page language which you need if you want W3′s validator to pass. Although after all of this, you still have things like the Body tag having a text and bgcolor attribute which aren’t compatible with XHTML Strict and there doesn’t seem to be much in terms of removing those. That and there’s the RichTextField that produces loose HTML. I got around that with the &OutputFormat=xhtml URL parameter, thanks to lekkimworld.com for that one. After all of that I decided to give XPages a try.
On to XPages
XPages uses JSF technology, so I figure there’s probably a better chance of having valid XHTML output. I’m no expert on XPages, in fact today was the first time I even looked at them. After looking around for some introductions, I found XPages Framework on OpenNTF.org. After I downloaded the template and copied it to my server, I created a new database from it. Running Lotus Notes 8.5.1, it launched the designated XPage in the client without a problem. Tried it next in the browser, and….. Do not pass Go, Do not collect $200….. I got a an unexpected runtime error.
javax.faces.FacesException: The generated page version 8.5 is not compatible with the server version 3.0, for the page /ccSearch.xsp.
Turns out, the template was designed for Domino 8.5.1. My Notes client is 8.5.1, but my server, well that’s a mere 8.5. So time to upgrade my Domino server.