<SyntaxDefinition name="XML" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008"
				  extensions=".xml;.xsl;.xslt;.xsd;.manifest;.config;.addin;.xshd;.wxs;.wxi;.wxl;.proj;.csproj;.vbproj;.ilproj;.booproj;.build;.xfrm;.targets;.xaml;.xpt;.xft;.map;.wsdl;.disco;.ps1xml;.nuspec">
	
	<Color foreground="Green" name="Comment" exampleText="&lt;!-- comment --&gt;" />
	<Color foreground="Blue" name="CData" exampleText="&lt;![CDATA[data]]&gt;" />
	<Color foreground="Blue" name="DocType" exampleText="&lt;!DOCTYPE rootElement&gt;" />
	<Color foreground="#89DDFF" name="XmlDeclaration" exampleText='&lt;?xml version="1.0"?&gt;' />
	<Color foreground="#F07178" name="XmlTag" exampleText='&lt;tag attribute="value" /&gt;' />
	<Color foreground="#C792DD" name="AttributeName" exampleText='&lt;tag attribute="value" /&gt;' />
	<Color foreground="#C3E88D" name="AttributeValue" exampleText='&lt;tag attribute="value" /&gt;' />
	<Color foreground="Teal" name="Entity" exampleText="index.aspx?a=1&amp;amp;b=2" />
	<Color foreground="Olive" name="BrokenEntity" exampleText="index.aspx?a=1&amp;b=2" />
	
	<RuleSet>
		<Span color="Comment" multiline="true">
			<Begin>&lt;!--</Begin>
			<End>--&gt;</End>
		</Span>
		<Span color="CData" multiline="true">
			<Begin>&lt;!\[CDATA\[</Begin>
			<End>]]&gt;</End>
		</Span>
		<Span color="DocType" multiline="true">
			<Begin>&lt;!DOCTYPE</Begin>
			<End>&gt;</End>
		</Span>
		<Span color="XmlDeclaration" multiline="true">
			<Begin>&lt;\?</Begin>
			<End>\?&gt;</End>
		</Span>
		<Span color="XmlTag" multiline="true">
			<Begin>&lt;</Begin>
			<End>&gt;</End>
			<RuleSet>
				<!-- Treat the position before '<' as end, as that's not a valid character
				     in attribute names and indicates the user forgot a closing quote. -->
				<Span color="AttributeValue" multiline="true" ruleSet="EntitySet">
					<Begin>"</Begin>
					<End>"|(?=&lt;)</End>
				</Span>
				<Span color="AttributeValue" multiline="true" ruleSet="EntitySet">
					<Begin>'</Begin>
					<End>'|(?=&lt;)</End>
				</Span>
				<Rule color="AttributeName">[\d\w_\-\.]+(?=(\s*=))</Rule>
				<Rule color="AttributeValue">=</Rule>
			</RuleSet>
		</Span>
		<Import ruleSet="EntitySet"/>
	</RuleSet>
	
	<RuleSet name="EntitySet">
		<Rule color="Entity">
			&amp;
			[\w\d\#]+
			;
		</Rule>

		<Rule color="BrokenEntity">
			&amp;
			[\w\d\#]*
			#missing ;
		</Rule>
	</RuleSet>
</SyntaxDefinition>