Я пытаюсь использовать текстовый вывод XSLT для создания файла (в формате файла, над которым я не контролирую), и хотя это в основном текст, он включает непечатаемые символы младшего порядка в качестве флагов, включая символы, которые недействительны в файле XLST (согласно спецификации XSLT).
Я хотел бы, чтобы что-то вроде приведенного ниже работало, но вместо этого это недопустимый файл XSLT, поскольку он содержит символы, которые не разрешены в файлах XSLT:
<?xml version="1.0" encoding="US-ASCII" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" encoding="US-ASCII"/>
<xsl:template match="/"></xsl:template>
</xsl:stylesheet>
Я получаю следующую ошибку:
[Fatal Error] :4:35: Character reference "" is an invalid XML character.
ERROR: 'Character reference "" is an invalid XML character.'
FATAL ERROR: 'Could not compile stylesheet'
Я тоже пробовал с фактическим символом 1, с разделом CDATA или без него, элементами xsl: text, картами символов xslt-2, парой разных кодировок, но я не могу понять, как получить символ ascii с двоичным кодом код = 1.
Мне пришлось прибегнуть к постобработке моего вывода, что не идеально.
Есть ли способ создать один непечатаемый символ младшего порядка из XSLT?
Среда: Java 6, встроенный в XSL Transformer.