public static void addDeclarable(final ContentHandler handler, Declarable declarable)
      throws SAXException {
    AttributesImpl EMPTY = new AttributesImpl();

    String className = declarable.getClass().getName();
    handler.startElement("", CLASS_NAME, CLASS_NAME, EMPTY);
    handler.characters(className.toCharArray(), 0, className.length());
    handler.endElement("", CLASS_NAME, CLASS_NAME);

    if (!(declarable instanceof Declarable2)) {
      return;
    }

    Properties props = ((Declarable2) declarable).getConfig();
    if (props == null) {
      return;
    }

    for (final Map.Entry<Object, Object> objectObjectEntry : props.entrySet()) {
      Map.Entry entry = (Map.Entry) objectObjectEntry;
      String name = (String) entry.getKey();
      Object value = entry.getValue();

      AttributesImpl atts = new AttributesImpl();
      atts.addAttribute("", "", NAME, "", name);

      handler.startElement("", PARAMETER, PARAMETER, atts);

      if (value instanceof String) {
        String sValue = (String) value;
        handler.startElement("", STRING, STRING, EMPTY);
        handler.characters(sValue.toCharArray(), 0, sValue.length());
        handler.endElement("", STRING, STRING);

      } else if (value instanceof Declarable) {
        handler.startElement("", DECLARABLE, DECLARABLE, EMPTY);
        addDeclarable(handler, (Declarable) value);
        handler.endElement("", DECLARABLE, DECLARABLE);

      } else {
        // Ignore it
      }

      handler.endElement("", PARAMETER, PARAMETER);
    }
  }
Creates new empty element on <code>contentHandler</code> with given <code>prefix</code>,
<code>localName</code> and <code>attributes</code>.

@param contentHandler to create empty element on.
@param prefix of element
@param localName of element
@param attributes of element
@throws SAXException if {@link ContentHandler#startElement(String, String, String, Attributes)}
        or {@link ContentHandler#endElement(String, String, String)} throws
        {@link SAXException}.
@since GemFire 8.1
geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/XmlGeneratorUtils.java