The changes from the DDI 3.2 public review have been entered into the source repository, and the final review of the changes is now taking place. A main focus on version 3.2 is consistency and usability, and the Technical Committee came up with a list of design and content guidelines to ensure this. This focus on consistency should allow users and developers to more quickly adopt DDI Lifecycle since all the content areas should now be programmatically usable in the same ways.
Check out an example report on the current DDI 3.2 development schemas
During our review of 3.2, we have created a tool to point out items in the DDI schema set that do not conform with these consistency guidelines. The tool analyses the schemas and creates an html report of items that should be addressed before release. It currently performs the following checks.
- Validate schema set is DDI Lifecycle.
- Check compilation of the schema as an XML Schema Set.
- Versionables and Maintainables allowing inline or reference usage.
- Versionables and Maintainables are in a xs:Choice.
- Versionables and Maintainables in a xs:Choice contain two elements.
- Versionables and Maintainables in a xs:Choice contain a xxxReference.
- FragmentInstance contains all Versionables and Maintainables.
- Type of Object for references
- Duplicate Element names detected for referenceable types.
- Element names detected without a TypeOfObject defined.
- Spell checking
- Element names
- Attribute names
- XSD annotations/documentation
- Breaking apart CamelCasedWords
- Allows words to be added to dictionary
- Uses en-US
- Highlighting of misspellings in generated reports.
In addition to checking the structures in the schema, the tool also does a spell checking of all elements, attributes, and inline documentation to make sure that the released DDI has a professional feel. You can see an example report on the current DDI 3.2 schemas progress towards the consistency goals!
We have licensed the tool as Open Source under the LGPL and the code is available for download and forking on GitHub at https://github.com/DanSmith/DDISchemaCheck/.
There is also a release of the compiled tool on the releases page. Please email the DDI users list, send a tweet, or send us pull requests with any additional tests that you would like to see incorporated.