XmlFile:test.xml
  PsiElement(XML_DOCUMENT)
    PsiElement(XML_PROLOG)
      PsiElement(XML_DOCTYPE)
        XmlToken:XML_DOCTYPE_START('<!DOCTYPE')
        PsiWhiteSpace(' ')
        XmlToken:XML_NAME('aaa')
        PsiWhiteSpace(' ')
        PsiElement(XML_MARKUP_DECL)
          XmlToken:XML_MARKUP_START('[')
          PsiElement(XML_ELEMENT_DECL)
            XmlToken:XML_ELEMENT_DECL_START('<!ELEMENT')
            PsiWhiteSpace(' ')
            XmlToken:XML_NAME('a')
            PsiWhiteSpace(' ')
            PsiElement(XML_ELEMENT_CONTENT_SPEC)
              <empty list>
            PsiErrorElement:( or entity ref or EMPTY or ANY expected
              <empty list>
            XmlToken:XML_BAD_CHARACTER('#')
            XmlToken:XML_CONTENT_EMPTY('EMPTY')
            XmlToken:XML_TAG_END('>')
          PsiElement(XML_ATTLIST_DECL)
            XmlToken:XML_ATTLIST_DECL_START('<!ATTLIST')
            PsiWhiteSpace(' ')
            XmlToken:XML_NAME('a')
            PsiWhiteSpace(' ')
            PsiElement(XML_ATTRIBUTE_DECL)
              XmlToken:XML_NAME('xx')
              PsiWhiteSpace(' ')
              XmlToken:XML_NAME('CDATA')
              PsiWhiteSpace(' ')
              XmlToken:XML_ATT_IMPLIED('#IMPLIED')
            PsiWhiteSpace(' ')
            PsiElement(XML_ATTRIBUTE_DECL)
              XmlToken:XML_NAME('yy')
            PsiWhiteSpace('  ')
            XmlToken:XML_ATT_IMPLIED('#IMPLIED')
            PsiWhiteSpace(' ')
            XmlToken:XML_NAME('zz')
            PsiWhiteSpace(' ')
            XmlToken:XML_NAME('CDATA')
            PsiWhiteSpace(' ')
            XmlToken:XML_ATT_IMPLIED('#IMPLIED')
            XmlToken:XML_TAG_END('>')
          XmlToken:XML_MARKUP_END(']')
        XmlToken:XML_DOCTYPE_END('>')
      PsiWhiteSpace('\n')
    XmlTag:a
      XmlToken:XML_START_TAG_START('<')
      XmlToken:XML_NAME('a')
      XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace(' ')
      XmlTag:b
        XmlToken:XML_START_TAG_START('<')
        XmlToken:XML_NAME('b')
        XmlToken:XML_TAG_END('>')
        XmlText
          PsiWhiteSpace(' ')
        XmlToken:XML_END_TAG_START('</')
        XmlToken:XML_NAME('b')
        XmlToken:XML_TAG_END('>')
      XmlText
        PsiWhiteSpace(' ')
      XmlToken:XML_END_TAG_START('</')
      XmlToken:XML_NAME('a')
      XmlToken:XML_TAG_END('>')