docs: public SQLXML getSQLXML(int columnIndex) throws SQLException {
  
          checkColumn(columnIndex);
  
          SQLXML sqlxml;
          int    type = resultMetaData.columnTypes[columnIndex - 1].typeCode;
  
          switch (type) {
  
              case Types.SQL_XML : {
                  Object object = getObject(columnIndex);
  
                  if (object == null) {
                      sqlxml = null;
                  } else if (object instanceof SQLXML) {
                      sqlxml = (SQLXML) object;
                  } else {
                      throw Util.notSupported();
                  }
  
                  break;
              }
              case Types.SQL_CLOB : {
                  Clob clob = getClob(columnIndex);
  
                  if (clob == null) {
                      sqlxml = null;
                  } else {
                      sqlxml = new JDBCSQLXML(clob.getCharacterStream());
                  }
  
                  break;
              }
              case Types.SQL_CHAR :
              case Types.SQL_VARCHAR :
              case Types.VARCHAR_IGNORECASE : {
                  java.io.Reader reader = getCharacterStream(columnIndex);
  
                  if (reader == null) {
                      sqlxml = null;
                  } else {
                      sqlxml = new JDBCSQLXML(reader);
                  }
  
                  break;
              }
              case Types.SQL_NCHAR :
              case Types.SQL_NVARCHAR : {
                  java.io.Reader nreader = getNCharacterStream(columnIndex);
  
                  if (nreader == null) {
                      sqlxml = null;
                  } else {
                      sqlxml = new JDBCSQLXML(nreader);
                  }
  
                  break;
              }
              case Types.SQL_BLOB : {
                  Blob blob = getBlob(columnIndex);
  
                  if (blob == null) {
                      sqlxml = null;
                  } else {
                      sqlxml = new JDBCSQLXML(blob.getBinaryStream());
                  }
  
                  break;
              }
              case Types.SQL_BINARY :
              case Types.SQL_VARBINARY : {
                  java.io.InputStream inputStream = getBinaryStream(columnIndex);
  
                  if (inputStream == null) {
                      sqlxml = null;
                  } else {
                      sqlxml = new JDBCSQLXML(inputStream);
                  }
  
                  break;
              }
              case Types.OTHER :
              case Types.JAVA_OBJECT : {
                  Object data = getObject(columnIndex);
  
                  if (data == null) {
                      sqlxml = null;
                  } else if (data instanceof SQLXML) {
                      sqlxml = (SQLXML) data;
                  } else if (data instanceof String) {
                      sqlxml = new JDBCSQLXML((String) data);
                  } else if (data instanceof byte[]) {
                      sqlxml = new JDBCSQLXML((byte[]) data);
                  } else if (data instanceof Blob) {
                      Blob blob = (Blob) data;
  
                      sqlxml = new JDBCSQLXML(blob.getBinaryStream());
                  } else if (data instanceof Clob) {
                      Clob clob = (Clob) data;
  
                      sqlxml = new JDBCSQLXML(clob.getCharacterStream());
                  } else {
                      throw Util.notSupported();
                  }
  
                  break;
              }
              default : {
                  throw Util.notSupported();
              }
          }