DXL: Domino XMLAugust 16th, 2008
I recently listened to the first episode of the YellowCast podcast and was reminded how powerful DXL is. I created this blog post to store my notes from listening to this podcast and to provide others with links to all the useful info that the YellowCast hosts Chris Toohey and Tim Tripcony shared during the podcast.
DXL is XML for Lotus Notes and Domino and is the XML representation of Notes/Domino data and design. DXL uses a Notes/Domino specific DTD located in the xmlschemas directory of the Notes client. Although powerful DXL is not entirely complete yet and has issues with roundtrip fidelity (export followed by import can lead to missing design elements).
So what can we do with DXL according to Chris and Tim:
- You can actually write code for writing code! Chris gives an example of an agent that exports itself, rewrites the exported XML and then imports itself and thereby modifying it's own code. It is not easy to imagine the usefulness of this but it sure shows how powerful DXL is.
- You can add code from outside of your application in order to add new features. For example you can install OpenLog to an existing database using DXL. So you could skip error handling while developing and then install ipenlog before user acceptance test.
- You can download image resources via DXL.
- You can work with documents in a corrupted database by exporting the documents using DXL.
- You can export design elements and process the XML outside of Lotus Notes in order to do e.g. search and replace across design elements (similar to what you can do with Teamstudio Configurator).
To get started with your first "Hello World" example in DXL create a simple agent in Domino Designer and view the agent as exported DXL using Tools - DXL Utilities - Viewer. Then try to do a real export, modify the exported XML and then try a real import of the XML. Check the Domino Designer Help for the NotesXMLProcessor Lotusscript class and its derived classes for information on how to do this.
Using the NotesXSLTransformer Lotusscript class you can use XSLT to convert the DXL into anything as the hosts phrase it.
Chris and Tim also mentions a lot of examples of using DXL that are available out there on the Internet:
Check out the show notes of YellowCast episode 1 for more links.