def METHOD_NAME():
    """Retrieve data for the elements.
    Data are found in Table 1:
      http://physics.nist.gov/PhysRefData/XrayMassCoef/tab1.html
    Returns:
      A pandas DataFrame of the material data. Columns are 'Z', 'Symbol',
      'Element', 'Z_over_A', 'I_eV', and 'Density'.
    Raises:
      MaterialsError: if there was a problem obtaining the data.
    """
    req = _get_request(_URL_TABLE1)
    text = req.text
    # rename first two header columns
    text = text.replace(
        '<TH scope="col" COLSPAN="2"><I>Z</I></TH>',
        '<TH scope="col">Z</TH><TH scope="col">Symbol</TH>',
    )
    # remove row that makes the table too wide
    text = text.replace('<TD COLSPAN="10"><HR SIZE="1" NOSHADE></TD>', "")
    # remove extra header columns
    text = text.replace('<TD COLSPAN="2">', "<TD>")
    text = text.replace('<TD COLSPAN="4">', "<TD>")
    text = text.replace("TD>&nbsp;</TD>", "")
    # remove extra columns in Hydrogen row
    text = text.replace('<TD ROWSPAN="92">&nbsp;</TD>', "")
    # remove open <TR> at the end of the table
    text = text.replace("</TD></TR><TR>", "</TD></TR>")
    # read HTML table into pandas DataFrame
    tables = pd.read_html(text, header=0, skiprows=[1, 2])
    if len(tables) != 1:
        raise MaterialsError(f"1 HTML table expected, but found {len(tables)}")
    df = tables[0]
    if len(df) != MAX_Z:
        raise MaterialsError(f"{MAX_Z} elements expected, but found {len(df)}")
    if len(df.columns) != 6:
        raise MaterialsError(
            f"10 columns expected, but found {len(df.columns)} ({df.columns})"
        )
    # rename columns
    df.columns = ["Z", "Symbol", "Element", "Z_over_A", "I_eV", "Density"]
    # add composition by Z
    df["Composition_Z"] = [[f"{z}: 1.000000"] for z in df["Z"].values]
    # add composition by symbol
    df["Composition_symbol"] = [
        convert_composition(comp) for comp in df["Composition_Z"]
    ]
    return df