FIXML Schema: What's the point of base and impl for components and messages?

Hello everybody. I was asked to supply FIXML schema files to one of our customers to reflect the FIX dialect of our application. I read the file-layout documentation on and try to conform to this standard.

I noticed the separation between base and impl files, where impl includes base. I understand that in fixml-fields-impl, I can customize enumeration datatypes, but how would I customize components and messages, i.e. remove/alter/add elements and attributes?

The file fixml-components-impl-5-0-SP2.xsd contains any customization of components. If you want to add user-defined fields, you will also need to add them to fixml-fields-impl-5-0-SP2.xsd before they can be referenced in fixml-components-impl-5-0-SP2.xsd.

Messages are grouped into categories, each of which has its own “impl”-file, i.e. fixml-<category>-impl-5-0-SP2.xsd. You need to find the category for the message you want to change and then go to the corresponding “impl”-file.