code: public static Map<String, String> readProperties(CmsObject cms, I_CmsXmlContentLocation baseLocation) {
  
          Map<String, String> result = new HashMap<String, String>();
          String elementName = CmsXmlContentProperty.XmlNode.Properties.name();
          String nameElementName = CmsXmlContentProperty.XmlNode.Name.name();
          List<I_CmsXmlContentValueLocation> propertyLocations = baseLocation.getSubValues(elementName);
          for (I_CmsXmlContentValueLocation propertyLocation : propertyLocations) {
              I_CmsXmlContentValueLocation nameLocation = propertyLocation.getSubValue(nameElementName);
              String name = nameLocation.asString(cms).trim();
              String value = null;
              I_CmsXmlContentValueLocation valueLocation = propertyLocation.getSubValue(
                  CmsXmlContentProperty.XmlNode.Value.name());
              I_CmsXmlContentValueLocation stringLocation = valueLocation.getSubValue(
                  CmsXmlContentProperty.XmlNode.String.name());
              I_CmsXmlContentValueLocation fileListLocation = valueLocation.getSubValue(
                  CmsXmlContentProperty.XmlNode.FileList.name());
              if (stringLocation != null) {
                  value = stringLocation.asString(cms).trim();
              } else if (fileListLocation != null) {
                  List<CmsUUID> idList = new ArrayList<CmsUUID>();
                  List<I_CmsXmlContentValueLocation> fileLocations = fileListLocation.getSubValues(
                      CmsXmlContentProperty.XmlNode.Uri.name());
                  for (I_CmsXmlContentValueLocation fileLocation : fileLocations) {
                      CmsUUID structureId = fileLocation.asId(cms);
                      idList.add(structureId);
                  }
                  value = CmsStringUtil.listAsString(idList, CmsXmlContentProperty.PROP_SEPARATOR);
              }
              if (value != null) {
                  result.put(name, value);
              }
          }
          return result;
      }
docs: Reads property nodes from the given location.<p>
  
  @param cms the current cms context
  @param baseLocation the base location
  
  @return the properties