On 15-08-30 10:57 AM, Lou Burnard wrote:
On 30/08/15 18:50, Martin Holmes wrote:
Are you suggesting that we post-process p5.xml to introduce <sequence> elements round every <classRef> and then use that version to drive dtd generation? and then throw it away? I believe that sounds like what Baldrick would call a very Cunning Plan, but the devil is in the details...
That's exactly what I mean. If we know what needs to be inserted where (which I'm not sure we do, exactly, yet, but it could be completely figured out presumably), then we can just make a bastardized p5.xml, use it, and throw it away without anyone ever knowing.
Cunning as a sackful of ferrets, indeed. Of course, if you have an ODD which mentions <classRefs> and it doesn't know about the necessary bastardization procedure, it won't generate valid DTDs any more, but presumably we don't care about that?
Actually, since the ODD doesn't generate DTDs on its own (it needs an ODD processor), and the bug we're dealing with here is actually in our own ODD processor--at least, that's how I see it--then we're just providing a hack for our ODD processor which avoids the horrible prospect of any of us going into the bowels of the XSLT and figuring out how on earth it could be made sensitive to these specific contexts and process them in a special manner without screwing up other stuff. An entirely separate ODD processor, should there ever be one, would presumably be able to handle this without resorting to a trick. We really do need to understand our ODD processing much better and be able to deal with this sort of stuff when it crops up in other outputs, but I think that would be a bit of a waste of our precious time with the DTD target. We have so much else on our plate right now. Cheers, Martin