Hi, I've started work on the refactoring of MSITask/MSMTask. I've started by splicing the Xsd files, so that the two types 'msi' and 'msm' inherit from a common type 'MSIBase' that contains most of the data. So from two files totalling about 1560 lines, I've gone to one file containing 900 lines. This has the added benefit that the generated .Net msi and msm classes both inherit from an MSIBase class. This will make refactoring MSITask.cs and MSMTask.cs much easier.
But... This comes with a price: a breaking change that will force users to reorder the subelements of their msm/msi tasks. This is because to use inheritance in XSD, common elements must be placed before the subclass-specific elements (and you can only extend a XSD <sequence> - not an <all>). For the <msi> task, you will have to move the <launchconditions>, <features> and <mergemodules> subelements to the bottom of the task, and for the <msm> task, you will have to move the <module*> elements. So my question is: do any of you know of a way to get around this (I'm not that proficient with XSD and serialization)? Failing that, do you think I should proceed? That is, do you think (as I do) that the benefits of ease of maintenance outweighs the penalty of a breaking change at this stage? /Kræn ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ _______________________________________________ NAntContrib-Developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nantcontrib-developer