Warning, /frameworks/syntax-highlighting/data/schema/language.xsd is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!--
0003     SPDX-FileCopyrightText: 2001 Joseph Wenninger <jowenn@kde.org>
0004     SPDX-FileCopyrightText: 2002 Anders Lund <anders@alweb.dk>
0005     SPDX-FileCopyrightText: 2003 Simon Huerlimann <simon.huerlimann@access.unizh.ch>
0006     SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
0007     SPDX-FileCopyrightText: 2008 Wilbert Berendsen <info@wilbertberendsen.nl>
0008 
0009     This file describes the XML format used for syntax highlight descriptions
0010     for the Kate text editor (https://kate-editor.org), which is part of the
0011     KDE desktop environment (https://kde.org).
0012     You'll find the "Working with Syntax Highlighting" at
0013     https://docs.kde.org/stable5/en/kate/katepart/highlight.html
0014 
0015     You can validate your syntax files using "validatehl.sh yourSyntax.xml".
0016     This needs xmllint from the libxml2 XML library.
0017 
0018     In any case, the katehighlightingindexer will validate all files bundled
0019     with KTextEditor during compile time and fail on errors.
0020 
0021   TODO
0022     - find a more readable way for the - -dtdvalid stuff, it's just annoying
0023       xml comments don't allow it.
0024 -->
0025 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
0026   <!--
0027     Default Styles
0028     Allowed predefined default styles for itemData, available are:
0029       - dsNormal,   used for normal text
0030       - dsKeyword,  used for keywords
0031       - dsFunction, used for function calls
0032       - dsVariable, used for variables
0033       - dsControlFlow, used for control flow, e.g. if, then, else, continue, break
0034       - dsOperator, used for operators such as +, -, *, ::
0035       - dsBuiltIn,  used for built-in language classes and functions
0036       - dsExtension,used for extensions, such as boost, Qt
0037       - dsPreprocessor, used for preprocessor statements
0038       - dsAttribute,used for attributes, e.g. @override in java
0039 
0040       - dsChar,     used for a character
0041       - dsSpecialChar, used for escaped characters
0042       - dsString,   used for strings
0043       - dsVerbatimString, used for strings such as HERE docs
0044       - dsSpecialString, used for strings such as regular expressions or LaTeX math mode
0045       - dsImport,   used for includes, imports and modules
0046 
0047       - dsDataType, used for data types
0048       - dsDecVal,   used for decimal values
0049       - dsBaseN,    used for values with a base other than 10
0050       - dsFloat,    used for float values
0051       - dsConstant, used for language constants
0052 
0053       - dsComment,  used for comments
0054       - dsDocumentation, used for comments that are API documentation
0055       - dsAnnotation, used for annotation in comments, e.g. @param in doxygen
0056       - dsCommentVar, used for variables in comments, e.g. after @param in doxygen
0057       - dsRegionMarker, used for region markers
0058       - dsInformation, used for information in comments, e.g. @note in doxygen
0059       - dsWarning,  used for warnings in comments, e.g. @warning in doxygen
0060       - dsAlert,    used for warning messages such as TODO, WARNING in comments
0061 
0062       - dsOthers,   used for 'other' things
0063       - dsError,    used for error highlighting.
0064   -->
0065   <xs:simpleType name="defStyles">
0066     <xs:restriction base="xs:token">
0067       <xs:enumeration value="dsNormal"/>
0068       <xs:enumeration value="dsKeyword"/>
0069       <xs:enumeration value="dsFunction"/>
0070       <xs:enumeration value="dsVariable"/>
0071       <xs:enumeration value="dsControlFlow"/>
0072       <xs:enumeration value="dsOperator"/>
0073       <xs:enumeration value="dsBuiltIn"/>
0074       <xs:enumeration value="dsExtension"/>
0075       <xs:enumeration value="dsPreprocessor"/>
0076       <xs:enumeration value="dsAttribute"/>
0077       <xs:enumeration value="dsChar"/>
0078       <xs:enumeration value="dsSpecialChar"/>
0079       <xs:enumeration value="dsString"/>
0080       <xs:enumeration value="dsVerbatimString"/>
0081       <xs:enumeration value="dsSpecialString"/>
0082       <xs:enumeration value="dsImport"/>
0083       <xs:enumeration value="dsDataType"/>
0084       <xs:enumeration value="dsDecVal"/>
0085       <xs:enumeration value="dsBaseN"/>
0086       <xs:enumeration value="dsFloat"/>
0087       <xs:enumeration value="dsConstant"/>
0088       <xs:enumeration value="dsComment"/>
0089       <xs:enumeration value="dsDocumentation"/>
0090       <xs:enumeration value="dsAnnotation"/>
0091       <xs:enumeration value="dsCommentVar"/>
0092       <xs:enumeration value="dsRegionMarker"/>
0093       <xs:enumeration value="dsInformation"/>
0094       <xs:enumeration value="dsWarning"/>
0095       <xs:enumeration value="dsAlert"/>
0096       <xs:enumeration value="dsOthers"/>
0097       <xs:enumeration value="dsError"/>
0098     </xs:restriction>
0099   </xs:simpleType>
0100   <!--
0101     Char type
0102     A sequence of exactly 1 character
0103   -->
0104   <xs:simpleType name="char">
0105     <xs:restriction base="xs:string">
0106       <xs:length value="1"/>
0107     </xs:restriction>
0108   </xs:simpleType>
0109   <!--
0110     Language specification
0111       name:        The name of this syntax description. Used in the Highlightning Mode menu
0112       section:     The logical group to which this syntax description belongs. Used for sub menus
0113       extensions:  A file glob or pattern to decide for which documents to use this syntax description
0114       style:       The style that this highlighter provides. It is used through required-syntax-style by the indenters. [optional]
0115       mimetype:    A list of mimetypes to decide for which documents to use this syntax description [optional]
0116       version:     Version number of this syntax description
0117       kateversion: Kate version required for using this file
0118       casesensitive: Ignored but preserved to maintain compatibility in older versions of KF5.
0119       priority:    Priority of this language, if more than one are usable for the file [optional]
0120       author:      Name of author of this hl file [optional]
0121       license:     License for this hl file [optional]
0122       indenter:    Name of the Indenter to use for this highlighting mode per default, like "cstyle" [optional]
0123       hidden:      Should it be hidden in menu [boolean, optional, default=false]
0124   -->
0125   <xs:element name="language">
0126     <xs:complexType>
0127       <xs:sequence>
0128         <xs:element ref="highlighting"/>
0129         <xs:element minOccurs="0" ref="general"/>
0130         <xs:element minOccurs="0" ref="spellchecking"/>
0131       </xs:sequence>
0132       <xs:attribute name="name" use="required"/>
0133       <xs:attribute name="section" use="required" type="xs:NMTOKEN"/>
0134       <xs:attribute name="extensions" use="required"/>
0135       <xs:attribute name="version" use="required" type="xs:integer"/>
0136       <xs:attribute name="kateversion" use="required" type="xs:decimal"/>
0137       <xs:attribute name="style"/>
0138       <xs:attribute name="mimetype"/>
0139       <!-- always ignored, <keywords casesensitive> must be used -->
0140       <xs:attribute name="casesensitive" type="xs:boolean"/>
0141       <xs:attribute name="priority" type="xs:integer"/>
0142       <xs:attribute name="author"/>
0143       <xs:attribute name="license"/>
0144       <xs:attribute name="indenter"/>
0145       <xs:attribute name="hidden" type="xs:boolean"/>
0146     </xs:complexType>
0147   </xs:element>
0148   <!-- General options -->
0149   <xs:element name="general">
0150     <xs:complexType>
0151       <xs:choice minOccurs="0" maxOccurs="unbounded">
0152         <xs:element ref="folding"/>
0153         <xs:element ref="comments"/>
0154         <xs:element ref="keywords"/>
0155         <xs:element ref="emptyLines"/>
0156       </xs:choice>
0157     </xs:complexType>
0158   </xs:element>
0159   <!--
0160     List of folding
0161     indentationsensitive: If true, the code folding is indentation based.
0162   -->
0163   <xs:element name="folding">
0164     <xs:complexType>
0165       <xs:attribute name="indentationsensitive" type="xs:boolean"/>
0166     </xs:complexType>
0167   </xs:element>
0168   <!-- List of comments -->
0169   <xs:element name="comments">
0170     <xs:complexType>
0171       <xs:sequence>
0172         <xs:element maxOccurs="unbounded" ref="comment"/>
0173       </xs:sequence>
0174     </xs:complexType>
0175   </xs:element>
0176   <!--
0177     Comment specification
0178     name:         Type of this comment. Allowed are 'singleLine' and 'multiLine'
0179     start:        The comment starts with this string
0180     end:          The comment ends with this string [optional]
0181     region:       The region name of the foldable multiline comment. If you have
0182                   beginRegion="Comment" ... endRegion="Comment" you should use
0183                   region="Comment". This way uncomment works even if you do not
0184                   select all the text of the multiline comment.
0185     position:     only availalbe for type singleLine. Default is column0, to insert
0186                   the single line comment characters after the whitespaces
0187                   (= before the first non space) set position to "afterwhitespace"
0188   -->
0189   <xs:element name="comment">
0190     <xs:complexType>
0191       <xs:attribute name="name" use="required">
0192         <xs:simpleType>
0193           <xs:restriction base="xs:token">
0194             <xs:enumeration value="singleLine"/>
0195             <xs:enumeration value="multiLine"/>
0196           </xs:restriction>
0197         </xs:simpleType>
0198       </xs:attribute>
0199       <xs:attribute name="start" use="required"/>
0200       <xs:attribute name="end"/>
0201       <xs:attribute name="region"/>
0202       <xs:attribute name="position">
0203         <xs:simpleType>
0204           <xs:restriction base="xs:token">
0205             <xs:enumeration value="afterwhitespace"/>
0206           </xs:restriction>
0207         </xs:simpleType>
0208       </xs:attribute>
0209     </xs:complexType>
0210   </xs:element>
0211   <!--
0212     Keyword options
0213     casesensitive:        Whether keywords are matched case sensitive. [boolean, optional, default=true]
0214     weakDeliminator:      Add weak deliminators [optional, default: ""]
0215     additionalDeliminator: Add deliminators [optional]
0216     wordWrapDeliminator:  characters that are used to wrap long lines [optional]
0217 
0218   -->
0219   <xs:element name="keywords">
0220     <xs:complexType>
0221       <xs:attribute name="casesensitive" type="xs:boolean"/>
0222       <xs:attribute name="weakDeliminator"/>
0223       <xs:attribute name="additionalDeliminator"/>
0224       <xs:attribute name="wordWrapDeliminator"/>
0225     </xs:complexType>
0226   </xs:element>
0227   <!--
0228     Treat lines that match a given regular expression as empty line. This is
0229     needed for example in Python for comments (#...), as then the indentation
0230     based folding should ignore the line.
0231     This is only implemented for indentation based folding. If the folding
0232     is not indentation based, the emptyLines are not used.
0233   -->
0234   <xs:element name="emptyLines">
0235     <xs:complexType>
0236       <xs:sequence>
0237         <xs:element minOccurs="0" maxOccurs="unbounded" ref="emptyLine"/>
0238       </xs:sequence>
0239     </xs:complexType>
0240   </xs:element>
0241   <!--
0242     One empty line regular expression.
0243     regexpr:       The regular expression, example from python: ^\s*#.*$
0244     casesensitive: Sets, whether the regular expression match is performed case sesitive
0245   -->
0246   <xs:element name="emptyLine">
0247     <xs:complexType>
0248       <xs:attribute name="regexpr" use="required"/>
0249       <xs:attribute name="casesensitive" type="xs:boolean"/>
0250     </xs:complexType>
0251   </xs:element>
0252   <!-- Highlighting specification -->
0253   <xs:element name="highlighting">
0254     <xs:complexType>
0255       <xs:sequence>
0256         <xs:element minOccurs="0" maxOccurs="unbounded" ref="list"/>
0257         <xs:element ref="contexts"/>
0258         <xs:element ref="itemDatas"/>
0259       </xs:sequence>
0260     </xs:complexType>
0261   </xs:element>
0262   <!--
0263     List of items
0264     name:     Name of this list
0265   -->
0266   <xs:element name="list">
0267     <xs:complexType>
0268       <xs:choice minOccurs="0" maxOccurs="unbounded">
0269         <xs:element ref="item"/>
0270         <xs:element ref="include"/>
0271       </xs:choice>
0272       <xs:attribute name="name" use="required"/>
0273     </xs:complexType>
0274   </xs:element>
0275   <!--
0276     List item
0277     contains string used in <keyword>
0278   -->
0279   <xs:element name="item" type="xs:string"/>
0280   <!--
0281     List include
0282     contains a name of <keyword>
0283   -->
0284   <xs:element name="include" type="xs:string"/>
0285   <!-- List of contexts -->
0286   <xs:element name="contexts">
0287     <xs:complexType>
0288       <xs:sequence>
0289         <xs:element maxOccurs="unbounded" ref="context"/>
0290       </xs:sequence>
0291     </xs:complexType>
0292   </xs:element>
0293   <!--
0294     context specification
0295       name:             The name of this context specification. Used in '*Context' attributes [optional]
0296       attribute:        The name of the ItemData to be used for matching text
0297       lineEndContext:   Next context if end of line is encountered [optional, default='#stay']
0298       lineEmptyContext: Next context if an empty line is encountered [optional, default=value of lineEndContext]
0299       fallthrough:      Use a fallthrough context [optional]
0300                 deprecated since 5.62 but preserved to maintain compatibility in older versions of KF5
0301       fallthroughContext: Fall through to this context [optional, default='#stay']
0302       dynamic:          Dynamic context [boolean, optional]
0303                 deprecated since always but preserved to maintain compatibility in older versions of KF5
0304       noIndentationBasedFolding: Python uses indentation based folding. However, Python has parts where
0305             it does not use indentation based folding (e.g. for """ strings). In this case
0306             switch to an own context and set this attribute to true. Then the indentation
0307             based folding will ignore this parts and not change folding markers. [optional]
0308       stopEmptyLineContextSwitchLoop: Do not continue the context switching if an empty line is encountered. [boolean, optional, default=false]
0309   -->
0310   <xs:element name="context">
0311     <xs:complexType>
0312       <xs:choice minOccurs="0" maxOccurs="unbounded">
0313         <xs:element ref="keyword"/>
0314         <xs:element ref="Float"/>
0315         <xs:element ref="HlCOct"/>
0316         <xs:element ref="HlCHex"/>
0317         <xs:element ref="Int"/>
0318         <xs:element ref="DetectChar"/>
0319         <xs:element ref="Detect2Chars"/>
0320         <xs:element ref="AnyChar"/>
0321         <xs:element ref="StringDetect"/>
0322         <xs:element ref="WordDetect"/>
0323         <xs:element ref="RegExpr"/>
0324         <xs:element ref="LineContinue"/>
0325         <xs:element ref="HlCStringChar"/>
0326         <xs:element ref="RangeDetect"/>
0327         <xs:element ref="HlCChar"/>
0328         <xs:element ref="IncludeRules"/>
0329         <xs:element ref="DetectSpaces"/>
0330         <xs:element ref="DetectIdentifier"/>
0331       </xs:choice>
0332       <xs:attribute name="name"/>
0333       <xs:attribute name="attribute" use="required"/>
0334       <xs:attribute name="lineEndContext"/>
0335       <xs:attribute name="lineEmptyContext"/>
0336       <xs:attribute name="fallthrough">
0337         <xs:simpleType>
0338           <!-- always true since 5.62 -->
0339           <xs:restriction base="xs:token">
0340             <xs:enumeration value="1"/>
0341             <xs:enumeration value="true"/>
0342           </xs:restriction>
0343         </xs:simpleType>
0344       </xs:attribute>
0345       <xs:attribute name="fallthroughContext"/>
0346       <!-- always ignored -->
0347       <xs:attribute name="dynamic" type="xs:boolean"/>
0348       <xs:attribute name="noIndentationBasedFolding" type="xs:boolean"/>
0349       <!-- since 5.103 -->
0350       <xs:attribute name="stopEmptyLineContextSwitchLoop" type="xs:boolean"/>
0351     </xs:complexType>
0352   </xs:element>
0353   <!--
0354     Common attributes
0355     attribute:    The name of the ItemData to be used for matching text
0356     context:      The name of the context to go to when this rule matches
0357     beginRegion:  Begin a region of type beginRegion [optional]
0358     endRegion:    End a region of type endRegion [optional]
0359     firstNonSpace: should this rule only match at first non-space char in line?
0360     column: should this rule only match at given column in line (column == count of chars in front)
0361   -->
0362   <xs:attributeGroup name="commonAttributes">
0363     <xs:attribute name="attribute"/>
0364     <xs:attribute name="context"/>
0365     <xs:attribute name="beginRegion"/>
0366     <xs:attribute name="endRegion"/>
0367     <xs:attribute name="lookAhead" type="xs:boolean"/>
0368     <xs:attribute name="firstNonSpace" type="xs:boolean"/>
0369     <xs:attribute name="column" type="xs:integer"/>
0370   </xs:attributeGroup>
0371   <!--
0372     Detect members of a keyword list
0373       commonAttributes: Common attributes
0374       insensitive:      Is this list case-insensitive? [boolean, optional, see note]
0375       String:           Name of the list
0376       weakDeliminator:  Add weak deliminators [optional, see note]
0377       additionalDeliminator: Add deliminators [optional, see note]
0378 
0379       By default, case sensitivity is determined from <keywords casesensitive> in
0380       <general> (default=true), but can be overridden per-list with 'insensitive'.
0381 
0382       weakDeliminator and additionalDeliminator are accumulated to those defined in
0383       <keywords weakDeliminator additionalDeliminator> in <general>.
0384   -->
0385   <xs:element name="keyword">
0386     <xs:complexType>
0387       <xs:attributeGroup ref="commonAttributes"/>
0388       <xs:attribute name="insensitive" type="xs:boolean"/>
0389       <xs:attribute name="String" use="required"/>
0390       <xs:attribute name="weakDeliminator"/>
0391       <xs:attribute name="additionalDeliminator"/>
0392     </xs:complexType>
0393   </xs:element>
0394   <!--
0395     Detect a floating point number (as the regular expression: (\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?).
0396     commonAttributes: Common attributes
0397     weakDeliminator:  Add weak deliminators [optional]
0398     additionalDeliminator: Add deliminators [optional]
0399   -->
0400   <xs:element name="Float">
0401     <xs:complexType>
0402       <xs:attributeGroup ref="commonAttributes"/>
0403       <xs:attribute name="weakDeliminator"/>
0404       <xs:attribute name="additionalDeliminator"/>
0405     </xs:complexType>
0406   </xs:element>
0407   <!--
0408     Detect an octal number (as the regular expression: \b0[0-7]+).
0409     commonAttributes: Common attributes
0410     weakDeliminator:  Add weak deliminators [optional]
0411     additionalDeliminator: Add deliminators [optional]
0412   -->
0413   <xs:element name="HlCOct">
0414     <xs:complexType>
0415       <xs:attributeGroup ref="commonAttributes"/>
0416       <xs:attribute name="weakDeliminator"/>
0417       <xs:attribute name="additionalDeliminator"/>
0418     </xs:complexType>
0419   </xs:element>
0420   <!--
0421     Detect a hexadecimal number (as a regular expression: \b0[xX][0-9a-fA-F]+).
0422     commonAttributes: Common attributes
0423     weakDeliminator:  Add weak deliminators [optional]
0424     additionalDeliminator: Add deliminators [optional]
0425   -->
0426   <xs:element name="HlCHex">
0427     <xs:complexType>
0428       <xs:attributeGroup ref="commonAttributes"/>
0429       <xs:attribute name="weakDeliminator"/>
0430       <xs:attribute name="additionalDeliminator"/>
0431     </xs:complexType>
0432   </xs:element>
0433   <!--
0434     Detect C-style character. Characters enclosed in a tick (Example: 'c') which may be a simple character or an escaped character (as a regular expression: '(\\([abefnrtv"'?\\.]|x[0-9a-fA-F]{1,2}|[0-7]{1,3})|[^'])')
0435       commonAttributes: Common attributes
0436   -->
0437   <xs:element name="HlCChar">
0438     <xs:complexType>
0439       <xs:attributeGroup ref="commonAttributes"/>
0440     </xs:complexType>
0441   </xs:element>
0442   <!--
0443     Detect an integer number
0444     commonAttributes: Common attributes
0445     weakDeliminator:  Add weak deliminators [optional]
0446     additionalDeliminator: Add deliminators [optional]
0447   -->
0448   <xs:element name="Int">
0449     <xs:complexType>
0450       <xs:attributeGroup ref="commonAttributes"/>
0451       <xs:attribute name="weakDeliminator"/>
0452       <xs:attribute name="additionalDeliminator"/>
0453     </xs:complexType>
0454   </xs:element>
0455   <!--
0456     Detect a single character
0457     commonAttributes: Common attributes
0458     char:             The character to look for
0459     dynamic:          Uses 1 .. 9 as placeholders for dynamic arguments (in fact, first char of arg...) [boolean, optional, default=false]
0460   -->
0461   <xs:element name="DetectChar">
0462     <xs:complexType>
0463       <xs:attributeGroup ref="commonAttributes"/>
0464       <xs:attribute name="char" type="char" use="required"/>
0465       <xs:attribute name="dynamic" type="xs:boolean"/>
0466     </xs:complexType>
0467   </xs:element>
0468   <!--
0469     Detect two characters
0470     commonAttributes: Common attributes
0471     char:             The first character
0472     char1:            The second character
0473   -->
0474   <xs:element name="Detect2Chars">
0475     <xs:complexType>
0476       <xs:attributeGroup ref="commonAttributes"/>
0477       <xs:attribute name="char" type="char" use="required"/>
0478       <xs:attribute name="char1" type="char" use="required"/>
0479     </xs:complexType>
0480   </xs:element>
0481   <!--
0482     Detect one character of a set of specified characters.
0483       commonAttributes: Common attributes
0484       String:           The set of characters
0485   -->
0486   <xs:element name="AnyChar">
0487     <xs:complexType>
0488       <xs:attributeGroup ref="commonAttributes"/>
0489       <xs:attribute name="String" use="required"/>
0490     </xs:complexType>
0491   </xs:element>
0492   <!--
0493     Detect a string
0494       commonAttributes: Common attributes
0495       String:           The string to look for
0496       insensitive:      Whether the string is matched case INsensitive. [boolean, optional, default=false]
0497       dynamic:          Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
0498   -->
0499   <xs:element name="StringDetect">
0500     <xs:complexType>
0501       <xs:attributeGroup ref="commonAttributes"/>
0502       <xs:attribute name="String" use="required"/>
0503       <xs:attribute name="insensitive" type="xs:boolean"/>
0504       <xs:attribute name="dynamic" type="xs:boolean"/>
0505     </xs:complexType>
0506   </xs:element>
0507   <!--
0508     Detect a word, i.e. a string at word boundaries
0509       commonAttributes: Common attributes
0510       String:           The string to look for
0511       insensitive:      Whether the string is matched case INsensitive. [boolean, optional, default=false]
0512       weakDeliminator:  Add weak deliminators [optional]
0513       additionalDeliminator: Add deliminators [optional]
0514   -->
0515   <xs:element name="WordDetect">
0516     <xs:complexType>
0517       <xs:attributeGroup ref="commonAttributes"/>
0518       <xs:attribute name="String" use="required"/>
0519       <xs:attribute name="insensitive" type="xs:boolean"/>
0520       <xs:attribute name="weakDeliminator"/>
0521       <xs:attribute name="additionalDeliminator"/>
0522     </xs:complexType>
0523   </xs:element>
0524   <!--
0525     Detect a match of a regular expression
0526     commonAttributes: Common attributes
0527     String:           The regular expression pattern
0528     insensitive:      Whether the text is matched case INsensitive. [boolean, optional, default=false]
0529     minimal:          Wheather to use minimal matching for wild cards in the pattern [boolean, optional, default=false]
0530     dynamic:          Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
0531   -->
0532   <xs:element name="RegExpr">
0533     <xs:complexType>
0534       <xs:attributeGroup ref="commonAttributes"/>
0535       <xs:attribute name="String" use="required"/>
0536       <xs:attribute name="insensitive" type="xs:boolean"/>
0537       <xs:attribute name="minimal" type="xs:boolean"/>
0538       <xs:attribute name="dynamic" type="xs:boolean"/>
0539     </xs:complexType>
0540   </xs:element>
0541   <!--
0542     Detect a line continuation
0543     commonAttributes: Common attributes
0544     char:             The char marking the end of line [char,  optional,  default='\\']
0545   -->
0546   <xs:element name="LineContinue">
0547     <xs:complexType>
0548       <xs:attributeGroup ref="commonAttributes"/>
0549       <xs:attribute name="char" type="char"/>
0550     </xs:complexType>
0551   </xs:element>
0552   <!--
0553     Detect a C-style escaped character (as a regular expression: \\([abefnrtv"'?\\.]|x[0-9a-fA-F]{1,2}|[0-7]{1,3})).
0554       commonAttributes: Common attributes
0555   -->
0556   <xs:element name="HlCStringChar">
0557     <xs:complexType>
0558       <xs:attributeGroup ref="commonAttributes"/>
0559     </xs:complexType>
0560   </xs:element>
0561   <!--
0562     Detect a string with defined start and end characters.
0563     commonAttributes: Common attributes
0564     char:             The character starting the range
0565     char1:            The character terminating the range
0566   -->
0567   <xs:element name="RangeDetect">
0568     <xs:complexType>
0569       <xs:attributeGroup ref="commonAttributes"/>
0570       <xs:attribute name="char" type="char" use="required"/>
0571       <xs:attribute name="char1" type="char" use="required"/>
0572     </xs:complexType>
0573   </xs:element>
0574   <!--
0575     Include Rules of another context
0576     context:             The name of the context to include
0577     includeAttrib:       If this is true, the host context of the IncludeRules
0578                          will be given the attribute of the source context
0579   -->
0580   <xs:element name="IncludeRules">
0581     <xs:complexType>
0582       <xs:attribute name="context" use="required"/>
0583       <xs:attribute name="includeAttrib" type="xs:boolean"/>
0584     </xs:complexType>
0585   </xs:element>
0586   <!-- Detect all following Spaces -->
0587   <xs:element name="DetectSpaces">
0588     <xs:complexType>
0589       <xs:attributeGroup ref="commonAttributes"/>
0590     </xs:complexType>
0591   </xs:element>
0592   <!-- Detect an Identifier ( == LETTER(LETTER|NUMBER|_)*) -->
0593   <xs:element name="DetectIdentifier">
0594     <xs:complexType>
0595       <xs:attributeGroup ref="commonAttributes"/>
0596     </xs:complexType>
0597   </xs:element>
0598   <!-- List of attributes -->
0599   <xs:element name="itemDatas">
0600     <xs:complexType>
0601       <xs:sequence>
0602         <xs:element maxOccurs="unbounded" ref="itemData"/>
0603       </xs:sequence>
0604     </xs:complexType>
0605   </xs:element>
0606   <!--
0607     Attribute specification
0608     name          CDATA   #REQUIRED       The name of this attribute
0609     defStyleNum   CDATA   #REQUIRED       The index of the default style to use
0610     color         CDATA   #IMPLIED        Color for this style, either a hex triplet, a name or some other format recognized by Qt [optional]
0611     selColor      CDATA   #IMPLIED        The color for this style when text is selected [optional]
0612     italic        CDATA   #IMPLIED        Whether this attribute should be rendered using an italic typeface [optional, boolean, default=false]
0613     bold          CDATA   #IMPLIED        Whether this attribute should be renederd using a bold typeface [optional, boolean, default=false]
0614     underline     CDATA   #IMPLIED        Whether this attribute should be underlined [optional, boolean, default=false]
0615     strikeOut     CDATA   #IMPLIED        Whether this attribute should be striked out [optional, boolean, default=false]
0616     backgroundColor    CDATA #IMPLIED     The background color for this style [optional]
0617     selBackgroundColor CDATA #IMPLIED     The background color for this style when text is selected [optional]
0618     spellChecking      CDATA #IMPLIED     Whether this attribute should be spell checked [optional, boolean, default=true]
0619   -->
0620   <xs:element name="itemData">
0621     <xs:complexType>
0622       <xs:attribute name="name" use="required"/>
0623       <xs:attribute name="defStyleNum" use="required" type="defStyles"/>
0624       <xs:attribute name="color"/>
0625       <xs:attribute name="selColor"/>
0626       <xs:attribute name="italic" type="xs:boolean"/>
0627       <xs:attribute name="bold" type="xs:boolean"/>
0628       <xs:attribute name="underline" type="xs:boolean"/>
0629       <xs:attribute name="strikeOut" type="xs:boolean"/>
0630       <xs:attribute name="backgroundColor"/>
0631       <xs:attribute name="selBackgroundColor"/>
0632       <xs:attribute name="spellChecking" type="xs:boolean"/>
0633     </xs:complexType>
0634   </xs:element>
0635   <!-- Spellchecking specification -->
0636   <xs:element name="spellchecking">
0637     <xs:complexType>
0638       <xs:sequence>
0639         <xs:element minOccurs="0" ref="encodings"/>
0640       </xs:sequence>
0641     </xs:complexType>
0642   </xs:element>
0643   <!-- List of character encodings -->
0644   <xs:element name="encodings">
0645     <xs:complexType>
0646       <xs:sequence>
0647         <xs:element maxOccurs="unbounded" ref="encoding"/>
0648       </xs:sequence>
0649     </xs:complexType>
0650   </xs:element>
0651   <!--
0652     Encoding specification
0653     sequence       CDATA        #REQUIRED  Character sequence of the encoding; must not contain new-line characters, i.e. \n or \r
0654     character      CDATA        #IMPLIED   Encoded character; must be of length 1
0655     ignored        (%boolean;)  #IMPLIED   If true, then the encoding sequence is ignored for spellchecking
0656   -->
0657   <xs:element name="encoding">
0658     <xs:complexType>
0659       <xs:attribute name="string" use="required"/>
0660       <xs:attribute name="char" type="char"/>
0661       <xs:attribute name="ignored" type="xs:boolean"/>
0662     </xs:complexType>
0663   </xs:element>
0664 </xs:schema>