アプリに XML エディターを含めたいと思います - VS の XML エディターと同様に、自動色付けなど。
AvalonEdit は優れたソリューションのように思えます。
ただし、AvalonEdit には、XML 構文ではなく、C# 構文のサンプルが付属しています。XML 構文のサンプルはどこかにありますか?
アプリに XML エディターを含めたいと思います - VS の XML エディターと同様に、自動色付けなど。
AvalonEdit は優れたソリューションのように思えます。
ただし、AvalonEdit には、XML 構文ではなく、C# 構文のサンプルが付属しています。XML 構文のサンプルはどこかにありますか?
SyntaxHighlighting="XML"
XAML で使用するだけです。
xmlns:avalonedit="http://icsharpcode.net/sharpdevelop/avalonedit"
...
<StackPanel>
<avalonedit:TextEditor SyntaxHighlighting="XML"/>
</StackPanel>
必要な言語要件に合わせて Avalon の xshd ファイルを変更するだけです。共通言語構文の強調表示の多くは、すでに SharpDevelop Git で提供されています:リンク
XML の場合、xshd ファイルは次のようになります。
<SyntaxDefinition name="XML" 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" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
<Color foreground="Green" name="Comment" exampleText="<!-- comment -->" />
<Color foreground="Blue" name="CData" exampleText="<![CDATA[data]]>" />
<Color foreground="Blue" name="DocType" exampleText="<!DOCTYPE rootElement>" />
<Color foreground="Blue" name="XmlDeclaration" exampleText='<?xml version="1.0"?>' />
<Color foreground="DarkMagenta" name="XmlTag" exampleText='<tag attribute="value" />' />
<Color foreground="Red" name="AttributeName" exampleText='<tag attribute="value" />' />
<Color foreground="Blue" name="AttributeValue" exampleText='<tag attribute="value" />' />
<Color foreground="Teal" name="Entity" exampleText="index.aspx?a=1&amp;b=2" />
<Color foreground="Olive" name="BrokenEntity" exampleText="index.aspx?a=1&b=2" />
<RuleSet>
<Span color="Comment" multiline="true">
<Begin><!--</Begin>
<End>--></End>
</Span>
<Span color="CData" multiline="true">
<Begin><!\[CDATA\[</Begin>
<End>]]></End>
</Span>
<Span color="DocType" multiline="true">
<Begin><!DOCTYPE</Begin>
<End>></End>
</Span>
<Span color="XmlDeclaration" multiline="true">
<Begin><\?</Begin>
<End>\?></End>
</Span>
<Span color="XmlTag" multiline="true">
<Begin><</Begin>
<End>></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>"|(?=<)</End>
</Span>
<Span color="AttributeValue" multiline="true" ruleSet="EntitySet">
<Begin>'</Begin>
<End>'|(?=<)</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">
&
[\w\d\#]+
;
</Rule>
<Rule color="BrokenEntity">
&
[\w\d\#]*
#missing ;
</Rule>
</RuleSet>
</SyntaxDefinition>