ContentCollection: It contents contextual information about the collection. It can be part of (and contain) other ContentCollection. It lets us to build an hierarchical structure. It can contain zero or more MetadataCollection.
MetadataCollection: it contains the technical information about how the data is exposed through targets defined. It can contain 0 or more MetadataCollection. It contains references to Protocol root element through the use of identifiers.
Protocol: It contains the specific information about the protocol used.