docs: protected XMLObject newAttributeValue(final Object value, final String valueType, final QName elementName) {
  
          if (XSString.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSStringBuilder();
              val attrValueObj = builder.buildObject(elementName, XSString.TYPE_NAME);
              attrValueObj.setValue(value.toString());
              return attrValueObj;
          }
  
          if (XSURI.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSURIBuilder();
              val attrValueObj = builder.buildObject(elementName, XSURI.TYPE_NAME);
              attrValueObj.setValue(value.toString());
              return attrValueObj;
          }
  
          if (XSBoolean.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSBooleanBuilder();
              val attrValueObj = builder.buildObject(elementName, XSBoolean.TYPE_NAME);
              attrValueObj.setValue(XSBooleanValue.valueOf(value.toString().toLowerCase()));
              return attrValueObj;
          }
  
          if (XSInteger.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSIntegerBuilder();
              val attrValueObj = builder.buildObject(elementName, XSInteger.TYPE_NAME);
              attrValueObj.setValue(Integer.valueOf(value.toString()));
              return attrValueObj;
          }
  
          if (XSDateTime.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSDateTimeBuilder();
              val attrValueObj = builder.buildObject(elementName, XSDateTime.TYPE_NAME);
              attrValueObj.setValue(DateTime.parse(value.toString()));
              return attrValueObj;
          }
  
          if (XSBase64Binary.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val builder = new XSBase64BinaryBuilder();
              val attrValueObj = builder.buildObject(elementName, XSBase64Binary.TYPE_NAME);
              attrValueObj.setValue(value.toString());
              return attrValueObj;
          }
  
          if (XSObject.class.getSimpleName().equalsIgnoreCase(valueType)) {
              val mapper = new JacksonXmlSerializer();
              val builder = new XSAnyBuilder();
              val attrValueObj = builder.buildObject(elementName);
              attrValueObj.setTextContent(mapper.writeValueAsString(value));
              return attrValueObj;
          }
  
          val builder = new XSAnyBuilder();
          val attrValueObj = builder.buildObject(elementName);
          attrValueObj.setTextContent(value.toString());
          return attrValueObj;
      }