Для чего используются статические поля PI_ENABLE_OUTPUT_ESCAPING и PI_DISABLE_OUTPUT_ESCAPING и как мы можем их использовать?

Я новичок в jaxp и понятия не имею, как использовать вышеуказанные статические поля и что они означают?

Нужно его объяснение вместе с примерами.

заранее спасибо


person Prateek    schedule 06.05.2013    source источник
comment
Вам нужны эти поля?   -  person Sotirios Delimanolis    schedule 06.05.2013
comment
вы читали какую-нибудь документацию?   -  person Marco Forberg    schedule 06.05.2013
comment
я не знаю их цели, может быть, зная, что смогу их использовать. на самом деле я хочу избежать некоторых символов, присутствующих в моем файле xsl.   -  person Prateek    schedule 06.05.2013
comment
@MarcoForberg: я читаю только документы по Java.   -  person Prateek    schedule 06.05.2013


Ответы (2)


XSLT имеет функцию, называемую «отключить экранирование вывода», которая сообщает сериализатору выводить <a> как <a>, тогда как обычно он выводит &lt;a&gt;. Этого хака лучше избегать по многим причинам, одна из которых заключается в том, что для связи механизма преобразования с сериализатором требуется специальный побочный канал (чтобы преобразователь мог указать сериализатору включать и выключать doe).

В JAXP, чтобы позволить механизму преобразования одного поставщика взаимодействовать с сериализатором другого поставщика, протокол для передачи этих запросов на выполнение и отключение представляет собой эту пару инструкций обработки.

Вам не нужна эта функция, и вы можете спокойно игнорировать ее существование. Никогда не поддавайтесь искушению вообразить, что только потому, что функция есть, вы должны что-то упускать, если никогда не используете ее.

person Michael Kay    schedule 06.05.2013

(Отказ от ответственности — я поддерживаю XML-библиотеку JDOM). Эти PI (ProcessingInstructions) предназначены для указания программам выводящих XML, что они должны нарушать совместимость со стандартом XML и создавать неверный XML.

При определенных условиях это может быть полезно.

Вот тестовый пример в набор тестов JDOM. В основном он имеет такой ввод (я добавил к нему немного пробелов, чтобы его было легче увидеть):

<root>
  &amp;
  <?javax.xml.transform.disable-output-escaping ?>
  &amp;&amp;
  <?javax.xml.transform.enable-output-escaping ?>
  &amp;
</root>

В приведенном выше примере у нас есть допустимый XML. Если бы вы обрабатывали эти данные через систему, которая распознает инструкции по обработке, они должны были бы выводить (что-то вроде)

<root>
  &amp;
  &&
  &amp;
</root>

Обратите внимание, что это больше не действующий XML... символы & между PI не экранированы правильно.

С точки зрения JDOM это задокументировано здесь. в javadoc

Эти инструкции обычно используются в преобразованиях XML для получения «красивого» вывода, который потребляется не машинами, а людьми. Используйте его с осторожностью.

Надеюсь, что это дает вам некоторое представление .... всего наилучшего.

person rolfl    schedule 06.05.2013