OASIS Darwin Information Typing Architecture (DITA) TC

 View Only

Commit of Interim Generated DTDs and XSDs

  • 1.  Commit of Interim Generated DTDs and XSDs

    Posted 10-23-2014 14:02
    At Kris' request I've committed the latest DTDs and XSDs I've produced. This update reflects fixes to many of the issues Robert Anderson and Bob Thomas have identified but not all of them. The issues fixed are reflected in the Trello board https://trello.com/b/y42J0sEq/rng-to-dtd-and-xsd-conversion . The fixes include: - Restored missing unreferenced parameter entities - Use public IDs for all module references in DTDs - Use "./" in XSDs for module references that are otherwise just the filename (that this is necessary is an indicate of a bug in the processor that requires this but it's an easy fix). - Corrected @domains contributions for map domains - Corrected @domains contribution for learning assessment topic type - Added required groups for elements in task and bookmap - Corrected topic nesting entity declarations - Corrected name of strict task body entity - Eliminated idElements entity and groups from DTDs and XSDs In my tests, all the sample documents validate against the 1.2 and 1.3 DTDs. I've done careful inspection of the changes in this commit and also compared the DTDs against the exemplars. I am as confident as I can be that I have not introduced any new problem in the course of fixing the above problems. The remaining issues are either cosmetic (header comments) or with ditabase and glossary, both of which are special cases that just require me to hard-code the correct declarations in the generation process. Note that both the DTD and XSD generation processes include an extension point for overriding the base generation logic in order to handle any special cases and that extension point can be used to handle anything that would otherwise be done "by hand". That is, there should be no need to ever hand-modify the generated files to handle some special case because that special case can be handled in the overrides. There are still issues with some of the generated XSDs as indicated by my validation tests, all involving constraints or task-related topic types, which are particularly challenging to code in XSD. I had been trying to implement general handling of these cases but I think I'm at the point where they just have be handled as hard-coded overrides. I was in the process of working through the XSD issues when I diverted back to the DTD generation to address the issues Robert found. So the XSD work is still in progress. The bad XSDs at this time are: - learningContent (1.2 and 1.3), learningGroupMap, learningObjectMap: The constraint that should be setting the allowed topicref types is not generated correctly. This is a particularly challenging constraint because of the groups it has to modify. - 1.3 ditabase is not correct. I have open issues for ditabase that I will get to as soon as I can. - All the task-related topic types (general task, task, machinery task, troubleshooting) are not right. I am making the DTD and XSD generation my highest DITA 1.3 priority so we can get this stuff settled ASAP. Cheers, E. ————— Eliot Kimber, Owner Contrext, LLC http://contrext.com