Создание вручную не гарантируется, поэтому это не очень хорошее решение (о котором вы, вероятно, уже знали).Правильный путь - получить экземпляр пространства имен (с предлагаемым префиксом) и использовать его для записи.Итак, что-то вроде:
SMOutputDocument doc = ...;
SMNamespace ns = doc.getNamespace("http://mynamespaces.com", "pre");
SMOutputElement elem = doc.addElement(ns, "root");
// ... and so forth
Вы можете получить экземпляры пространства имен из любого контейнера (SMOutputDocument, SMOutputElement).
Без передачи объекта пространства имен по умолчанию предполагается, что пространство имен с URI "" (чтодолжен быть без префикса).
(примечание: я попрошу, чтобы это было добавлено в StaxMate FAQ )