Domino XML: Is Domino still around?
When you are talking about portals, you will find it hard to steer clear of the topic of XML. Whether it is plain old XML/RPC calls or SOAP, a well architected portal will rely heavily on applications hosting there own logic and exposing this logic with XML. I recently have been working with IBM/Lotus Domino XML, otherwise known as DXL.
DXL is the representation of Domino design and data elements in XML format. Now I have used Domino’s default XML rendering methods like “ReadViewEntries” and “ReadDesign” and they are extremely useful, but I just had a requirement that needed a much higher level of interaction with a backend Domino system.
By using Lotus’ DXLExporter and DXLImporter functions, all facets of the Domino application can be exposed for the XML consumer. One of the biggest drawbacks to using the ReadViewEntries method is that a view cannot serve up Rich Text or binary attachments. By accessing a Notes document directly via the DXL format, I can have the rich text rendered in a very readable and translatable format.
Basically, a bunch of XML/XSL/J2EE gurus who all thought “Notes is dead” / “Notes is all proprietary” / “Notes is a standalone platform” all got a nice hunk of humble pie when the total development time to deliver the XML for the portal app was less than 16 hours.
Working with DXL also forced me into a crash course on namespaces and how they effect XSL transformations. In the code snippet below, you can see how the DXL objects need to be preceded by the “dxl” prefix. This happens because we are using multiple namespaces in one XSL file and this is how parsers keep track of methods with the same name.
<xsl:value-of select=”/dxl:document/dxl:item[@name=’Category’]/dxl:text” />
IBM’s developerWorks has a very good article on DXL and includes some samples that will almost immediately add value if you need to use DXL.