1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: 2001 Joseph Wenninger <jowenn@kde.org>
SPDX-FileCopyrightText: 2002 Anders Lund <anders@alweb.dk>
SPDX-FileCopyrightText: 2003 Simon Huerlimann <simon.huerlimann@access.unizh.ch>
SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
SPDX-FileCopyrightText: 2008 Wilbert Berendsen <info@wilbertberendsen.nl>
This file describes the XML format used for syntax highlight descriptions
for the Kate text editor (https://kate-editor.org), which is part of the
KDE desktop environment (https://kde.org).
You'll find the "Working with Syntax Highlighting" at
https://docs.kde.org/stable5/en/kate/katepart/highlight.html
You can validate your syntax files using "validatehl.sh yourSyntax.xml".
This needs xmllint from the libxml2 XML library.
In any case, the katehighlightingindexer will validate all files bundled
with KTextEditor during compile time and fail on errors.
TODO
- find a more readable way for the - -dtdvalid stuff, it's just annoying
xml comments don't allow it.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!--
Default Styles
Allowed predefined default styles for itemData, available are:
- dsNormal, used for normal text
- dsKeyword, used for keywords
- dsFunction, used for function calls
- dsVariable, used for variables
- dsControlFlow, used for control flow, e.g. if, then, else, continue, break
- dsOperator, used for operators such as +, -, *, ::
- dsBuiltIn, used for built-in language classes and functions
- dsExtension,used for extensions, such as boost, Qt
- dsPreprocessor, used for preprocessor statements
- dsAttribute,used for attributes, e.g. @override in java
- dsChar, used for a character
- dsSpecialChar, used for escaped characters
- dsString, used for strings
- dsVerbatimString, used for strings such as HERE docs
- dsSpecialString, used for strings such as regular expressions or LaTeX math mode
- dsImport, used for includes, imports and modules
- dsDataType, used for data types
- dsDecVal, used for decimal values
- dsBaseN, used for values with a base other than 10
- dsFloat, used for float values
- dsConstant, used for language constants
- dsComment, used for comments
- dsDocumentation, used for comments that are API documentation
- dsAnnotation, used for annotation in comments, e.g. @param in doxygen
- dsCommentVar, used for variables in comments, e.g. after @param in doxygen
- dsRegionMarker, used for region markers
- dsInformation, used for information in comments, e.g. @note in doxygen
- dsWarning, used for warnings in comments, e.g. @warning in doxygen
- dsAlert, used for warning messages such as TODO, WARNING in comments
- dsOthers, used for 'other' things
- dsError, used for error highlighting.
-->
<xs:simpleType name="defStyles">
<xs:restriction base="xs:token">
<xs:enumeration value="dsNormal"/>
<xs:enumeration value="dsKeyword"/>
<xs:enumeration value="dsFunction"/>
<xs:enumeration value="dsVariable"/>
<xs:enumeration value="dsControlFlow"/>
<xs:enumeration value="dsOperator"/>
<xs:enumeration value="dsBuiltIn"/>
<xs:enumeration value="dsExtension"/>
<xs:enumeration value="dsPreprocessor"/>
<xs:enumeration value="dsAttribute"/>
<xs:enumeration value="dsChar"/>
<xs:enumeration value="dsSpecialChar"/>
<xs:enumeration value="dsString"/>
<xs:enumeration value="dsVerbatimString"/>
<xs:enumeration value="dsSpecialString"/>
<xs:enumeration value="dsImport"/>
<xs:enumeration value="dsDataType"/>
<xs:enumeration value="dsDecVal"/>
<xs:enumeration value="dsBaseN"/>
<xs:enumeration value="dsFloat"/>
<xs:enumeration value="dsConstant"/>
<xs:enumeration value="dsComment"/>
<xs:enumeration value="dsDocumentation"/>
<xs:enumeration value="dsAnnotation"/>
<xs:enumeration value="dsCommentVar"/>
<xs:enumeration value="dsRegionMarker"/>
<xs:enumeration value="dsInformation"/>
<xs:enumeration value="dsWarning"/>
<xs:enumeration value="dsAlert"/>
<xs:enumeration value="dsOthers"/>
<xs:enumeration value="dsError"/>
</xs:restriction>
</xs:simpleType>
<!--
Char type
A sequence of exactly 1 character
-->
<xs:simpleType name="char">
<xs:restriction base="xs:string">
<xs:length value="1"/>
</xs:restriction>
</xs:simpleType>
<!--
Language specification
name: The name of this syntax description. Used in the Highlightning Mode menu
alternativeNames: A list of alternative names to match the language on. [optional]
section: The logical group to which this syntax description belongs. Used for sub menus
extensions: A file glob or pattern to decide for which documents to use this syntax description
style: The style that this highlighter provides. It is used through required-syntax-style by the indenters. [optional]
mimetype: A list of mimetypes to decide for which documents to use this syntax description [optional]
version: Version number of this syntax description
kateversion: Kate version required for using this file
casesensitive: Ignored but preserved to maintain compatibility in older versions of KF5.
priority: Priority of this language, if more than one are usable for the file [optional]
author: Name of author of this hl file [optional]
license: License for this hl file [optional]
indenter: Name of the Indenter to use for this highlighting mode per default, like "cstyle" [optional]
hidden: Should it be hidden in menu [boolean, optional, default=false]
-->
<xs:element name="language">
<xs:complexType>
<xs:sequence>
<xs:element ref="highlighting"/>
<xs:element minOccurs="0" ref="general"/>
<xs:element minOccurs="0" ref="spellchecking"/>
</xs:sequence>
<xs:attribute name="name" use="required"/>
<xs:attribute name="alternativeNames"/>
<xs:attribute name="section" use="required" type="xs:NMTOKEN"/>
<xs:attribute name="extensions" use="required"/>
<xs:attribute name="version" use="required" type="xs:integer"/>
<xs:attribute name="kateversion" use="required" type="xs:decimal"/>
<xs:attribute name="style"/>
<xs:attribute name="mimetype"/>
<!-- always ignored, <keywords casesensitive> must be used -->
<xs:attribute name="casesensitive" type="xs:boolean"/>
<xs:attribute name="priority" type="xs:integer"/>
<xs:attribute name="author"/>
<xs:attribute name="license"/>
<xs:attribute name="indenter"/>
<xs:attribute name="hidden" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- General options -->
<xs:element name="general">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="folding"/>
<xs:element ref="comments"/>
<xs:element ref="keywords"/>
<xs:element ref="emptyLines"/>
</xs:choice>
</xs:complexType>
</xs:element>
<!--
List of folding
indentationsensitive: If true, the code folding is indentation based.
-->
<xs:element name="folding">
<xs:complexType>
<xs:attribute name="indentationsensitive" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- List of comments -->
<xs:element name="comments">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="comment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Comment specification
name: Type of this comment. Allowed are 'singleLine' and 'multiLine'
start: The comment starts with this string
end: The comment ends with this string [optional]
region: The region name of the foldable multiline comment. If you have
beginRegion="Comment" ... endRegion="Comment" you should use
region="Comment". This way uncomment works even if you do not
select all the text of the multiline comment.
position: only availalbe for type singleLine. Default is column0, to insert
the single line comment characters after the whitespaces
(= before the first non space) set position to "afterwhitespace"
-->
<xs:element name="comment">
<xs:complexType>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="singleLine"/>
<xs:enumeration value="multiLine"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="start" use="required"/>
<xs:attribute name="end"/>
<xs:attribute name="region"/>
<xs:attribute name="position">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="afterwhitespace"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<!--
Keyword options
casesensitive: Whether keywords are matched case sensitive. [boolean, optional, default=true]
weakDeliminator: Add weak deliminators [optional, default: ""]
additionalDeliminator: Add deliminators [optional]
wordWrapDeliminator: characters that are used to wrap long lines [optional]
-->
<xs:element name="keywords">
<xs:complexType>
<xs:attribute name="casesensitive" type="xs:boolean"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
<xs:attribute name="wordWrapDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Treat lines that match a given regular expression as empty line. This is
needed for example in Python for comments (#...), as then the indentation
based folding should ignore the line.
This is only implemented for indentation based folding. If the folding
is not indentation based, the emptyLines are not used.
-->
<xs:element name="emptyLines">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="emptyLine"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
One empty line regular expression.
regexpr: The regular expression, example from python: ^\s*#.*$
casesensitive: Sets, whether the regular expression match is performed case sesitive
-->
<xs:element name="emptyLine">
<xs:complexType>
<xs:attribute name="regexpr" use="required"/>
<xs:attribute name="casesensitive" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- Highlighting specification -->
<xs:element name="highlighting">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="list"/>
<xs:element ref="contexts"/>
<xs:element ref="itemDatas"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
List of items
name: Name of this list
-->
<xs:element name="list">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="item"/>
<xs:element ref="include"/>
</xs:choice>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:element>
<!--
List item
contains string used in <keyword>
-->
<xs:element name="item" type="xs:string"/>
<!--
List include
contains a name of <keyword>
-->
<xs:element name="include" type="xs:string"/>
<!-- List of contexts -->
<xs:element name="contexts">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="context"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
context specification
name: The name of this context specification. Used in '*Context' attributes [optional]
attribute: The name of the ItemData to be used for matching text
lineEndContext: Next context if end of line is encountered [optional, default='#stay']
lineEmptyContext: Next context if an empty line is encountered [optional, default=value of lineEndContext]
fallthrough: Use a fallthrough context [optional]
deprecated since 5.62 but preserved to maintain compatibility in older versions of KF5
fallthroughContext: Fall through to this context [optional, default='#stay']
dynamic: Dynamic context [boolean, optional]
deprecated since always but preserved to maintain compatibility in older versions of KF5
noIndentationBasedFolding: Python uses indentation based folding. However, Python has parts where
it does not use indentation based folding (e.g. for """ strings). In this case
switch to an own context and set this attribute to true. Then the indentation
based folding will ignore this parts and not change folding markers. [optional]
stopEmptyLineContextSwitchLoop: Do not continue the context switching if an empty line is encountered. [boolean, optional, default=false]
-->
<xs:element name="context">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="keyword"/>
<xs:element ref="Float"/>
<xs:element ref="HlCOct"/>
<xs:element ref="HlCHex"/>
<xs:element ref="Int"/>
<xs:element ref="DetectChar"/>
<xs:element ref="Detect2Chars"/>
<xs:element ref="AnyChar"/>
<xs:element ref="StringDetect"/>
<xs:element ref="WordDetect"/>
<xs:element ref="RegExpr"/>
<xs:element ref="LineContinue"/>
<xs:element ref="HlCStringChar"/>
<xs:element ref="RangeDetect"/>
<xs:element ref="HlCChar"/>
<xs:element ref="IncludeRules"/>
<xs:element ref="DetectSpaces"/>
<xs:element ref="DetectIdentifier"/>
</xs:choice>
<xs:attribute name="name"/>
<xs:attribute name="attribute" use="required"/>
<xs:attribute name="lineEndContext"/>
<xs:attribute name="lineEmptyContext"/>
<xs:attribute name="fallthrough">
<xs:simpleType>
<!-- always true since 5.62 -->
<xs:restriction base="xs:token">
<xs:enumeration value="1"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="fallthroughContext"/>
<!-- always ignored -->
<xs:attribute name="dynamic" type="xs:boolean"/>
<xs:attribute name="noIndentationBasedFolding" type="xs:boolean"/>
<!-- since 5.103 -->
<xs:attribute name="stopEmptyLineContextSwitchLoop" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!--
Common attributes
attribute: The name of the ItemData to be used for matching text
context: The name of the context to go to when this rule matches
beginRegion: Begin a region of type beginRegion [optional]
endRegion: End a region of type endRegion [optional]
firstNonSpace: should this rule only match at first non-space char in line?
column: should this rule only match at given column in line (column == count of chars in front)
-->
<xs:attributeGroup name="commonAttributes">
<xs:attribute name="attribute"/>
<xs:attribute name="context"/>
<xs:attribute name="beginRegion"/>
<xs:attribute name="endRegion"/>
<xs:attribute name="lookAhead" type="xs:boolean"/>
<xs:attribute name="firstNonSpace" type="xs:boolean"/>
<xs:attribute name="column" type="xs:integer"/>
</xs:attributeGroup>
<!--
Detect members of a keyword list
commonAttributes: Common attributes
insensitive: Is this list case-insensitive? [boolean, optional, see note]
String: Name of the list
weakDeliminator: Add weak deliminators [optional, see note]
additionalDeliminator: Add deliminators [optional, see note]
By default, case sensitivity is determined from <keywords casesensitive> in
<general> (default=true), but can be overridden per-list with 'insensitive'.
weakDeliminator and additionalDeliminator are accumulated to those defined in
<keywords weakDeliminator additionalDeliminator> in <general>.
-->
<xs:element name="keyword">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="insensitive" type="xs:boolean"/>
<xs:attribute name="String" use="required"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Detect a floating point number (as the regular expression: (\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?).
commonAttributes: Common attributes
weakDeliminator: Add weak deliminators [optional]
additionalDeliminator: Add deliminators [optional]
-->
<xs:element name="Float">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Detect an octal number (as the regular expression: \b0[0-7]+).
commonAttributes: Common attributes
weakDeliminator: Add weak deliminators [optional]
additionalDeliminator: Add deliminators [optional]
-->
<xs:element name="HlCOct">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Detect a hexadecimal number (as a regular expression: \b0[xX][0-9a-fA-F]+).
commonAttributes: Common attributes
weakDeliminator: Add weak deliminators [optional]
additionalDeliminator: Add deliminators [optional]
-->
<xs:element name="HlCHex">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
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})|[^'])')
commonAttributes: Common attributes
-->
<xs:element name="HlCChar">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>
<!--
Detect an integer number
commonAttributes: Common attributes
weakDeliminator: Add weak deliminators [optional]
additionalDeliminator: Add deliminators [optional]
-->
<xs:element name="Int">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Detect a single character
commonAttributes: Common attributes
char: The character to look for
dynamic: Uses 1 .. 9 as placeholders for dynamic arguments (in fact, first char of arg...) [boolean, optional, default=false]
-->
<xs:element name="DetectChar">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="char" type="char" use="required"/>
<xs:attribute name="dynamic" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!--
Detect two characters
commonAttributes: Common attributes
char: The first character
char1: The second character
-->
<xs:element name="Detect2Chars">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="char" type="char" use="required"/>
<xs:attribute name="char1" type="char" use="required"/>
</xs:complexType>
</xs:element>
<!--
Detect one character of a set of specified characters.
commonAttributes: Common attributes
String: The set of characters
-->
<xs:element name="AnyChar">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="String" use="required"/>
</xs:complexType>
</xs:element>
<!--
Detect a string
commonAttributes: Common attributes
String: The string to look for
insensitive: Whether the string is matched case INsensitive. [boolean, optional, default=false]
dynamic: Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
-->
<xs:element name="StringDetect">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="String" use="required"/>
<xs:attribute name="insensitive" type="xs:boolean"/>
<xs:attribute name="dynamic" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!--
Detect a word, i.e. a string at word boundaries
commonAttributes: Common attributes
String: The string to look for
insensitive: Whether the string is matched case INsensitive. [boolean, optional, default=false]
weakDeliminator: Add weak deliminators [optional]
additionalDeliminator: Add deliminators [optional]
-->
<xs:element name="WordDetect">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="String" use="required"/>
<xs:attribute name="insensitive" type="xs:boolean"/>
<xs:attribute name="weakDeliminator"/>
<xs:attribute name="additionalDeliminator"/>
</xs:complexType>
</xs:element>
<!--
Detect a match of a regular expression
commonAttributes: Common attributes
String: The regular expression pattern
insensitive: Whether the text is matched case INsensitive. [boolean, optional, default=false]
minimal: Wheather to use minimal matching for wild cards in the pattern [boolean, optional, default=false]
dynamic: Uses %1 .. %9 as placeholders for dynamic arguments [boolean, optional, default=false]
-->
<xs:element name="RegExpr">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="String" use="required"/>
<xs:attribute name="insensitive" type="xs:boolean"/>
<xs:attribute name="minimal" type="xs:boolean"/>
<xs:attribute name="dynamic" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!--
Detect a line continuation
commonAttributes: Common attributes
char: The char marking the end of line [char, optional, default='\\']
-->
<xs:element name="LineContinue">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="char" type="char"/>
</xs:complexType>
</xs:element>
<!--
Detect a C-style escaped character (as a regular expression: \\([abefnrtv"'?\\.]|x[0-9a-fA-F]{1,2}|[0-7]{1,3})).
commonAttributes: Common attributes
-->
<xs:element name="HlCStringChar">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>
<!--
Detect a string with defined start and end characters.
commonAttributes: Common attributes
char: The character starting the range
char1: The character terminating the range
-->
<xs:element name="RangeDetect">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
<xs:attribute name="char" type="char" use="required"/>
<xs:attribute name="char1" type="char" use="required"/>
</xs:complexType>
</xs:element>
<!--
Include Rules of another context
context: The name of the context to include
includeAttrib: If this is true, the host context of the IncludeRules
will be given the attribute of the source context
-->
<xs:element name="IncludeRules">
<xs:complexType>
<xs:attribute name="context" use="required"/>
<xs:attribute name="includeAttrib" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- Detect all following Spaces -->
<xs:element name="DetectSpaces">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>
<!-- Detect an Identifier ( == LETTER(LETTER|NUMBER|_)*) -->
<xs:element name="DetectIdentifier">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>
<!-- List of attributes -->
<xs:element name="itemDatas">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="itemData"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Attribute specification
name CDATA #REQUIRED The name of this attribute
defStyleNum CDATA #REQUIRED The index of the default style to use
color CDATA #IMPLIED Color for this style, either a hex triplet, a name or some other format recognized by Qt [optional]
selColor CDATA #IMPLIED The color for this style when text is selected [optional]
italic CDATA #IMPLIED Whether this attribute should be rendered using an italic typeface [optional, boolean, default=false]
bold CDATA #IMPLIED Whether this attribute should be renederd using a bold typeface [optional, boolean, default=false]
underline CDATA #IMPLIED Whether this attribute should be underlined [optional, boolean, default=false]
strikeOut CDATA #IMPLIED Whether this attribute should be striked out [optional, boolean, default=false]
backgroundColor CDATA #IMPLIED The background color for this style [optional]
selBackgroundColor CDATA #IMPLIED The background color for this style when text is selected [optional]
spellChecking CDATA #IMPLIED Whether this attribute should be spell checked [optional, boolean, default=true]
-->
<xs:element name="itemData">
<xs:complexType>
<xs:attribute name="name" use="required"/>
<xs:attribute name="defStyleNum" use="required" type="defStyles"/>
<xs:attribute name="color"/>
<xs:attribute name="selColor"/>
<xs:attribute name="italic" type="xs:boolean"/>
<xs:attribute name="bold" type="xs:boolean"/>
<xs:attribute name="underline" type="xs:boolean"/>
<xs:attribute name="strikeOut" type="xs:boolean"/>
<xs:attribute name="backgroundColor"/>
<xs:attribute name="selBackgroundColor"/>
<xs:attribute name="spellChecking" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- Spellchecking specification -->
<xs:element name="spellchecking">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="encodings"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- List of character encodings -->
<xs:element name="encodings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="encoding"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Encoding specification
sequence CDATA #REQUIRED Character sequence of the encoding; must not contain new-line characters, i.e. \n or \r
character CDATA #IMPLIED Encoded character; must be of length 1
ignored (%boolean;) #IMPLIED If true, then the encoding sequence is ignored for spellchecking
-->
<xs:element name="encoding">
<xs:complexType>
<xs:attribute name="string" use="required"/>
<xs:attribute name="char" type="char"/>
<xs:attribute name="ignored" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:schema>
|