Hi Kræn,

Sorry - I'm not aware of a way around the inheritance restrictions you outline, 
although my XML/XSD knowledge is far from extensive; I've really just learned as much 
as I've needed to get the job done on various occasions.

FWIW my vote is definitely in favour of your proposed breaking change though. I'd be 
fully prepared to tweak my build files (and it's only a simple cut & paste reordering 
in most cases) if that would enable the tasks to be more maintainable and extensible 
in future. Maybe you can have an error handler on the validation that prints a helpful 
error message for those users who aren't on the list and whose builds may break.
 
Cheers,
        Simon

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: 12 November 2003 11:01
To: [EMAIL PROTECTED]
Subject: [NAntC-Dev] MSITask/MSMTask refactoring, part I


   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


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

Reply via email to