<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:brl="http://www.daisy.org/ns/pipeline/braille" xmlns:pxi="http://www.daisy.org/ns/pipeline/xproc/internal" exclude-result-prefixes="#all" version="2.0"> <xsl:variable name="unicode-table" select="'⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿'"/> <xsl:variable name="nabcc-table" select="' a1b''k2l`cif/msp"e3h9o6r~djg>ntq,*5<-u8v.%{$+x!&;:4|0z7(_?w}#y)='"/> <xsl:function name="brl:unicode-braille-to-escape-sequence" as="xs:string"> <xsl:param name="unicode-braille" as="xs:string"/> <xsl:sequence select="pxi:dec-to-hex(string-to-codepoints($unicode-braille))"/> </xsl:function> <xsl:function name="brl:unicode-braille-to-nabcc" as="xs:string"> <xsl:param name="unicode-braille" as="xs:string"/> <xsl:sequence select="translate($unicode-braille, $unicode-table, $nabcc-table)"/> </xsl:function> <xsl:function name="brl:nabcc-to-unicode-braille" as="xs:string"> <xsl:param name="nabcc" as="xs:string"/> <xsl:sequence select="translate($nabcc, $nabcc-table, $unicode-table)"/> </xsl:function> <xsl:function name="pxi:dec-to-hex" as="xs:string"> <xsl:param name="dec" as="xs:integer"/> <xsl:sequence select="if ($dec = 0) then '0' else concat(if ($dec > 16) then pxi:dec-to-hex($dec idiv 16) else '', substring('0123456789ABCDEF', ($dec mod 16) + 1, 1))"/> </xsl:function> </xsl:stylesheet>