Java Transformer setOutputProperty () - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время я использую следующий код для отступа XML:

transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

Это отлично подходит для кода, однако я не уверен, что делает http://xml.apache.org/xslt}indent-amount".URL имеет важное значение для отступа.Может кто-нибудь объяснить, что делает этот URL и как он работает?

Спасибо!:)

1 Ответ

0 голосов
/ 10 мая 2018

Вы переопределяете свойство по умолчанию indent-amount, определенное в пакете org.apache.xml.serializer.Это включает отступы (так как по умолчанию 0).

Свойства вывода для вывода XML, HTML и преобразования текста определены в файлах свойств в пакете org.apache.xml.serializer.

Вы можете переопределить значение по умолчанию этихСвойства в вашей таблице стилей, используя атрибуты элемента xsl: output.Вы можете переопределить параметры по умолчанию для Xalan следующим образом:

Объявите пространство имен xalan в элементе таблицы стилей (xmlns: xalan = "http://xml.apache.org/xalan").

Используйте назначенный префикс пространства имен (например," xalan ")) переопределить интересующие свойства в элементе таблицы стилей xsl: output (например, xalan: indent-amount = "5"). Следующий фрагмент таблицы стилей объявляет пространство имен xalan и устанавливает значение отступа 2:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xalan="http://xml.apache.org/xalan">

  <xsl:output method="xml" 
              encoding="UTF-8"
              indent="yes" 
              xalan:indent-amount="2"/>

Вы можете найти больше в http://xml.apache.org/xalan-j/usagepatterns.html в главе Configuring serialization output properties.

Все это при условии, что ваш сериализатор специфичен для ксалана

...