code: public String toXml(Object source, String rootName, boolean hasNull) {
          if (source == null) {
              log.warn("传入的source为null，返回null");
              return null;
          }
  
          if (rootName == null) {
              XmlNode xmlNode = source.getClass().getDeclaredAnnotation(XmlNode.class);
              rootName = xmlNode == null ? null : xmlNode.name();
          }
  
          if (rootName == null) {
              rootName = DEFAULT_ROOT;
          }
  
          Long start = System.currentTimeMillis();
          Element root = DocumentHelper.createElement(rootName);
          buildDocument(root, source, source.getClass(), !hasNull);
          Long end = System.currentTimeMillis();
          log.debug("解析xml用时" + (end - start) + "ms");
          return root.asXML();
      }
docs: 将Object解析为xml，暂时只能解析基本类型（可以正确解析list、map）
  
  @param source   bean
  @param rootName 根节点名称，如果为null则会尝试使用默认值
  @param hasNull  是否包含null元素（true：包含）
  @return 解析结果