xml.xml

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