OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Commit of Interim Generated DTDs and XSDs

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

- 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.



Eliot Kimber, Owner
Contrext, LLC

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]