Community
Participate
Working Groups
The current implementation of VEX uses the dtdparser120 project for parsing the DTD. We should migrate away and leverage the Xerces DTD API for parsing as it's been approved for reuse in eclipse projects.
I'll see what is involved to get this migrated to Xerce's DTD parser...eventually we should migrate to using the WTP Content Model instead of the Xerces parser, but this will be after merging DOM migration work is done.
This will depend on bug 250829 being completed. It will be easier to just use the Content model proved by WTP instead of trying to implement Xerces's internal model. There are too many hoops to have to jump through to get to the information. The other advantage is that this will not make it DTD depedent as the Content Model handles a generic XML grammar. So you can use Schema or DTD.
Replaced DTDParser with WTP Content Model calls. Working on getting final unit tests to pass. This will take the DTD specified and load up the VEX DTDValidator class with the appropriate information from the WTP Content Model. Eventually, this will allow future refactoring away from the DTDValidator and DFA code, to use the WTP Content Model for validation and proposals.
All tests are passing, except for one. I've refactored the tests so that it is easier to tell which ones are failing and which ones are passing. Not even sure that the original test was valid, but it will be phased out anyways as further refactoring occurs. Here is what is happening now, the DTDParser was used to get a content model of available elements. This was then used to create and populate a DTDValidator implementation in VEX. The DTDValidator would check to see if certain code could be added or deleted at certain points in the document. The WTP XML editor provides the ability to generate a Content Model from either a DTD or Schema. This provides the same basic functionality that the DTDParser was providing. The new set of code uses the WTP Content Model to load the DTD requested, and populate the DTDValidator. Eventually the DTDValidator will need to be replaced. Eclipse has interfaces for creating content assistance, and WTP has ModelQuery utils to query for available elements and suggestions at particular elements. Further refactoring is needed, but this removes the last hurdle that was preventing VEX for going to automated builds.
Closing this particular one as it does what the original intent was, which was to get rid of the DTD parser dependency.
Closing resolved bugs.
Moved to Mylyn Docs Vex.