mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.6 KiB
145 lines
4.6 KiB
<?xml version="1.0" encoding="utf-8"?> |
|
<xsd:schema targetNamespace="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
|
<!-- Font Weight --> |
|
<xsd:simpleType name="FontWeight"> |
|
<xsd:union> |
|
<xsd:simpleType> |
|
<xsd:restriction base="xsd:integer"> |
|
<xsd:minInclusive value="1"/> |
|
<xsd:maxInclusive value="999"/> |
|
</xsd:restriction> |
|
</xsd:simpleType> |
|
<xsd:simpleType> |
|
<xsd:restriction base="xsd:string"> |
|
<xsd:enumeration value="bold"/> |
|
<xsd:enumeration value="normal"/> |
|
<xsd:enumeration value="regular"/> |
|
<!-- should we support other font weigth names? --> |
|
</xsd:restriction> |
|
</xsd:simpleType> |
|
</xsd:union> |
|
</xsd:simpleType> |
|
|
|
<!-- Font Style --> |
|
<xsd:simpleType name="FontStyle"> |
|
<xsd:restriction base="xsd:string"> |
|
<xsd:enumeration value="italic"/> |
|
<xsd:enumeration value="normal"/> |
|
<xsd:enumeration value="oblique"/> |
|
</xsd:restriction> |
|
</xsd:simpleType> |
|
|
|
<!-- Color --> |
|
<xsd:attributeGroup name="ColorAttributes"> |
|
<xsd:attribute name="foreground" type="xsd:string" use="optional" /> |
|
<xsd:attribute name="background" type="xsd:string" use="optional" /> |
|
<xsd:attribute name="fontWeight" type="FontWeight" use="optional" /> |
|
<xsd:attribute name="fontStyle" type="FontStyle" use="optional" /> |
|
</xsd:attributeGroup> |
|
|
|
<xsd:attributeGroup name="ColorReferenceAttributes"> |
|
<xsd:attributeGroup ref="ColorAttributes" /> |
|
<xsd:attribute name="color" type="xsd:string" use="optional" /> |
|
</xsd:attributeGroup> |
|
|
|
<xsd:element name="Color"> |
|
<xsd:complexType> |
|
<xsd:attribute name="name" type="xsd:string" use="required" /> |
|
<xsd:attribute name="exampleText" type="xsd:string" use="optional" /> |
|
<xsd:attributeGroup ref="ColorAttributes"/> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<!-- Regular expression --> |
|
<xsd:simpleType name="regex"> |
|
<xsd:restriction base="xsd:string"/> |
|
</xsd:simpleType> |
|
|
|
<xsd:simpleType name="regexIgnorePatternWhitespace"> |
|
<xsd:restriction base="xsd:string"/> |
|
</xsd:simpleType> |
|
|
|
<!-- Keywords --> |
|
<xsd:element name="Keywords"> |
|
<xsd:complexType> |
|
<xsd:sequence> |
|
<xsd:element ref="Word" minOccurs="1" maxOccurs="unbounded"/> |
|
</xsd:sequence> |
|
<xsd:attributeGroup ref="ColorReferenceAttributes"/> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<xsd:element name="Word" type="xsd:string"/> |
|
|
|
<!-- Spans --> |
|
<xsd:element name="Span"> |
|
<xsd:complexType> |
|
<xsd:sequence> |
|
<xsd:element ref="Begin" minOccurs="0" maxOccurs="1"/> |
|
<xsd:element ref="End" minOccurs="0" maxOccurs="1"/> |
|
<xsd:element ref="RuleSet" minOccurs="0" maxOccurs="1"/> |
|
</xsd:sequence> |
|
|
|
<xsd:attributeGroup ref="ColorReferenceAttributes"/> |
|
<xsd:attribute name="multiline" type="xsd:boolean" use="optional"/> |
|
<xsd:attribute name="ruleSet" type="xsd:string" use="optional"/> |
|
<xsd:attribute name="begin" type="regex" use="optional"/> |
|
<xsd:attribute name="end" type="regex" use="optional"/> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<xsd:complexType name="SpanBeginEnd"> |
|
<xsd:simpleContent> |
|
<xsd:extension base="regexIgnorePatternWhitespace"> |
|
<xsd:attributeGroup ref="ColorReferenceAttributes"/> |
|
</xsd:extension> |
|
</xsd:simpleContent> |
|
</xsd:complexType> |
|
|
|
<xsd:element name="Begin" type="SpanBeginEnd"/> |
|
<xsd:element name="End" type="SpanBeginEnd"/> |
|
|
|
<!-- Imports --> |
|
<xsd:element name="Import"> |
|
<xsd:complexType> |
|
<xsd:attribute name="ruleSet" type="xsd:string" use="required"/> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<!-- Rules --> |
|
<xsd:element name="Rule"> |
|
<xsd:complexType> |
|
<xsd:simpleContent> |
|
<xsd:extension base="regexIgnorePatternWhitespace"> |
|
<xsd:attributeGroup ref="ColorReferenceAttributes"/> |
|
</xsd:extension> |
|
</xsd:simpleContent> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<!-- Rule set --> |
|
<xsd:element name="RuleSet"> |
|
<xsd:complexType> |
|
<xsd:choice minOccurs="0" maxOccurs="unbounded"> |
|
<xsd:element ref="Keywords"/> |
|
<xsd:element ref="Span"/> |
|
<xsd:element ref="Import"/> |
|
<xsd:element ref="Rule"/> |
|
</xsd:choice> |
|
<xsd:attribute name="name" type="xsd:string" use="optional" /> |
|
<xsd:attribute name="ignoreCase" type="xsd:boolean" use="optional" /> |
|
</xsd:complexType> |
|
</xsd:element> |
|
|
|
<!-- Main syntax definition --> |
|
<xsd:element name="SyntaxDefinition"> |
|
<xsd:complexType> |
|
<xsd:choice minOccurs="1" maxOccurs="unbounded"> |
|
<xsd:element ref="Color"/> |
|
<xsd:element ref="RuleSet"/> |
|
</xsd:choice> |
|
<xsd:attribute name="name" type="xsd:string" use="optional" /> |
|
<xsd:attribute name="extensions" type="xsd:string" use="optional" /> |
|
</xsd:complexType> |
|
</xsd:element> |
|
</xsd:schema> |