docs: @Nonnull
    private EHTMLElementType _checkHTML ()
    {
      final ICommonsList <String> aTags = new CommonsLinkedList<> ();
      final StringBuilder aSB = new StringBuilder ();
      int nPos = m_nLeading;
      if (m_sValue.charAt (m_nLeading + 1) == '!')
      {
        if (_readXMLComment (this, m_nLeading) > 0)
          return EHTMLElementType.COMMENT;
      }
      nPos = MarkdownHelper.readXMLElement (aSB, m_sValue, m_nLeading, false);
      if (nPos > -1)
      {
        String sElement = aSB.toString ();
        String sTag = MarkdownHelper.getXMLTag (sElement);
        if (!MarkdownHTML.isHtmlBlockElement (sTag))
          return EHTMLElementType.NONE;
        if (EHTMLElement.getFromTagNameOrNull (sTag).mayBeSelfClosed ())
        {
          m_aXmlEndLine = this;
          return EHTMLElementType.TAG;
        }
        aTags.add (sTag);
        Line aLine = this;
        while (aLine != null)
        {
          while (nPos < aLine.m_sValue.length () && aLine.m_sValue.charAt (nPos) != '<')
            nPos++;
  
          if (nPos >= aLine.m_sValue.length ())
          {
            aLine = aLine.m_aNext;
            nPos = 0;
          }
          else
          {
            aSB.setLength (0);
            final int nNewPos = MarkdownHelper.readXMLElement (aSB, aLine.m_sValue, nPos, false);
            if (nNewPos > 0)
            {
              sElement = aSB.toString ();
              sTag = MarkdownHelper.getXMLTag (sElement);
              if (MarkdownHTML.isHtmlBlockElement (sTag) && !EHTMLElement.getFromTagNameOrNull (sTag).mayBeSelfClosed ())
              {
                if (sElement.charAt (1) == '/')
                {
                  if (!aTags.getLast ().equals (sTag))
                    return EHTMLElementType.NONE;
                  aTags.removeLast ();
                }
                else
                {
                  aTags.add (sTag);
                }
              }
              if (aTags.isEmpty ())
              {
                m_aXmlEndLine = aLine;
                break;
              }
              nPos = nNewPos;
            }
            else
            {
              nPos++;
            }
          }
        }
        if (aTags.isEmpty ())
          return EHTMLElementType.TAG;
      }
      return EHTMLElementType.NONE;
    }