code: public List<I_CmsXmlSchemaType> getChoiceOptions(String xpath, Locale locale) {
  
          I_CmsXmlSchemaType type = m_contentDefinition.getSchemaType(xpath);
          if (type == null) {
              // the xpath is not valid in the document
              return null;
          }
          if (!type.isChoiceType() && !type.isChoiceOption()) {
              // type is neither defining a choice nor part of a choice
              return null;
          }
  
          if (type.isChoiceType()) {
              // the type defines a choice sequence
              CmsXmlContentDefinition cd = ((CmsXmlNestedContentDefinition)type).getNestedContentDefinition();
              return cd.getTypeSequence();
          }
  
          // type must be a choice option
          I_CmsXmlContentValue value = getValue(xpath, locale);
          if ((value == null) || (value.getContentDefinition().getChoiceMaxOccurs() > 1)) {
              // value does not exist in the document or is a multiple choice value
              return type.getContentDefinition().getTypeSequence();
          }
  
          // value must be a single choice that already exists in the document, so we must return null
          return null;
      }
docs: Returns the list of choice options for the given xpath in the selected locale.<p>
  
  In case the xpath does not select a nested choice content definition,
  or in case the xpath does not exist at all, <code>null</code> is returned.<p>
  
  @param xpath the xpath to check the choice options for
  @param locale the locale to check
  
  @return the list of choice options for the given xpath