Ниже приведен мой первоначальный ответ на основе: http://www.w3.org/TR/2001/REC-xml-c14n-20010315#Terminology
1 - документ закодирован в UTF-8
По умолчанию маршалы JAXB в UTF-8 кодировка.
2 - разрывы строк, нормализованные до #xA на входе, перед синтаксическим анализом
JAXB не сохраняет разрывы строк, так что это на самом деле не применяется.
3 - значения атрибутов нормализуются, как если бы процессором проверки был
Вы можете указать XmlSchema
в Unmarshaller
, чтобы реализация JAXB использовала процессор проверки:
4- Заменены ссылки на символы и проанализированные сущности
Большинство реализаций JAXB делегируют эту работу базовомуИспользуется синтаксический анализатор.
5- Разделы CDATA заменяются их символьным содержимым
Стандартные API-интерфейсы JAXB не позволяют выполнять маршалинг в раздел CDATA, так что все в порядкеВот.
6 - Декларация XML и декларация типа документа (DTD) удалены
JAXB не записывает декларацию DTD.Вы можете удалить объявление XML, выполнив следующие действия:
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
7 - пустые элементы преобразуются в пары начальных и конечных тегов
JAXB не записывает пустыеэлементы как пары начальных и конечных тегов.Должен быть в состоянии найти обходной путь для этого.
8 - пробелы вне элемента документа и внутри начальных и конечных тегов нормализованы
9 - все пробелы в символьном содержимомсохраняется (исключая символы, удаленные во время нормализации перевода строки)
Реализации JAXB сохраняют все пробелы в содержании символов (между тегами start / element).
10 - Разделители значений атрибутовустановлены в кавычки (двойные кавычки)
Ссылка и реализация MOXy JAXB используют двойные кавычки для разделителей значений атрибута.
11 - специальные символы в значениях атрибута и символсодержимое заменяется символьными ссылками
JAXB заменит &
на &
, <
на <
и "
на "
12 - Лишние объявления пространства имен удаляются из каждого элемента
Реализации JAXB делают все возможное, чтобы не писать лишние namepaдекларации ce, но не может гарантировать, что дополнительные пространства имен не объявлены.Есть несколько обходных путей, которые вы можете сделать для решения этой проблемы.
13 - атрибуты по умолчанию добавляются к каждому элементу
TBD
14- Лексикографический порядок наложен на объявления и атрибуты пространства имен каждого элемента.
Реализации JAXB не гарантируют упорядочение объявлений и атрибутов пространства имен каждого элемента.