<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language
[
<!ENTITY qname "[A-Za-z_:][\w.:_-]*">
<!ENTITY name "(?![0-9])[\w_:][\w.:_-]*">
<!ENTITY entref "&(#[0-9]+|#[xX][0-9A-Fa-f]+|&qname;);">
<!ENTITY axisname "ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self">
]>
<language version="10" kateversion="5.0" name="xslt" section="Markup" extensions="*.xsl;*.xslt" license="LGPL" author="Peter Lammich (views@gmx.de)">
<highlighting>
<list name="keytags">
<item>xsl:value-of</item>
<item>xsl:output</item>
<item>xsl:decimal-format</item>
<item>xsl:apply-templates</item>
<item>xsl:param</item>
<item>xsl:transform</item>
<item>xsl:namespace-alias</item>
<item>xsl:comment</item>
<item>xsl:element</item>
<item>xsl:attribute</item>
<item>xsl:apply-imports</item>
<item>xsl:text</item>
<item>xsl:when</item>
<item>xsl:template</item>
<item>xsl:processing-instruction</item>
<item>xsl:include</item>
<item>xsl:copy-of</item>
<item>xsl:copy</item>
<item>xsl:with-param</item>
<item>xsl:stylesheet</item>
<item>xsl:for-each</item>
<item>xsl:choose</item>
<item>xsl:sort</item>
<item>xsl:otherwise</item>
<item>xsl:key</item>
<item>xsl:variable</item>
<item>xsl:number</item>
<item>xsl:message</item>
<item>xsl:fallback</item>
<item>xsl:strip-space</item>
<item>xsl:import</item>
<item>xsl:preserve-space</item>
<item>xsl:if</item>
<item>xsl:call-template</item>
<item>xsl:attribute-set</item>
</list>
<list name="keytags_2.0">
<item>xsl:perform-sort</item>
<item>xsl:import-schema</item>
<item>xsl:for-each-group</item>
<item>xsl:sequence</item>
<item>xsl:non-matching-substring</item>
<item>xsl:namespace</item>
<item>xsl:next-match</item>
<item>xsl:function</item>
<item>xsl:analyze-string</item>
<item>xsl:output-character</item>
<item>xsl:matching-substring</item>
<item>xsl:result-document</item>
<item>xsl:character-map</item>
<item>xsl:document</item>
</list>
<list name="functions">
<item>format-number</item>
<item>position</item>
<item>lang</item>
<item>substring-before</item>
<item>substring</item>
<item>normalize-space</item>
<item>round</item>
<item>translate</item>
<item>starts-with</item>
<item>concat</item>
<item>local-name</item>
<item>key</item>
<item>count</item>
<item>document</item>
<item>system-property</item>
<item>current</item>
<item>boolean</item>
<item>number</item>
<item>contains</item>
<item>name</item>
<item>last</item>
<item>unparsed-entity-uri</item>
<item>sum</item>
<item>generate-id</item>
<item>function-available</item>
<item>element-available</item>
<item>false</item>
<item>substring-after</item>
<item>not</item>
<item>string-length</item>
<item>id</item>
<item>floor</item>
<item>ceiling</item>
<item>namespace-uri</item>
<item>true</item>
<item>string</item>
<item>text</item>
</list>
<list name="functions_2.0">
<item>zero-or-one</item>
<item>replace</item>
<item>namespace-uri-for-prefix</item>
<item>current-grouping-key</item>
<item>seconds-from-duration</item>
<item>resolve-uri</item>
<item>node-kind</item>
<item>minutes-from-dateTime</item>
<item>implicit-timezone</item>
<item>exactly-one</item>
<item>current-time</item>
<item>current-dateTime</item>
<item>unordered</item>
<item>subtract-dates-yielding-dayTimeDuration</item>
<item>string-join</item>
<item>static-base-uri</item>
<item>months-from-duration</item>
<item>input</item>
<item>exists</item>
<item>default-collation</item>
<item>dateTime</item>
<item>current-group</item>
<item>current-date</item>
<item>collection</item>
<item>timezone-from-time</item>
<item>matches</item>
<item>local-name-from-QName</item>
<item>day-from-date</item>
<item>timezone-from-date</item>
<item>round-half-to-even</item>
<item>month-from-dateTime</item>
<item>month-from-date</item>
<item>hours-from-duration</item>
<item>escape-uri</item>
<item>distinct-values</item>
<item>avg</item>
<item>years-from-duration</item>
<item>unparsed-text</item>
<item>unparsed-entity-public-id</item>
<item>subtract-dateTimes-yielding-dayTimeDuration</item>
<item>subtract-dates-yielding-yearMonthDuration</item>
<item>string-to-codepoints</item>
<item>sequence-node-identical</item>
<item>hours-from-time</item>
<item>hours-from-dateTime</item>
<item>format-time</item>
<item>codepoints-to-string</item>
<item>trace</item>
<item>tokenize</item>
<item>subtract-dateTimes-yielding-yearMonthDuration</item>
<item>subsequence</item>
<item>seconds-from-dateTime</item>
<item>regex-group</item>
<item>one-or-more</item>
<item>node-name</item>
<item>namespace-uri-from-QName</item>
<item>min</item>
<item>idref</item>
<item>format-dateTime</item>
<item>format-date</item>
<item>days-from-duration</item>
<item>compare</item>
<item>base-uri</item>
<item>seconds-from-time</item>
<item>in-scope-prefixes</item>
<item>expanded-QName</item>
<item>adjust-date-to-timezone</item>
<item>year-from-date</item>
<item>resolve-QName</item>
<item>remove</item>
<item>QName</item>
<item>minutes-from-time</item>
<item>max</item>
<item>lower-case</item>
<item>index-of</item>
<item>doc</item>
<item>deep-equal</item>
<item>data</item>
<item>minutes-from-duration</item>
<item>adjust-dateTime-to-timezone</item>
<item>abs</item>
<item>timezone-from-dateTime</item>
<item>reverse</item>
<item>error</item>
<item>ends-with</item>
<item>day-from-dateTime</item>
<item>year-from-dateTime</item>
<item>upper-case</item>
<item>root</item>
<item>normalize-unicode</item>
<item>empty</item>
<item>insert-before</item>
<item>document-uri</item>
<item>adjust-time-to-timezone</item>
</list>
<list name="xsl-attributes">
<item>select</item>
<item>test</item>
<item>match</item>
</list>
<contexts>
<context name="normalText" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<Detect2Chars context="specialtag" char="<" char1="!" lookAhead="1"/>
<Detect2Chars context="pitag" char="<" char1="?" lookAhead="1"/>
<Detect2Chars attribute="Tag Symbols" context="ElementEndTagName" char="<" char1="/" endRegion="element" />
<DetectChar attribute="Tag Symbols" context="ElementTagName" char="<" beginRegion="element" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="pitag" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="PI Symbols" context="#pop!PI TagName" String="<\?(?=([\w:_-]*))" beginRegion="pi" />
<DetectChar attribute="Invalid" context="#pop" char="<"/>
</context>
<context name="specialtag" attribute="Normal Text" lineEndContext="#stay">
<StringDetect attribute="Comment" context="#pop!comment" String="<!--" beginRegion="comment"/>
<StringDetect attribute="CDATA" context="#pop!CDATAStart" String="<![CDATA[" lookAhead="1" />
<RegExpr attribute="Doctype Symbols" context="#pop!DoctypeTagName" String="<!(?=DOCTYPE(\s|$))" beginRegion="doctype" />
<DetectChar attribute="Invalid" context="#pop" char="<"/>
</context>
<context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
<AnyChar attribute="Invalid" context="#stay" String="&<" />
</context>
<context name="CDATAStart" attribute="Normal Text" lineEndContext="#pop">
<StringDetect attribute="CDATA Symbols" context="#stay" String="<![" beginRegion="cdata" />
<StringDetect attribute="CDATA" context="#stay" String="CDATA" />
<DetectChar attribute="CDATA Symbols" context="#pop!CDATA" char="[" />
</context>
<context name="CDATA" attribute="Other Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<StringDetect attribute="CDATA Symbols" context="#pop" String="]]>" endRegion="cdata" />
<StringDetect attribute="Entity Reference" context="#stay" String="]]&gt;" />
</context>
<context name="PI TagName" attribute="Other Text" lineEndContext="#pop!PI" fallthrough="true" fallthroughContext="#pop!PI">
<RegExpr attribute="Processing Instruction" context="#pop!PI-XML" String="xml(?=\s|$)" insensitive="true" />
<StringDetect attribute="Processing Instruction" context="#pop!PI" String="%1" dynamic="true" />
</context>
<context name="PI" attribute="Other Text" lineEndContext="#stay">
<Detect2Chars attribute="PI Symbols" context="#pop" char="?" char1=">" endRegion="pi" />
</context>
<context name="PI-XML" attribute="Other Text" lineEndContext="#stay">
<IncludeRules context="PI" />
<RegExpr attribute="Attribute" context="#stay" String="(?:^|\s+)&name;" />
<DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />
</context>
<context name="DoctypeTagName" attribute="Other Text" lineEndContext="#pop">
<StringDetect attribute="Doctype" context="#pop!DoctypeVariableName" String="DOCTYPE" />
</context>
<context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Doctype">
<DetectSpaces />
<RegExpr attribute="Doctype Name" context="#pop!Doctype" String="&name;" />
</context>
<context name="Doctype" attribute="Other Text" lineEndContext="#stay">
<DetectChar attribute="Doctype Symbols" context="#pop" char=">" endRegion="doctype" />
<DetectChar attribute="Doctype Symbols" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
</context>
<context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">
<DetectChar attribute="Doctype Symbols" context="#pop" char="]" endRegion="int_subset" />
<RegExpr attribute="Doctype Symbols" context="Doctype Markupdecl TagName" String="<!(?=(ELEMENT|ENTITY|ATTLIST|NOTATION)\b)" />
<StringDetect attribute="Comment" context="comment" String="<!--" beginRegion="comment" />
<RegExpr attribute="PI Symbols" context="PI TagName" String="<\?(?=([\w:_-]*))" beginRegion="pi" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl TagName" attribute="Other Text" lineEndContext="#pop">
<StringDetect attribute="Doctype" context="#pop!Doctype Markupdecl VariableName" String="%1" dynamic="true" />
</context>
<context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthrough="true" fallthroughContext="#pop!Doctype Markupdecl">
<DetectSpaces />
<RegExpr attribute="Doctype Name" context="#pop!Doctype Markupdecl" String="&name;" />
</context>
<context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">
<DetectChar attribute="Doctype Symbols" context="#pop" char=">" />
<DetectChar attribute="Value" context="Doctype Markupdecl DQ" char=""" />
<DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="'" />
</context>
<context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char=""" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char="'" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
<RegExpr attribute="PEntity Reference" context="#stay" String="%&qname;;" />
<AnyChar attribute="Invalid" context="#stay" String="&%" />
</context>
<context name="ElementTagName" attribute="Other Text" lineEndContext="#pop!attributes" fallthrough="true" fallthroughContext="#pop">
<keyword attribute="XSLT Tag" context="#pop!xattributes" String="keytags" />
<keyword attribute="XSLT 2.0 Tag" context="#pop!xattributes" String="keytags_2.0" />
<DetectIdentifier context="#pop!attributes" attribute="Tag" />
</context>
<context name="ElementEndTagName" attribute="Other Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
<keyword attribute="XSLT Tag" context="#pop!endtag" String="keytags" />
<keyword attribute="XSLT 2.0 Tag" context="#pop!endtag" String="keytags_2.0" />
<DetectIdentifier context="#pop!endtag" attribute="Tag" />
</context>
<context name="endtag" attribute="Other Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
<DetectChar attribute="Tag Symbols" context="#pop" char=">" />
<DetectSpaces/>
</context>
<context name="attributes" attribute="Attribute" lineEndContext="#stay">
<DetectSpaces attribute="Attribute" />
<Detect2Chars attribute="Tag Symbols" context="#pop" char="/" char1=">" endRegion="element" />
<DetectChar attribute="Tag Symbols" context="#pop" char=">" />
<DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />
<DetectIdentifier attribute="Attribute" />
</context>
<context name="SpaceBeforeAttrValue" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!attrValue">
<DetectSpaces attribute="Attribute" />
</context>
<context name="attrValue" attribute="Invalid" lineEndContext="#stay">
<Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1=">" />
<DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />
<DetectChar attribute="Attribute Value" context="string" char=""" />
<DetectChar attribute="Attribute Value" context="sqstring" char="'" />
</context>
<context name="xattributes" attribute="Attribute" lineEndContext="#stay">
<DetectSpaces attribute="Attribute" />
<Detect2Chars attribute="Tag Symbols" context="#pop#pop" char="/" char1=">" endRegion="element" />
<DetectChar attribute="Tag Symbols" context="#pop#pop" char=">" />
<keyword attribute="XSLT XPath Attribute" context="xattributesSep" String="xsl-attributes" />
<DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />
<DetectIdentifier attribute="Attribute" />
</context>
<context name="xattributesSep" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
<DetectSpaces attribute="Attribute" />
<DetectChar attribute="Attribute Separator" context="SpaceBeforeXAttrValue" char="=" />
</context>
<context name="SpaceBeforeXAttrValue" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!xattrValue">
<DetectSpaces attribute="Attribute" />
</context>
<context name="xattrValue" attribute="Invalid" lineEndContext="#stay">
<Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1=">" />
<DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />
<DetectChar attribute="XPath" context="xpath" char=""" />
<DetectChar attribute="XPath" context="sqxpath" char="'" />
</context>
<context name="string" attribute="Attribute Value" lineEndContext="#stay">
<DetectIdentifier />
<DetectChar attribute="XPath" context="xpath" char="{" />
<DetectChar attribute="Attribute Value" context="#pop#pop" char=""" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="sqstring" attribute="Attribute Value" lineEndContext="#stay">
<DetectIdentifier />
<DetectChar attribute="XPath" context="sqxpath" char="{" />
<DetectChar attribute="Attribute Value" context="#pop#pop" char="'" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="comment" attribute="Comment" lineEndContext="#stay">
<DetectSpaces />
<StringDetect attribute="Comment" context="#pop" String="-->" endRegion="comment" />
<RegExpr attribute="Invalid" context="#stay" String="-(-(?!->))+" />
<IncludeRules context="##Comments" />
<DetectIdentifier />
</context>
<context name="xpath" attribute="XPath" lineEndContext="#stay">
<keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />
<keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />
<RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />
<DetectChar attribute="XPath" context="#pop" char="}" />
<DetectChar attribute="XPath String" context="sqxpathstring" char="'" />
<DetectChar attribute="XPath" context="#pop#pop" char=""" />
<RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />
<RegExpr attribute="Variable" context="#stay" String="\$&qname;" />
<RegExpr attribute="XPath" context="#stay" String="&qname;" />
<DetectChar attribute="Invalid" context="#stay" char="$" />
<DetectIdentifier />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="sqxpath" attribute="XPath" lineEndContext="#stay">
<keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />
<keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />
<RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />
<DetectChar attribute="XPath" context="#pop" char="}" />
<DetectChar attribute="XPath String" context="xpathstring" char=""" />
<DetectChar attribute="XPath" context="#pop#pop" char="'" />
<RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />
<RegExpr attribute="Variable" context="#stay" String="\$&qname;" />
<RegExpr attribute="XPath" context="#stay" String="&qname;" />
<DetectChar attribute="Invalid" context="#stay" char="$" />
<DetectIdentifier />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="sqxpathstring" attribute="XPath String" lineEndContext="#stay">
<DetectChar attribute="XPath String" context="#pop" char="'" />
<DetectIdentifier />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="xpathstring" attribute="XPath String" lineEndContext="#stay">
<DetectChar attribute="XPath String" context="#pop" char=""" />
<DetectIdentifier />
<IncludeRules context="FindEntityRefs" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Other Text" defStyleNum="dsNormal" />
<itemData name="Tag" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Tag Symbols" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false"/>
<itemData name="XSLT XPath Attribute" defStyleNum="dsOthers" spellChecking="false"/>
<itemData name="Attribute Separator" defStyleNum="dsOthers" spellChecking="false"/>
<itemData name="Value" defStyleNum="dsAttribute"/>
<itemData name="Invalid" defStyleNum="dsError" spellChecking="false"/>
<itemData name="Attribute Value" defStyleNum="dsString"/>
<itemData name="XPath" defStyleNum="dsVariable" bold="0" italic="0"/>
<itemData name="XPath String" defStyleNum="dsString"/>
<itemData name="XPath Axis" defStyleNum="dsVariable" bold="0" italic="1"/>
<itemData name="XPath/ XSLT Function" defStyleNum="dsVariable" bold="1" italic="0" spellChecking="false"/>
<itemData name="XPath 2.0/ XSLT 2.0 Function" defStyleNum="dsVariable" bold="1" italic="0" spellChecking="false"/>
<itemData name="XPath Attribute" defStyleNum="dsVariable" bold="0" italic="1" spellChecking="false"/>
<itemData name="Variable" defStyleNum="dsVariable" bold="0" italic="1" spellChecking="false"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="XSLT Tag" defStyleNum="dsBuiltIn" bold="1" spellChecking="false"/>
<itemData name="XSLT 2.0 Tag" defStyleNum="dsBuiltIn" bold="1" spellChecking="false"/>
<itemData name="Entity Reference" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false"/>
<itemData name="CDATA Symbols" defStyleNum="dsBaseN" bold="0" italic="0" spellChecking="false" />
<itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="PI Symbols" defStyleNum="dsFunction" bold="0" italic="0" spellChecking="false" />
<itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false"/>
<itemData name="Doctype Name" defStyleNum="dsDataType" bold="0" italic="0" spellChecking="false" />
<itemData name="Doctype Symbols" defStyleNum="dsDataType" bold="0" italic="0" spellChecking="false" />
<itemData name="PEntity Reference" defStyleNum="dsDecVal" spellChecking="false"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="multiLine" start="<!--" end="-->" region="comment" />
</comments>
<keywords casesensitive="0" weakDeliminator="-:" additionalDeliminator=""{}"/>
</general>
</language>