Which definitions in base.xml are mandatory?

I am trying to understand what exactly is specified in base.xml and why exactly this. Specifically:

  • What information in base.xml is then mandatory for CollectiveAccess functionality and must not be changed?
  • Only metadata elements for Sets, Loans, Movements, Tours are defined -- why? Is it because there are hardly any hard coded metadata elements for Sets, Loans, Movements and Tours, but the ones defined in base.xml are indispensable for functionality?
  • Why are types defined for only 47 of 66 existing relationships in base.xml, and why exactly these? May the code labels (like "related", "part", "lender") be changed or does this break some hard coded functionality?
  • Anything else that is important to keep in mind when modifying the base.xml?


  • The base profile is a set of defaults that project-specific profiles can inherit. Your profile doesn't have to inherit from base.xml. It can inherit from any other profile, or none at all.

    The idea with base.xml was to provide defaults for the record types that are less often used and therefore not always defined in project-specific profiles. By having reasonable defaults systems could be made to work out of the box. Sets, loans, movements and tours are the record types most often ignored by profile authors. Sets and loans in particular do get used in many systems, so having those defaults in place avoids errors and provides a base for customization later.

    Where no defaults are specified it's because the assumption is your profile will define them. In these cases it was though throwing errors if omitted from the project-specific profile was desirable.

    You can change anything you want in the base profile. You won't break any hardcoded behavior. The important thing it to define reasonable values somewhere – either in the base profile or your own profile.

Sign In or Register to comment.