153 lines
4.9 KiB
XML
153 lines
4.9 KiB
XML
<?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>
|
|
|
|
<xsd:element name="Property">
|
|
<xsd:complexType>
|
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
<xsd:attribute name="value" type="xsd:string" use="required" />
|
|
</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="Property"/>
|
|
<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> |