code: public void visitTypes(CmsXmlContentDefinition xmlContentDefinition, Locale messageLocale) {
  
          m_rootContentDefinition = xmlContentDefinition;
          m_contentHandler = xmlContentDefinition.getContentHandler();
          CmsMessages messages = null;
          m_messages = new CmsMultiMessages(messageLocale);
          m_messages.setFallbackHandler(xmlContentDefinition.getContentHandler().getMessageKeyHandler());
  
          try {
              messages = OpenCms.getWorkplaceManager().getMessages(messageLocale);
              if (messages != null) {
                  m_messages.addMessages(messages);
              }
              messages = m_contentHandler.getMessages(messageLocale);
              if (messages != null) {
                  m_messages.addMessages(messages);
              }
          } catch (Exception e) {
              // may happen during start up
              LOG.debug(e.getMessage(), e);
          }
          // generate a new multi messages object and add the messages from the workplace
  
          m_attributeConfigurations = new HashMap<String, CmsAttributeConfiguration>();
          m_widgetConfigurations = new HashMap<String, CmsExternalWidgetConfiguration>();
          m_registeredTypes = new HashMap<String, CmsType>();
          m_localeSynchronizations = new ArrayList<String>();
          m_dynamicallyLoaded = new ArrayList<String>();
          m_tabInfos = collectTabInfos(xmlContentDefinition);
          readTypes(xmlContentDefinition, "");
      }
docs: Visits all types within the XML content definition.<p>
  
  @param xmlContentDefinition the content definition
  @param messageLocale the locale