PageRenderTime 23ms CodeModel.GetById 16ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Resources/ModeV1.xsd

http://github.com/icsharpcode/ILSpy
XML Schema | 296 lines | 263 code | 33 blank | 0 comment | 0 complexity | e700a7f6af3792dafb7295b109bf6901 MD5 | raw file
  1<?xml version="1.0" encoding="utf-8" ?>
  2<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
  3	<xsd:annotation>
  4		<xsd:documentation>
  5		This schema defines the syntax for mode definitions in SharpDevelop.
  6		The schema can be simplified quite a bit but it does the job as is.
  7		
  8		
  9		If you are using this file as a reference it is probably easiest to scroll to
 10		the botton to find the definition of the root element called SyntaxDefinition and
 11		then unwind the different type definitions and refernces.
 12		
 13		Note on coloring:
 14		Many tags define how some symbol should be colored. If a specific symbol
 15		can not be matched onto either a Span definition, Keyword, or a Digit/Number it
 16		will be rendered in the current default color. Which is the default color of the
 17		current span or the default color of the mode as a whole if no span has been entered.
 18		</xsd:documentation>
 19	</xsd:annotation>
 20	
 21	<!-- Defines the default rendering of the mode -->
 22	<xsd:complexType name="EnvironmentEntry">
 23		<xsd:attribute name="bold" type="xsd:boolean" />
 24		<xsd:attribute name="italic" type="xsd:boolean" />
 25		<xsd:attribute name="color" type="xsd:string" />
 26		<xsd:attribute name="bgcolor" type="xsd:string" />
 27	</xsd:complexType>
 28	
 29	<xsd:complexType name="CustomEnvironmentEntry">
 30		<xsd:attribute name="name" type="xsd:string" use="required" />
 31		<xsd:attribute name="bold" type="xsd:boolean" />
 32		<xsd:attribute name="italic" type="xsd:boolean" />
 33		<xsd:attribute name="color" type="xsd:string" />
 34		<xsd:attribute name="bgcolor" type="xsd:string" />
 35	</xsd:complexType>
 36	
 37	<!-- The environment tag defines the coloring of various attributes in SharpDevelop -->
 38	<xsd:complexType name="Environment">
 39		
 40		<xsd:choice minOccurs="0" maxOccurs="unbounded">
 41			<xsd:element name="Default" type="EnvironmentEntry" minOccurs="0" maxOccurs="1" />
 42			<xsd:element name="Selection" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 43			<xsd:element name="VRuler" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 44			<xsd:element name="InvalidLines" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 45			<xsd:element name="CaretMarker" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 46			<xsd:element name="CaretLine" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 47			
 48			<xsd:element name="LineNumbers" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 49			
 50			<xsd:element name="FoldLine" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 51			<xsd:element name="FoldMarker" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 52			<xsd:element name="SelectedFoldLine" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 53			
 54			<xsd:element name="EOLMarkers" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 55			<xsd:element name="SpaceMarkers" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 56			<xsd:element name="TabMarkers" type="EnvironmentEntry" minOccurs="0" maxOccurs="1"/>
 57			
 58			<xsd:element name="Custom" type="CustomEnvironmentEntry" minOccurs="0" maxOccurs="unbounded"/>
 59		</xsd:choice>
 60	</xsd:complexType>
 61	
 62	<xsd:complexType name="Properties">
 63		<xsd:sequence>
 64			<xsd:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded"/>
 65		</xsd:sequence>
 66	</xsd:complexType>
 67	
 68	<xsd:complexType name="Property">
 69		<!-- The actual KeyWord, typically reserved words or symbols in a programming language -->
 70		<xsd:attribute name="name" type="xsd:string" />
 71		<xsd:attribute name="value" type="xsd:string" />
 72	</xsd:complexType>
 73	
 74	<!-- The Digits tag defines the color for rendering Digits-->
 75	<xsd:complexType name="Digits">
 76		<xsd:attribute name="name" type="xsd:string" />
 77		<xsd:attribute name="bold" type="xsd:boolean" />
 78		<xsd:attribute name="italic" type="xsd:boolean" />
 79		<xsd:attribute name="color" type="xsd:string" />
 80		<xsd:attribute name="bgcolor" type="xsd:string" />
 81	</xsd:complexType>
 82	
 83	<!-- Defines the delimiting characters of the syntax, e.g., the characters that, "break up" a line
 84    into separate symbols, typically key words. It is not necessary, or desirable to include the
 85    characters that denot the start or end of a span. Space and Tab are implicitly defined as delimeters
 86    and they don't need to be includeded explicitly (this will probably be changed at some future time).-->
 87	<xsd:complexType name="Delimiters">
 88		<xsd:simpleContent>
 89			<xsd:extension base="xsd:string">
 90			</xsd:extension>
 91		</xsd:simpleContent>
 92	</xsd:complexType>
 93	
 94	<!-- The beginning symbol of a Span -->
 95	<xsd:complexType name="Begin">
 96		<xsd:simpleContent>
 97			<xsd:extension base="xsd:string">
 98				<xsd:attribute name="singleword" type="xsd:boolean" />
 99				<xsd:attribute name="startofline" type="xsd:boolean" />
100				<!-- The default rendering style for the Begin symbol. If not specified
101					 the defaul rendering style for the span will be used. -->
102				<xsd:attribute name="bold" type="xsd:boolean" />
103				<xsd:attribute name="italic" type="xsd:boolean" />
104				<xsd:attribute name="color" type="xsd:string" />
105				<xsd:attribute name="bgcolor" type="xsd:string" />
106			</xsd:extension>
107		</xsd:simpleContent>
108	</xsd:complexType>
109	
110	<!-- The end symbol of a Span -->
111	<xsd:complexType name="End">
112		<xsd:simpleContent>
113			<xsd:extension base="xsd:string">
114				<xsd:attribute name="singleword" type="xsd:boolean" />
115				<!-- The default rendering style for the End symbol. If not specified
116					 the defaul rendering style for the span will be used. -->
117				<xsd:attribute name="bold" type="xsd:boolean" />
118				<xsd:attribute name="italic" type="xsd:boolean" />
119				<xsd:attribute name="color" type="xsd:string" />
120				<xsd:attribute name="bgcolor" type="xsd:string" />
121			</xsd:extension>
122		</xsd:simpleContent>
123	</xsd:complexType>
124	
125	<xsd:complexType name="Span">
126		<xsd:sequence>
127			<!-- Defines the symbol that indicates the beginning of the span. -->
128			<xsd:element name="Begin" type="Begin" />
129			<!-- Defines the symbol that indicates the end of the span. May be omitted for
130				 one-line spans. -->
131			<xsd:element name="End" minOccurs="0" type="End" />
132		</xsd:sequence>
133		<!-- The name of the span definition -->
134		<xsd:attribute name="name" type="xsd:string" use="required" />
135		<!-- Defines the rule set that is applicable in the Span. May be omitted. -->
136		<xsd:attribute name="rule" type="xsd:string" />
137		<!-- Defines wether the Span should terminate automatically at the end of line. Typical examples
138       		 include one-line comments such as // in C++ or REM in Windows .Bat files. -->
139		<xsd:attribute name="stopateol" type="xsd:boolean" />
140		
141		<!-- OBSOLUTE: Defines whether C-style escape sequences using \ are applicable or not in the span. -->
142		<xsd:attribute name="noescapesequences" type="xsd:boolean" />
143		
144		<!-- defines the escape character -->
145		<xsd:attribute name="escapecharacter" type="xsd:string" />
146		
147		<!-- The default rendering style for the span -->
148		<xsd:attribute name="bold" type="xsd:boolean" />
149		<xsd:attribute name="italic" type="xsd:boolean" />
150		<xsd:attribute name="color" type="xsd:string" />
151		<xsd:attribute name="bgcolor" type="xsd:string" />
152	</xsd:complexType>
153	
154	<xsd:complexType name="MarkPrevious">
155		<xsd:simpleContent>
156			<xsd:extension base="xsd:string">
157				<!-- Svante Lidman, looking in the code it is a bit unclear what the intent is here... -->
158				<xsd:attribute name="markmarker" type="xsd:boolean" />
159				<!-- The rendering style to be used -->
160				<xsd:attribute name="bold" type="xsd:boolean" />
161				<xsd:attribute name="italic" type="xsd:boolean" />
162				<xsd:attribute name="color" type="xsd:string" />
163				<xsd:attribute name="bgcolor" type="xsd:string" />
164			</xsd:extension>
165		</xsd:simpleContent>
166	</xsd:complexType>
167	
168	<!-- Allows you to define the coloring of the symbol that follows a specified symbol -->
169	<xsd:complexType name="MarkFollowing">
170		<xsd:simpleContent>
171			<xsd:extension base="xsd:string">
172				<!-- Svante Lidman, looking in the code it is a bit unclear what the intent is here... -->
173				<xsd:attribute name="markmarker" type="xsd:boolean" />
174				<!-- The rendering style to be used -->
175				<xsd:attribute name="bold" type="xsd:boolean" />
176				<xsd:attribute name="italic" type="xsd:boolean" />
177				<xsd:attribute name="color" type="xsd:string" />
178				<xsd:attribute name="bgcolor" type="xsd:string" />
179			</xsd:extension>
180		</xsd:simpleContent>
181	</xsd:complexType>
182	
183	<xsd:complexType name="Key">
184		<!-- The actual KeyWord, typically reserved words or symbols in a programming language -->
185		<xsd:attribute name="word" type="xsd:string" />
186	</xsd:complexType>
187	
188	
189	<!-- A grouping of keywords that sholuld be colored the same way -->
190	<xsd:complexType name="KeyWords">
191		<xsd:sequence>
192			<!-- allow groups with 0 keywords: this simplifies the syntax highlighting editor -->
193			<!-- A KeyWord -->
194			<xsd:element name="Key" type="Key" minOccurs="0" maxOccurs="unbounded">
195			</xsd:element>
196		</xsd:sequence>
197		<!-- The name of the KeyWord group -->
198		<xsd:attribute name="name" type="xsd:string" />
199		<!-- The rendering style of the  KeyWord group -->
200		<xsd:attribute name="bold" type="xsd:boolean" />
201		<xsd:attribute name="italic" type="xsd:boolean" />
202		<xsd:attribute name="color" type="xsd:string" />
203		<xsd:attribute name="bgcolor" type="xsd:string" />
204	</xsd:complexType>
205	
206	<xsd:complexType name="RuleSet">
207		<xsd:sequence>
208			<!-- Defines the delimiting characters of the syntax, e.g., the characters that, "break up" a line
209        		 into separate symbols, typically key words. It is not necessary, or desirable to include the
210        		 characters that denot the start or end of a span. Space and Tab are implicitly defined as delimeters
211        		 and they don't need to be includeded explicitly (this will probably be changed at some future time).-->
212			<xsd:element name="Delimiters" type="Delimiters" minOccurs="0" maxOccurs="1">
213			</xsd:element>
214			<!-- A Span tag defines a scope, or what can be seen as a separate parsing context where a different set of
215            	 highlighting rules are applicable compared to the text where the span is found. 
216            	 Examples of spans include:
217            	 - A string in a language as C
218            	 - A <script> tag in Html
219            	 - The internals of a tag in XML (between < and >).
220            	 A span can have a rule set associated with it that defines the highlighting rules that are applicable
221            	 in the span. -->
222			<xsd:element name="Span" type="Span" minOccurs="0" maxOccurs="unbounded">
223			</xsd:element>
224			<!-- The MarkPrevious tag allows you to define the coloring of the item that preceeds a specific
225            	 symbol. An example of where this comes in handy is when coloring the contents of an XML-tag,
226            	 in particular the attributes and attribute names. The following definition:
227            	 <MarkPrevious bold="false" italic="false" color="Red">=</MarkPrevious>
228				 will make teh highlighter color words that are followed by an = to be colored in Red.
229				 You can see this in this file if you view it with the default XML-mode in SharpDevelop. -->
230			<xsd:element name="MarkPrevious" type="MarkPrevious" minOccurs="0" maxOccurs="unbounded">
231			</xsd:element>
232			<!-- The MarkFollowing tag works similarly as the MarkPrevious tag but relates to the coloring
233            of the symbol that follows the specified symbol. -->
234			<xsd:element name="MarkFollowing" type="MarkFollowing" minOccurs="0" maxOccurs="unbounded">
235			</xsd:element>
236			<!-- Defines a group of keywords that should be colored the same way -->
237			<xsd:element name="KeyWords" type="KeyWords" minOccurs="0" maxOccurs="unbounded">
238			</xsd:element>
239		</xsd:sequence>
240		<!-- The name of the RuleSet. Used when you refer to the RuleSet in the rule attribute of a Span tag.
241        	 Each mode file should have a rule definition without a defined name. This denotes the default rule
242        	 set for the mode. -->
243		<xsd:attribute name="name" type="xsd:string" />
244		<!-- Allows you to use another mode, defined in another file as a RuleSet. For an example see the
245        	 use of the JavaScript mode from the HTML-mode. -->
246		<xsd:attribute name="reference" type="xsd:string" />
247		<!-- Defines whether case is significant for matching keywords in the mode. -->
248		<xsd:attribute name="ignorecase" type="xsd:boolean" />
249		<!-- OBSOLETE: noescapesequences -->
250		<xsd:attribute name="noescapesequences" type="xsd:boolean" />
251		<!-- defines the escape character -->
252		<xsd:attribute name="escapecharacter" type="xsd:string" />
253	</xsd:complexType>
254	
255	<!-- The RuleSets tag is just a grouping of the set of RuleSets for a mode. -->
256	<xsd:complexType name="RuleSets">
257		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
258			<!-- Any number of RuleSet tag can be defined in a mode -->
259			<xsd:element name="RuleSet" type="RuleSet" minOccurs="1" maxOccurs="unbounded">
260			</xsd:element>
261		</xsd:sequence>
262	</xsd:complexType>
263	
264	<!-- SyntaxDefinition is the root-element in a mode definition file -->
265	<xsd:element name="SyntaxDefinition">
266		<xsd:complexType>
267			<xsd:sequence>
268				<!-- The Environment tag defines colors, for various standard elements in the SharpDevelop GUI, if
269				     not given the default values are used. -->
270				<xsd:element name="Environment" type="Environment" minOccurs="0" maxOccurs="1"/>
271				
272				<!-- The Properties section defines properties which are bound to the highlighting -->
273				<xsd:element name="Properties" type="Properties" minOccurs="0" maxOccurs="1" />
274				
275				<!-- The Digits tag defines the color for rendering Digits-->
276				<xsd:element name="Digits" type="Digits" minOccurs="0" maxOccurs="1"/>
277				
278				<!-- The RuleSets tag defines the rule sets that are used in the mode. Note that all modes are defined in
279					 a flat structture even if they are used recursively. For an example of a mode that uses
280					 multiple rule sets see the XML-mode. There is a top level rule-set and and another rule-set
281					 that handles highligting within a tag, i.e., between < and >. -->
282				<xsd:element name="RuleSets" type="RuleSets" />
283			</xsd:sequence>
284			<!-- The name of the mode. This is used when you, in the defintion of a RuleSet refers to another
285				 mode. I.e., one that is defined in an external file. For an example of this see the HTML-Mode that
286				 uses the JavaScript-mode this way. -->
287			<xsd:attribute name="name" type="xsd:string" />
288			<!-- The file extensions that the mode is applicable for. Extensions must be written with lower case and
289				 should include the ., as in .txt. If several extensions are applicable they should be separeated with | -->
290			<xsd:attribute name="extensions" type="xsd:string" />
291			<!-- Name of a syntax mode where rulesets, spans, keywords and other settings are imported from -->
292			<xsd:attribute name="extends" type="xsd:string" />
293		</xsd:complexType>
294	</xsd:element>
295
296</xsd:schema>