On 2007-09-28, at 20:43 EDT, Henry Minsky wrote:


* Does this mean we don't ever need to build the dtd again -- and we
can finally get rid of the need for python anywhere in our build
process?



We need to generate the DTD some other way, but I think  we
have all the information needed "in-core" in the in the compiler, now that it has this simple model of which tags can be allowed as children of other
tags, so  I  think
I can hack up something pretty easily which will walk that and generate a
DTD.

This would actually be a gigantic improvement, as we have not generated a correct DTD since the 2.x era. Oliver somehow generated a DTD that included the components and we lost the recipe for that. It would be fantastic if you could address that issue as a part of this. See:

http://jira.openlaszlo.org/jira/browse/LPP-3179
http://jira.openlaszlo.org/jira/browse/LPP-2300

We should also respect/enforce a dtd/namespace declaration, e.g., if an LZX app declares that it uses the 3.x dtd, we should refuse to compile it in 4.x, so the developer knows they have some work to do to update their app. Currently, we just default to whatever the compiler believes the dtd to be.

* How does this affect the doc process? We will have to work this one
through in person, I imagine.



Yeah, I have only a vague concept of how the doc tools process the lzx.rnc file now (or do they process the lzx.rng file?). So we'll have to have a
pow-wow about that.  I carefully copied all the comments from the
lzx.rncfile over to the new
lfc.lzx file, so we can hopefully extract them in some analogous manner to
what is being done now.

A simple fix here is to simply provide an empty .rng file. The right fix is to excise the part of the tool that tries to grovel the .rng file and merge it with the rest of the documentation. This should be a huge improvement, as the .rng file could not convey inheritance -- the doc tools have to infer inheritance in the .rng file using a really kludgey heuristic.

Reply via email to