Anybody out there with a good understanding or a good reference of how the attributes that make up a custom list definition apply to the list columns when you define Fields and FieldRefs in multiple places. For example, it is not uncommon to have a custom list definition where you have ElementManifest files that define the attributes in many places, such as:
- Fields.xml - defines Field elements that become site columns
- Elements.xml - for each content type, defines FieldRef elements that reference the site columns
- Schema.xml - for each list definition that define Field and FieldRef elements that reference the list columns and content types
In each of those, you can define attributes on the Field and FieldRef elements such as Required="TRUE", ShowInNewForm="FALSE", etc... When you have it defined in multiple places for the same field (same ID and InternalName), which attribute will end up being the one you see on the list. While I was thinking that the precedence of how those attributes apply would go in the order of site column - site content type - list content type - list column that doesn't seem to be the case. Looks like whatever you put in the site column definition (Fields.xml) has the highest priority and can’t be overridden in elements that define list columns. It takes a lot of trial and error to get those things right, I was wondering if somebody has gone through the effort of testing the different combination and sharing the results.