1<lexer>
 2  <config>
 3    <name>XML</name>
 4    <alias>xml</alias>
 5    <filename>*.xml</filename>
 6    <filename>*.xsl</filename>
 7    <filename>*.rss</filename>
 8    <filename>*.xslt</filename>
 9    <filename>*.xsd</filename>
10    <filename>*.wsdl</filename>
11    <filename>*.wsf</filename>
12    <filename>*.svg</filename>
13    <filename>*.qrc</filename>
14    <filename>*.csproj</filename>
15    <filename>*.vcxproj</filename>
16    <filename>*.fsproj</filename>
17    <mime_type>text/xml</mime_type>
18    <mime_type>application/xml</mime_type>
19    <mime_type>image/svg+xml</mime_type>
20    <mime_type>application/rss+xml</mime_type>
21    <mime_type>application/atom+xml</mime_type>
22    <dot_all>true</dot_all>
23  </config>
24  <rules>
25    <state name="root">
26      <rule pattern="[^&lt;&amp;]+">
27        <token type="Text"/>
28      </rule>
29      <rule pattern="&amp;\S*?;">
30        <token type="NameEntity"/>
31      </rule>
32      <rule pattern="\&lt;\!\[CDATA\[.*?\]\]\&gt;">
33        <token type="CommentPreproc"/>
34      </rule>
35      <rule pattern="&lt;!--">
36        <token type="Comment"/>
37        <push state="comment"/>
38      </rule>
39      <rule pattern="&lt;\?.*?\?&gt;">
40        <token type="CommentPreproc"/>
41      </rule>
42      <rule pattern="&lt;![^&gt;]*&gt;">
43        <token type="CommentPreproc"/>
44      </rule>
45      <rule pattern="&lt;\s*[\w:.-]+">
46        <token type="NameTag"/>
47        <push state="tag"/>
48      </rule>
49      <rule pattern="&lt;\s*/\s*[\w:.-]+\s*&gt;">
50        <token type="NameTag"/>
51      </rule>
52    </state>
53    <state name="comment">
54      <rule pattern="[^-]+">
55        <token type="Comment"/>
56      </rule>
57      <rule pattern="--&gt;">
58        <token type="Comment"/>
59        <pop depth="1"/>
60      </rule>
61      <rule pattern="-">
62        <token type="Comment"/>
63      </rule>
64    </state>
65    <state name="tag">
66      <rule pattern="\s+">
67        <token type="Text"/>
68      </rule>
69      <rule pattern="[\w.:-]+\s*=">
70        <token type="NameAttribute"/>
71        <push state="attr"/>
72      </rule>
73      <rule pattern="/?\s*&gt;">
74        <token type="NameTag"/>
75        <pop depth="1"/>
76      </rule>
77    </state>
78    <state name="attr">
79      <rule pattern="\s+">
80        <token type="Text"/>
81      </rule>
82      <rule pattern="&#34;.*?&#34;">
83        <token type="LiteralString"/>
84        <pop depth="1"/>
85      </rule>
86      <rule pattern="&#39;.*?&#39;">
87        <token type="LiteralString"/>
88        <pop depth="1"/>
89      </rule>
90      <rule pattern="[^\s&gt;]+">
91        <token type="LiteralString"/>
92        <pop depth="1"/>
93      </rule>
94    </state>
95  </rules>
96</lexer>