Стоп там!
существует потенциально серьезная проблема с этим кодом, потому что это игнорирует кодировку символов, определенную в String
(который является UTF-8 по умолчанию). Когда Вы звоните String.getBytes()
, кодировка по умолчанию платформы используется для кодирования символов Unicode к байтам. Так, синтаксический анализатор может думать, что это получает данные UTF-8, когда на самом деле это получает EBCDIC или something… не симпатичный!
Вместо этого используйте метод синтаксического анализа, который берет InputSource, который может быть создан с Читателем, как это:
import java.io.StringReader;
import org.xml.sax.InputSource;
…
return builder.parse(new InputSource(new StringReader(xml)));
Это не может походить на грандиозное предприятие, но незнание проблем кодировки символов приводит к коварной гнили кода, сродни двухтысячному году.
Это можно сделать с помощью ключевых слов onfirstrecord
, номер страницы
и onlastrecord
.
в разделе заголовка группы Формула «Новая страница перед» ...
not onfirstrecord //so every group (except the first) starts on a new page
В формуле «Новая страница после» ...
//to keep the group from starting on even page but make sure the last page is not blank
remainder(pagenumber, 2) = 1 and not onlastrecord