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

<!--
   The utf8-uc and utf8-lc utilities
   Copyright (C) 2011 Matous J. Fialka, <http://mjf.cz/>
   Released under the terms of The MIT License

   TODO: Do it the right UTF-8 way (test bits etc).
-->

<!DOCTYPE stylesheet [

   <!ENTITY UTF8_LC "&#x0061; &#x03c6; &#x0163; &#x00e5; &#x0062; &#x013a;
                     &#x00e1; &#x0142; &#x03cd; &#x0101; &#x0491; &#x03b4;
                     &#x015b; &#x0064; &#x03b3; &#x00f4; &#x044a; &#x0439;
                     &#x0113; &#x043c; &#x015f; &#x0144; &#x00ee; &#x045e;
                     &#x044f; &#x03ba; &#x0155; &#x0069; &#x0073; &#x1e1f;
                     &#x0135; &#x0447; &#x03c0; &#x0438; &#x00f3; &#x0440;
                     &#x0454; &#x0435; &#x0449; &#x014b; &#x0431; &#x0459;
                     &#x1e03; &#x00f6; &#x00f9; &#x006e; &#x0451; &#x03c4;
                     &#x0443; &#x015d; &#x0453; &#x03c8; &#x0159; &#x0067;
                     &#x00e4; &#x03ac; &#x03ae; &#x0167; &#x03be; &#x0165;
                     &#x0117; &#x0109; &#x0076; &#x00fe; &#x0157; &#x00fa;
                     &#x1e61; &#x1e83; &#x00e2; &#x0119; &#x0146; &#x0070;
                     &#x0151; &#x044e; &#x0129; &#x03c7; &#x013e; &#x0442;
                     &#x007a; &#x0448; &#x03c1; &#x1e81; &#x016d; &#x00f5;
                     &#x0075; &#x0177; &#x00fc; &#x1e57; &#x03c3; &#x043a;
                     &#x006d; &#x016b; &#x0171; &#x0444; &#x00ec; &#x0169;
                     &#x03bf; &#x006b; &#x00f2; &#x00e0; &#x0434; &#x03c9;
                     &#x1e6b; &#x00e3; &#x044d; &#x0436; &#x01a1; &#x010d;
                     &#x011d; &#x00f0; &#x013c; &#x045f; &#x045a; &#x00e8;
                     &#x03c5; &#x0066; &#x00fd; &#x0063; &#x021b; &#x00ea;
                     &#x03b9; &#x017a; &#x00ef; &#x01b0; &#x0065; &#x03bb;
                     &#x03b8; &#x03bc; &#x045c; &#x043f; &#x044c; &#x00fe;
                     &#x00f0; &#x1ef3; &#x0068; &#x00eb; &#x0111; &#x0433;
                     &#x012f; &#x00e6; &#x0078; &#x0161; &#x016f; &#x03b1;
                     &#x0457; &#x0173; &#x00ff; &#x006f; &#x043b; &#x03b5;
                     &#x0445; &#x0121; &#x017e; &#x017c; &#x03b6; &#x03b2;
                     &#x03ad; &#x1e85; &#x0175; &#x0071; &#x0437; &#x1e0b;
                     &#x0148; &#x0105; &#x0458; &#x014d; &#x00ed; &#x0079;
                     &#x010b; &#x03ce; &#x0072; &#x0430; &#x0455; &#x0452;
                     &#x0127; &#x0137; &#x012b; &#x03af; &#x044b; &#x006c;
                     &#x03b7; &#x0125; &#x0219; &#x00fb; &#x011f; &#x043e;
                     &#x1e41; &#x03bd; &#x0107; &#x03cb; &#x0446; &#x00fe;
                     &#x00e7; &#x03ca; &#x0441; &#x0432; &#x010f; &#x00f8;
                     &#x0077; &#x011b; &#x0074; &#x006a; &#x045b; &#x0456;
                     &#x0103; &#x03bb; &#x00f1; &#x043d; &#x03cc; &#x00e9;
                     &#x00f0; &#x0457; &#x0123;">

   <!ENTITY UTF8_UC "&#x0041; &#x03a6; &#x0162; &#x00c5; &#x0042; &#x0139;
                     &#x00c1; &#x0141; &#x038e; &#x0100; &#x0490; &#x0394;
                     &#x015a; &#x0044; &#x0393; &#x00d4; &#x042a; &#x0419;
                     &#x0112; &#x041c; &#x015e; &#x0143; &#x00ce; &#x040e;
                     &#x042f; &#x039a; &#x0154; &#x0049; &#x0053; &#x1e1e;
                     &#x0134; &#x0427; &#x03a0; &#x0418; &#x00d3; &#x0420;
                     &#x0404; &#x0415; &#x0429; &#x014a; &#x0411; &#x0409;
                     &#x1e02; &#x00d6; &#x00d9; &#x004e; &#x0401; &#x03a4;
                     &#x0423; &#x015c; &#x0403; &#x03a8; &#x0158; &#x0047;
                     &#x00c4; &#x0386; &#x0389; &#x0166; &#x039e; &#x0164;
                     &#x0116; &#x0108; &#x0056; &#x00de; &#x0156; &#x00da;
                     &#x1e60; &#x1e82; &#x00c2; &#x0118; &#x0145; &#x0050;
                     &#x0150; &#x042e; &#x0128; &#x03a7; &#x013d; &#x0422;
                     &#x005a; &#x0428; &#x03a1; &#x1e80; &#x016c; &#x00d5;
                     &#x0055; &#x0176; &#x00dc; &#x1e56; &#x03a3; &#x041a;
                     &#x004d; &#x016a; &#x0170; &#x0424; &#x00cc; &#x0168;
                     &#x039f; &#x004b; &#x00d2; &#x00c0; &#x0414; &#x03a9;
                     &#x1e6a; &#x00c3; &#x042d; &#x0416; &#x01a0; &#x010c;
                     &#x011c; &#x00d0; &#x013b; &#x040f; &#x040a; &#x00c8;
                     &#x03a5; &#x0046; &#x00dd; &#x0043; &#x021a; &#x00ca;
                     &#x0399; &#x0179; &#x00cf; &#x01af; &#x0045; &#x039b;
                     &#x0398; &#x039c; &#x040c; &#x041f; &#x042c; &#x00de;
                     &#x00d0; &#x1ef2; &#x0048; &#x00cb; &#x0110; &#x0413;
                     &#x012e; &#x00c6; &#x0058; &#x0160; &#x016e; &#x0391;
                     &#x0407; &#x0172; &#x0178; &#x004f; &#x041b; &#x0395;
                     &#x0425; &#x0120; &#x017d; &#x017b; &#x0396; &#x0392;
                     &#x0388; &#x1e84; &#x0174; &#x0051; &#x0417; &#x1e0a;
                     &#x0147; &#x0104; &#x0408; &#x014c; &#x00cd; &#x0059;
                     &#x010a; &#x038f; &#x0052; &#x0410; &#x0405; &#x0402;
                     &#x0126; &#x0136; &#x012a; &#x038a; &#x042b; &#x004c;
                     &#x0397; &#x0124; &#x0218; &#x00db; &#x011e; &#x041e;
                     &#x1e40; &#x039d; &#x0106; &#x03ab; &#x0426; &#x00de;
                     &#x00c7; &#x03aa; &#x0421; &#x0412; &#x010e; &#x00d8;
                     &#x0057; &#x011a; &#x0054; &#x004a; &#x040b; &#x0406;
                     &#x0102; &#x039b; &#x00d1; &#x041d; &#x038c; &#x00c9;
                     &#x00d0; &#x0407; &#x0122;">
]>

<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
   <xsl:template name="utf8-uc">
      <xsl:param name="string" />
      <xsl:value-of select="translate($string, '&UTF8_LC;', '&UTF8_UC;')" />
   </xsl:template>

   <xsl:template name="utf8-lc">
      <xsl:param name="string" />
      <xsl:value-of select="translate($string, '&UTF8_UC;', '&UTF8_LC;')" />
   </xsl:template>

</xsl:stylesheet>
