<?xml version="1.0" encoding="UTF-8"?>
<!--

 Author: Paolo Borelli <pborelli@katamail.com>
 Copyright (C) 2008 Paolo Borelli <pborelli@katamail.com>

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Library General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Library General Public License for more details.

 You should have received a copy of the GNU Library General Public
 License along with this library; if not, write to the
 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.

-->
<language id="xslt" _name="XSLT" version="2.0" _section="Markup">
  <metadata>
    <property name="mimetypes">application/xslt+xml</property>
    <property name="globs">*.xslt;*.xsl</property>
    <property name="block-comment-start">&lt;!--</property>
    <property name="block-comment-end">--&gt;</property>
  </metadata>

  <styles>
    <style id="element" _name="Element" map-to="def:keyword"/>
    <style id="namespace" _name="Namespace" map-to="xslt:element"/>
  </styles>

  <definitions>

    <context id="namespace" style-ref="namespace">
      <match>(?&lt;!:)xsl:</match>
    </context>

    <context id="xslt-namespace">
      <include>
        <context ref="namespace"/>
        <context ref="xml:namespace" original="true"/>
      </include>
    </context>

    <context id="elements" once-only="true" style-ref="element">
      <suffix>\b(?!\s*=)</suffix>
      <keyword>apply-imports</keyword>
      <keyword>apply-templates</keyword>
      <keyword>attribute-set</keyword>
      <keyword>attribute</keyword>
      <keyword>call-template</keyword>
      <keyword>choose</keyword>
      <keyword>comment</keyword>
      <keyword>copy-of</keyword>
      <keyword>copy</keyword>
      <keyword>decimal-format</keyword>
      <keyword>document</keyword>
      <keyword>element</keyword>
      <keyword>fallback</keyword>
      <keyword>for-each</keyword>
      <keyword>if</keyword>
      <keyword>import</keyword>
      <keyword>include</keyword>
      <keyword>key</keyword>
      <keyword>message</keyword>
      <keyword>namespace-alias</keyword>
      <keyword>number</keyword>
      <keyword>otherwise</keyword>
      <keyword>output</keyword>
      <keyword>param</keyword>
      <keyword>preserve-space</keyword>
      <keyword>processing-instruction</keyword>
      <keyword>script</keyword>
      <keyword>sort</keyword>
      <keyword>strip-space</keyword>
      <keyword>stylesheet</keyword>
      <keyword>template</keyword>
      <keyword>text</keyword>
      <keyword>transform</keyword>
      <keyword>value-of</keyword>
      <keyword>variable</keyword>
      <keyword>when</keyword>
      <keyword>with-param</keyword>
    </context>

    <context id="xslt-tags">
      <include>
        <context ref="elements"/>
        <context ref="xml:element-name" original="true"/>
      </include>
    </context>

    <replace id="xml:namespace" ref="xslt-namespace"/>
    <replace id="xml:element-name" ref="xslt-tags"/>

    <context id="xslt">
      <include>
        <context ref="xml:xml"/>
      </include>
    </context>
  </definitions>

</language>
