/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Resources/ModeV2.xsd

http://github.com/icsharpcode/ILSpy · XML Schema · 168 lines · 151 code · 17 blank · 0 comment · 0 complexity · 441362a5096bbf34d07760bef2ca3b1e MD5 · raw file

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsd:schema version="2" elementFormDefault="qualified" targetNamespace="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <!-- Font Weight -->
  4. <xsd:simpleType name="FontWeight">
  5. <xsd:union>
  6. <xsd:simpleType>
  7. <xsd:restriction base="xsd:integer">
  8. <xsd:minInclusive value="1"/>
  9. <xsd:maxInclusive value="999"/>
  10. </xsd:restriction>
  11. </xsd:simpleType>
  12. <xsd:simpleType>
  13. <xsd:restriction base="xsd:string">
  14. <xsd:enumeration value="bold"/>
  15. <xsd:enumeration value="normal"/>
  16. <xsd:enumeration value="regular"/>
  17. <!-- should we support other font weight names? -->
  18. </xsd:restriction>
  19. </xsd:simpleType>
  20. </xsd:union>
  21. </xsd:simpleType>
  22. <!-- Font Style -->
  23. <xsd:simpleType name="FontStyle">
  24. <xsd:restriction base="xsd:string">
  25. <xsd:enumeration value="italic"/>
  26. <xsd:enumeration value="normal"/>
  27. <xsd:enumeration value="oblique"/>
  28. </xsd:restriction>
  29. </xsd:simpleType>
  30. <!-- Color -->
  31. <xsd:attributeGroup name="ColorAttributes">
  32. <xsd:attribute name="foreground" type="xsd:string" use="optional" />
  33. <xsd:attribute name="background" type="xsd:string" use="optional" />
  34. <xsd:attribute name="fontWeight" type="FontWeight" use="optional" />
  35. <xsd:attribute name="fontStyle" type="FontStyle" use="optional" />
  36. <xsd:attribute name="underline" type="xsd:boolean" use="optional" />
  37. <xsd:anyAttribute namespace="##other" processContents="lax" />
  38. </xsd:attributeGroup>
  39. <xsd:attributeGroup name="ColorReferenceAttributes">
  40. <xsd:attributeGroup ref="ColorAttributes" />
  41. <xsd:attribute name="color" type="xsd:string" use="optional" />
  42. </xsd:attributeGroup>
  43. <xsd:element name="Color">
  44. <xsd:complexType>
  45. <xsd:attribute name="name" type="xsd:string" use="required" />
  46. <xsd:attribute name="exampleText" type="xsd:string" use="optional" />
  47. <xsd:attributeGroup ref="ColorAttributes"/>
  48. </xsd:complexType>
  49. </xsd:element>
  50. <xsd:element name="Property">
  51. <xsd:complexType>
  52. <xsd:attribute name="name" type="xsd:string" use="required" />
  53. <xsd:attribute name="value" type="xsd:string" use="required" />
  54. <xsd:anyAttribute namespace="##other" processContents="lax" />
  55. </xsd:complexType>
  56. </xsd:element>
  57. <!-- Regular expression -->
  58. <xsd:simpleType name="regex">
  59. <xsd:restriction base="xsd:string"/>
  60. </xsd:simpleType>
  61. <xsd:simpleType name="regexIgnorePatternWhitespace">
  62. <xsd:restriction base="xsd:string"/>
  63. </xsd:simpleType>
  64. <!-- Keywords -->
  65. <xsd:element name="Keywords">
  66. <xsd:complexType>
  67. <xsd:sequence>
  68. <xsd:element ref="Word" minOccurs="1" maxOccurs="unbounded"/>
  69. </xsd:sequence>
  70. <xsd:attributeGroup ref="ColorReferenceAttributes"/>
  71. </xsd:complexType>
  72. </xsd:element>
  73. <xsd:element name="Word">
  74. <xsd:complexType>
  75. <xsd:simpleContent>
  76. <xsd:extension base="xsd:string">
  77. <xsd:anyAttribute namespace="##other" processContents="lax" />
  78. </xsd:extension>
  79. </xsd:simpleContent>
  80. </xsd:complexType>
  81. </xsd:element>
  82. <!-- Spans -->
  83. <xsd:element name="Span">
  84. <xsd:complexType>
  85. <xsd:sequence>
  86. <xsd:element ref="Begin" minOccurs="0" maxOccurs="1"/>
  87. <xsd:element ref="End" minOccurs="0" maxOccurs="1"/>
  88. <xsd:element ref="RuleSet" minOccurs="0" maxOccurs="1"/>
  89. </xsd:sequence>
  90. <xsd:attributeGroup ref="ColorReferenceAttributes"/>
  91. <xsd:attribute name="multiline" type="xsd:boolean" use="optional"/>
  92. <xsd:attribute name="ruleSet" type="xsd:string" use="optional"/>
  93. <xsd:attribute name="begin" type="regex" use="optional"/>
  94. <xsd:attribute name="end" type="regex" use="optional"/>
  95. </xsd:complexType>
  96. </xsd:element>
  97. <xsd:complexType name="SpanBeginEnd">
  98. <xsd:simpleContent>
  99. <xsd:extension base="regexIgnorePatternWhitespace">
  100. <xsd:attributeGroup ref="ColorReferenceAttributes"/>
  101. </xsd:extension>
  102. </xsd:simpleContent>
  103. </xsd:complexType>
  104. <xsd:element name="Begin" type="SpanBeginEnd"/>
  105. <xsd:element name="End" type="SpanBeginEnd"/>
  106. <!-- Imports -->
  107. <xsd:element name="Import">
  108. <xsd:complexType>
  109. <xsd:attribute name="ruleSet" type="xsd:string" use="required"/>
  110. </xsd:complexType>
  111. </xsd:element>
  112. <!-- Rules -->
  113. <xsd:element name="Rule">
  114. <xsd:complexType>
  115. <xsd:simpleContent>
  116. <xsd:extension base="regexIgnorePatternWhitespace">
  117. <xsd:attributeGroup ref="ColorReferenceAttributes"/>
  118. </xsd:extension>
  119. </xsd:simpleContent>
  120. </xsd:complexType>
  121. </xsd:element>
  122. <!-- Rule set -->
  123. <xsd:element name="RuleSet">
  124. <xsd:complexType>
  125. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  126. <xsd:element ref="Keywords"/>
  127. <xsd:element ref="Span"/>
  128. <xsd:element ref="Import"/>
  129. <xsd:element ref="Rule"/>
  130. <xsd:any namespace="##other" processContents="lax" />
  131. </xsd:choice>
  132. <xsd:attribute name="name" type="xsd:string" use="optional" />
  133. <xsd:attribute name="ignoreCase" type="xsd:boolean" use="optional" />
  134. <xsd:anyAttribute namespace="##other" processContents="lax" />
  135. </xsd:complexType>
  136. </xsd:element>
  137. <!-- Main syntax definition -->
  138. <xsd:element name="SyntaxDefinition">
  139. <xsd:complexType>
  140. <xsd:choice minOccurs="1" maxOccurs="unbounded">
  141. <xsd:element ref="Property"/>
  142. <xsd:element ref="Color"/>
  143. <xsd:element ref="RuleSet"/>
  144. <xsd:any namespace="##other" processContents="lax" />
  145. </xsd:choice>
  146. <xsd:attribute name="name" type="xsd:string" use="optional" />
  147. <xsd:attribute name="extensions" type="xsd:string" use="optional" />
  148. <xsd:anyAttribute namespace="##other" processContents="lax" />
  149. </xsd:complexType>
  150. </xsd:element>
  151. </xsd:schema>