В настоящее время я использую класс javax.xml.bind.Marshaller для преобразования объектов Java в XML.Я также определил свой собственный обработчик символов, чтобы маршаллер не смог избежать его.Ниже приведен фрагмент моих кодов.
JAXBContext context = JAXBContext.newInstance("com....");
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT);
marshaller.setProperty(com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler.class.getName(), (ch, start, length, isAttributeValue, writer) -> writer.write(ch, start, length));
Как видите, я использую класс com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler.Однако мы не должны использовать внутренние классы реализации JDK, такие как те, которые находятся внутри пакетов "com.sun. *".
В таком случае, какова моя альтернатива для обработчика escape-символов, если я все еще хочупо-прежнему с JAXB и использованием javax.xml.bind.Marshaller?