HtmlFile:test.html
  PsiElement(HTML_DOCUMENT)
    PsiElement(XML_PROLOG)
      <empty list>
    XmlToken:XML_DATA_CHARACTERS('<#list')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('component.getTableData()')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('as')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('tableRow>')
    PsiWhiteSpace('\n  ')
    XmlToken:XML_DATA_CHARACTERS('<#assign')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('isEvenRow')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('=')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('(((')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('tableRow_index')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('+')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('1')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(')')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('%')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('2')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(')')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('==')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('0')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(')/>')
    PsiWhiteSpace('\n  ')
    XmlToken:XML_DATA_CHARACTERS('<#assign')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('rowClass')
    PsiWhiteSpace('  ')
    XmlToken:XML_DATA_CHARACTERS('=')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS('isEvenRow?string(')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(''even',')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(''odd'')
    PsiWhiteSpace(' ')
    XmlToken:XML_DATA_CHARACTERS(')/>')
    PsiWhiteSpace('\n\n  ')
    HtmlTag:tr
      XmlToken:XML_START_TAG_START('<')
      XmlToken:XML_NAME('tr')
      PsiWhiteSpace(' ')
      PsiElement(XML_ATTRIBUTE)
        XmlToken:XML_NAME('class')
        XmlToken:XML_EQ('=')
        PsiElement(XML_ATTRIBUTE_VALUE)
          XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
          XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('${rowClass}')
          XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
      XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n     ')
      HtmlTag:td
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
        XmlText
          XmlToken:XML_DATA_CHARACTERS('${tableRow_index}')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n     ')
      HtmlTag:td
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
        HtmlTag:input
          XmlToken:XML_START_TAG_START('<')
          XmlToken:XML_NAME('input')
          PsiWhiteSpace(' ')
          PsiElement(XML_ATTRIBUTE)
            XmlToken:XML_NAME('type')
            PsiWhiteSpace('    ')
            XmlToken:XML_EQ('=')
            PsiWhiteSpace(' ')
            PsiElement(XML_ATTRIBUTE_VALUE)
              XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
              XmlToken:XML_ATTRIBUTE_VALUE_TOKEN('checkbox')
              XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
          PsiWhiteSpace('\n               ')
          PsiElement(XML_ATTRIBUTE)
            XmlToken:XML_NAME('onclick')
            PsiWhiteSpace(' ')
            XmlToken:XML_EQ('=')
            PsiWhiteSpace(' ')
            PsiElement(XML_ATTRIBUTE_VALUE)
              XmlToken:XML_ATTRIBUTE_VALUE_START_DELIMITER('"')
              XmlToken:XML_ATTRIBUTE_VALUE_END_DELIMITER('"')
          XmlToken:XML_EMPTY_ELEMENT_END('/>')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n     ')
        XmlToken:XML_DATA_CHARACTERS('<#list')
        PsiWhiteSpace(' ')
        XmlToken:XML_DATA_CHARACTERS('tableRow')
        PsiWhiteSpace(' ')
        XmlToken:XML_DATA_CHARACTERS('as')
        PsiWhiteSpace(' ')
        XmlToken:XML_DATA_CHARACTERS('value>')
        PsiWhiteSpace('\n       ')
      HtmlTag:td
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
        XmlText
          XmlToken:XML_DATA_CHARACTERS('${(')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS('value?trim?length')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS('<')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS('1')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS(')?string(')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS(''')
          XmlToken:XML_CHAR_ENTITY_REF('&nbsp;')
          XmlToken:XML_DATA_CHARACTERS('',')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS('value')
          PsiWhiteSpace(' ')
          XmlToken:XML_DATA_CHARACTERS(')}')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('td')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace('\n     ')
      XmlToken:XML_END_TAG_START('</')
      PsiErrorElement:Closing tag name is missing
        <empty list>
    XmlToken:XML_DATA_CHARACTERS('#list>')
    PsiWhiteSpace('\n  ')
    PsiErrorElement:Closing tag matches nothing
      XmlToken:XML_END_TAG_START('</')
      XmlToken:XML_NAME('tr')
      XmlToken:XML_TAG_END('>')
    PsiWhiteSpace('\n')
    XmlToken:XML_END_TAG_START('</')
    PsiErrorElement:Closing tag name is missing
      <empty list>
    XmlToken:XML_DATA_CHARACTERS('#list>')