The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hrc
  PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN" "http://colorer.sf.net/2003/hrc.dtd">
<hrc xmlns="http://colorer.sf.net/2003/hrc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hrc="http://colorer.sf.net/2003/hrc" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="take5" xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd">
<!--
  insert this define into HRC base catalog file (colorer.hrc)

  <prototype name="bkt" group="group" description="bkt" targetNamespace="uri:colorer:bkt">
    <location link="bkt.hrc"/>
    <filename>/\./ix</filename>
  </prototype>
-->
   <type name="bkt">
      <annotation>
         <documentation>
           XSLT Generated HRC scheme for language 'bkt'
           from XML Schema with xsd2hrc.xsl version 0.9.2
            (C) 2002-03 Cail Lomecb
            Portions copyright (C) 2004 Eugene Efremov

           Scheme parameters:
             targetNamespace             : uri:colorer:bkt
             hrctype                     : bkt
             allow-common-attr           : yes
             allow-any-attr              : no
             allow-unknown-elements      : no
             allow-unknown-root-elements : no
             force-single-root           : yes
             add-new-references          : 
             default prefixes            : (?{}(?{}bkt):)?

               you can change them with entity 'nsprefix'

         </documentation>
         <documentation>
          Schema documentation:</documentation>
         <contributors>Eugene Efremov</contributors>
      </annotation>

      <import type="def"/>

      <region name="element.start.name" parent="xml:element.defined.start.name"/>
      <region name="element.end.name" parent="xml:element.defined.end.name"/>
      <region name="element.start.lt" parent="xml:element.start.lt"/>
      <region name="element.start.gt" parent="xml:element.start.gt"/>
      <region name="element.end.lt" parent="xml:element.end.lt"/>
      <region name="element.end.gt" parent="xml:element.end.gt"/>
      <region name="element.nsprefix" parent="element.start.name"/>
      <region name="element.nscolon" parent="xml:element.nscolon"/>
      <region name="Attribute.name" parent="xml:Attribute.defined.name"/>
      <region name="Attribute.nsprefix" parent="xml:Attribute.nsprefix"/>
      <region name="AttValue" parent="xml:AttValue.defined"/>
      <region name="AttValue.start" parent="xml:AttValue.defined.start"/>
      <region name="AttValue.end" parent="xml:AttValue.defined.end"/>
      <region name="Enumeration" parent="xml:Enumeration" description="Enumerated type values"/>
      <region name="blockOutlined" description="block" parent="def:Outlined"/>

      <entity name="ns-real-prefix" value="(?{}(?{}bkt):)"/>
      <entity name="nsprefix" value="(?{}(?{}bkt):)?"/>

      <scheme name="_hrc_int_elementContent">
         <block start="/~( (&lt;) (  ((%xml:NCName;) (:) )? (%xml:Name;) ) \M &gt;?   )/x" end="/( (&lt;\/) (\y3\b)?= ( (%xml:NCName;) (:) )? (%xml:Name;) \b \M \s* (&gt;?)                   | (\/ \M &gt;) )/x" region01="PairStart" region02="element.start.lt" region05="element.nsprefix" region06="element.nscolon" region07="element.start.name" region11="PairEnd" region12="element.end.lt" region15="element.nsprefix" region16="element.nscolon" region17="element.end.name" region18="element.end.gt" region19="element.start.gt" scheme="xml:elementContent2"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="_hrc_int_AttValue">
         <block start="/(&#34;)/" end="/(\y1)/" region00="PairStart" region10="PairEnd" region01="AttValue.start" region11="AttValue.end" scheme="xml:AttValue.content.quot" region="AttValue"/>
         <block start="/(')/" end="/(\y1)/" region00="PairStart" region10="PairEnd" region01="AttValue.start" region11="AttValue.end" scheme="xml:AttValue.content.apos" region="AttValue"/>
      </scheme>
      <scheme name="AttributeContent">
         <inherit scheme="xml:AttributeContent">
            <virtual scheme="xml:AttValue" subst-scheme="_hrc_int_AttValue"/>
         </inherit>
      </scheme>
      <scheme name="re-string-content">
         <inherit scheme="hrc:RE-String"/>
      </scheme>
      <scheme name="re-string-content-error">
         <inherit scheme="re-string-content"/>
      </scheme>
      <scheme name="regionX-attributeGroup">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(name)\M([\s\=]|$)/x" scheme="xmlschema:string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(start)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(end)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region-start)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region-end)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region-middle)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme-middle)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
      </scheme>
      <scheme name="bracket-element">
         <block start="/\M &lt; (%nsprefix;bracket ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="_hrc_int_d0e30-elementContent"/>
      </scheme>
<!-- 
  Simple scheme for support 'bracket' add-on for hrc
  Note. 'uri:colorer:bkt' is fictive namespace.
  Written by Eugene Efremov <4mirror@mail.ru>
 
-->

      <scheme name="re-string-content-old">
         <inherit scheme="xmlschema:string-content"/>
      </scheme>
      <scheme name="re-string-content-error-old">
         <inherit scheme="re-string-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="re-string-Attributes"/>
      <scheme name="re-string-AttributeContent">
         <inherit scheme="AttributeContent">
            <virtual scheme="xml:AttValue.content.stream" subst-scheme="re-string-content-error"/>
         </inherit>
      </scheme>
      <scheme name="re-string-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:CDSect.content.stream" subst-scheme="re-string-content-error"/>
            <virtual scheme="xml:content.cdata.stream" subst-scheme="re-string-content-error"/>
            <virtual scheme="xml:element" subst-scheme="def:empty"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="re-string-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="QName-content">
         <inherit scheme="xmlschema:QName-content"/>
      </scheme>
      <scheme name="QName-content-error">
         <inherit scheme="QName-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="QName-Attributes"/>
      <scheme name="QName-AttributeContent">
         <inherit scheme="AttributeContent">
            <virtual scheme="xml:AttValue.content.stream" subst-scheme="QName-content-error"/>
         </inherit>
      </scheme>
      <scheme name="QName-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:CDSect.content.stream" subst-scheme="QName-content-error"/>
            <virtual scheme="xml:content.cdata.stream" subst-scheme="QName-content-error"/>
            <virtual scheme="xml:element" subst-scheme="def:empty"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="QName-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="blocktype-content">
         <regexp region="Enumeration" match="/query/"/>
         <regexp region="Enumeration" match="/biblock/"/>
         <regexp region="Enumeration" match="/halfblock/"/>
         <regexp region="Enumeration" match="/monoblock/"/>
         <regexp region="Enumeration" match="/singleblock/"/>
         <regexp region="Enumeration" match="/noblock/"/>
      </scheme>
      <scheme name="blocktype-content-error">
         <inherit scheme="blocktype-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="blocktype-Attributes"/>
      <scheme name="blocktype-AttributeContent">
         <inherit scheme="AttributeContent">
            <virtual scheme="xml:AttValue.content.stream" subst-scheme="blocktype-content-error"/>
         </inherit>
      </scheme>
      <scheme name="blocktype-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:CDSect.content.stream" subst-scheme="blocktype-content-error"/>
            <virtual scheme="xml:content.cdata.stream" subst-scheme="blocktype-content-error"/>
            <virtual scheme="xml:element" subst-scheme="def:empty"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="blocktype-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="yesno-content">
         <regexp region="Enumeration" match="/yes/"/>
         <regexp region="Enumeration" match="/no/"/>
      </scheme>
      <scheme name="yesno-content-error">
         <inherit scheme="yesno-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="yesno-Attributes"/>
      <scheme name="yesno-AttributeContent">
         <inherit scheme="AttributeContent">
            <virtual scheme="xml:AttValue.content.stream" subst-scheme="yesno-content-error"/>
         </inherit>
      </scheme>
      <scheme name="yesno-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:CDSect.content.stream" subst-scheme="yesno-content-error"/>
            <virtual scheme="xml:content.cdata.stream" subst-scheme="yesno-content-error"/>
            <virtual scheme="xml:element" subst-scheme="def:empty"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="yesno-Attributes"/>
         </inherit>
      </scheme>
<!--
        parent: bracket
-->

      <scheme name="_hrc_int_d0e30-content">
         <block start="/\M &lt; (%nsprefix;name-block ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="name-block-elementContent"/>
         <regexp match="/\M (&lt; %nsprefix;block \b\s*.*? (([\x22\x27])(.*?)(\3))? )([\/&gt;\s]|$)/x" region1="blockOutlined"/>
         <block start="/\M &lt; (%nsprefix;block ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="block-elementContent"/>
      </scheme>
      <scheme name="_hrc_int_d0e30-content-error">
         <inherit scheme="_hrc_int_d0e30-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="_hrc_int_d0e30-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(type)\M([\s\=]|$)/x" scheme="xmlschema:string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme)\M([\s\=]|$)/x" scheme="xmlschema:string-AttributeContent"/>
      </scheme>
      <scheme name="_hrc_int_d0e30-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="_hrc_int_d0e30-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="_hrc_int_d0e30-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="block-content">
         <block start="/\M &lt; (%nsprefix;query ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="query-elementContent"/>
         <block start="/\M &lt; (%nsprefix;case ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="case-elementContent"/>
      </scheme>
      <scheme name="block-content-error">
         <inherit scheme="block-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="block-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme1)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region1)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme2)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region2)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <inherit scheme="regionX-attributeGroup"/>
      </scheme>
      <scheme name="block-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="block-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="block-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="name-block-content">
         <block start="/\M &lt; (%nsprefix;name ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="name-elementContent"/>
         <block start="/\M &lt; (%nsprefix;case ([\s\/&gt;]|$) )/x" end="/ &gt; /x" scheme="case-elementContent"/>
      </scheme>
      <scheme name="name-block-content-error">
         <inherit scheme="name-block-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="name-block-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <inherit scheme="regionX-attributeGroup"/>
      </scheme>
      <scheme name="name-block-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="name-block-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="name-block-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="name-content"/>
      <scheme name="name-content-error">
         <inherit scheme="name-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="name-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(match)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(scheme)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(region)\M([\s\=]|$)/x" scheme="QName-AttributeContent"/>
      </scheme>
      <scheme name="name-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="name-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="name-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="case-content"/>
      <scheme name="case-content-error">
         <inherit scheme="case-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="case-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(type)\M([\s\=]|$)/x" scheme="blocktype-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(start)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(end)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(all)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(recursion1)\M([\s\=]|$)/x" scheme="yesno-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(recursion2)\M([\s\=]|$)/x" scheme="yesno-AttributeContent"/>
      </scheme>
      <scheme name="case-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="case-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="case-Attributes"/>
         </inherit>
      </scheme>

      <scheme name="query-content"/>
      <scheme name="query-content-error">
         <inherit scheme="query-content"/>
         <inherit scheme="xml:badChar"/>
      </scheme>
      <scheme name="query-Attributes">
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(start1)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(end1)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(start2)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(end2)\M([\s\=]|$)/x" scheme="re-string-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(recursion1)\M([\s\=]|$)/x" scheme="yesno-AttributeContent"/>
         <block end="/[&#34;']?#1/" region02="Attribute.name" start="/(\s?#1|^)(recursion2)\M([\s\=]|$)/x" scheme="yesno-AttributeContent"/>
      </scheme>
      <scheme name="query-elementContent">
         <inherit scheme="_hrc_int_elementContent">
            <virtual scheme="xml:element" subst-scheme="query-content"/>
            <virtual scheme="xml:content.cdata" subst-scheme="xml:badChar"/>
            <virtual scheme="xml:Attribute.any" subst-scheme="query-Attributes"/>
         </inherit>
      </scheme>


      <scheme name="bkt-root">
         <annotation>
            <documentation>
               You can replace these elements with needed single root element
               with customizing HRC generation process.
              </documentation>
         </annotation>
         <inherit scheme="bracket-element"/>
      </scheme>
      <scheme name="bkt-root-addref">
         <inherit scheme="bkt-root"/>
      </scheme>
      <scheme name="bkt">
         <inherit scheme="xml:singleroot">
            <virtual scheme="xml:element" subst-scheme="bkt-root-addref"/>
         </inherit>
      </scheme>
   </type>
</hrc>