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>