For custom development of Content Types, which approach should be followed, Declarative Approach (via element.xml) vs Programmatic Approach (via code)? What are the pros and cons of each approach?
I think you should use code.
Details can be found here: https://sharepoint.stackexchange.com/questions/13953/best-way-to-package-publishing-content-types