XmlHelper.javaУтилитный класс для работы с XML — преобразование строк в XML-элементы, XML-элементов в строки, форматирование. 135 строк. Использует библиотеку dom4j для парсинга и сериализации обычного XML. Это третья XML-библиотека в проекте наряду с XStream и W3C DOM API.
Константа XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" — стандартный XML-заголовок, используемый при генерации XML-файлов для экспорта. Кодировка жёстко зафиксирована как UTF-8.
replaceQuotes(String xml) — нормализация кавычекЗаменяет одинарные кавычки (') на двойные (") в XML-строке. Javadoc: "This is useful for writing xml string constants e.g. in test cases." Позволяет писать в тестах: XmlHelper.replaceQuotes("<node name='test'/>") → "<node name=\"test\"/>".
fromString(String str) — строка → dom4j ElementПарсит XML-строку в dom4j Element. Использует DocumentHelper.parseText(). При ошибке парсинга логирует и возвращает null (не бросает исключение). Для пустой строки возвращает null.
toString(Element el, boolean prettyFormat) — dom4j Element → отформатированная XML-строкаСериализует dom4j Element обратно в строку. Использует dom4j'евский XMLWriter с OutputFormat. При prettyFormat=true: включает переносы строк и отступ в 2 пробела.
toString(org.w3c.dom.Document, boolean prettyFormat) — W3C DOM Document → строкаРаботает с другим типом XML — org.w3c.dom.Document (SVG/Batik). Использует javax.xml.transform.Transformer. Все ошибки оборачиваются в InternalErrorException (в отличие от dom4j-метода который логирует и возвращает null).
Наличие методов для двух разных XML-представлений (dom4j и W3C DOM) в одном классе — это исторический артефакт. dom4j используется для XmlStream (сериализация данных), W3C DOM — для SVG-рендеринга (Batik). Правильный рефакторинг: выделить W3C-метод в SvgXmlHelper.
868d6abb7 2025 → 2026 63081666f Source file headers: 2024→2025 b6092df09 Copyright 2023 → 2024 ab45d51fa Copyright 2001-2022 → 2001-2023 5f7ef41b8 Copyright 2021 → 2022 cd27dd997 package xstream → xmlstream ceb63e8a1 Source code header: (C) 2001-2021 7c79f1922 Copyright of source header → 2020 32f634b88 Optimize imports 000ca723d Remove pointless boolean expressions dd5ca38ac CopyRight of all java file-header updated or created a5bbdca6a Change logger to slf4j f979e8a42 MGC-UPDATE: Update auf Version 3.0.0-SNAPSHOT 9ebb88522 Initial commit
a5bbdca6a — переход логгера на SLF4J. 000ca723d — удаление бессмысленных булевых выражений.