Monday, June 15, 2009

A Business Data Dictionary generated from XSD Schemas

With XSD schemas becoming the {default} Enterprise Data Dictionary at most companies, keeping schemas and the Business Data Dictionary synchronized is becoming a challenge. Business people must have a friendly, visually modeled, non-technical Data Dictionary to work with.

Tools which can generate documentation from Schemas (XSDs) are: DocFlex, Stylus Studio, xnsdoc, TechWriter, DocumentX, etc. However, all of them seem targeted at Technical folks and produce technical documentation (they generate namespaces, "AttributeGroups", "SimpleTypes" and "ComplexTypes" etc.) - that is gibberish to business folks and scares then away.

We need a Business Data Dictionary that is always in synch with the XSD and is visually modelled where the SSD terminology is represented by user friendly common language terms.

In the absence of available tools to generate them from a schema, most companies use Excel to maintain the data dictionary. However the tool to model and represent a schema is a treeview, not Excel. Secondly they often get out of synch due to the manual process involved and a few mistakes later, business folks start to distrust the manually maintained Data Dictionary

The best way to do this seems to embed xs:annotation/xs:documentation/xs:appInfo directly into the XSD and then use a {configurable} style sheet to generate a formatted tree-view Help (CHM / HHX / Framed HTML) which is a visual model of the XSD. This is how we can keep the XSDs and the Data Dictionaries always in synch (and not have to update any external Data Dictionary separately which often gets out of synch in a manual process).

Amazingly, there is no purchasable tool in the market which can do this - as far as my extensive research shows (I would be glad to be proven wrong). This is the 2nd time I ran into this in my career. I have explained the issue in the following attachment and am seeking developers who are skilled with XSD and XSLT to help me out with this project and also provide some insights.