Вопрос

Теперь я разрабатываю веб-сайты и интерфейсы XML с 7 лет, и никогда не приходил в ситуацию, где было действительно необходимо использовать &gt; для >. Отказ Все необитание может быть до сих пор обрабатывается путем цитирования <, &, " а также ' в одиночестве.

Кто-нибудь когда-либо находился в ситуации (связанной с, например, обработкой SGML, проблемы браузера, XSLT, ...), где вы обнаружили, что это неотъемлемому, чтобы избежать большего, чем подписать &gt;?

Обновлять: Я только что проверил с XML Spec., где он говорит, например, о характере данных в разделе 2.4:

Данные персонажа

[14]      CharData       ::=      [^<&]* - ([^<&]* ']]>' [^<&]*)

Так что даже там, > Не упоминается как что-то особенное, за исключением окончательной последовательности секции Cdata.

Этот один случай, где > имеет любое значение, будет окончание раздела CDATA, ]]>, но опять же, если вы процитируете его, цитата (т. е., буквальная строка ]]&gt;) приземлился бы буквально на выходе (так как это CDATA).

Это было полезно?

Решение

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

XML все о семантике, и это не совсем семантический совместимый.

О тебе Обновить, Вы забыли эту часть:

Правый угловой кронштейн (>) может быть представлен с помощью строки «>», а также для совместимости, для совместимости можно избежать использования либо « &gt; «или ссылка на символ, когда оно появляется в строке» ]]> «В контент, когда эта строка не отмечает конец раздела CDATA.

Дело использование, приведенное в документации, - это больше о чем-то вроде этого:

<xmlmarkup>
]]>
</xmlmarkup>

Здесь ]]> Часть может быть проблемой со старыми парсерами SGML, так что это должен быть сбеженным в = ]]&gt; для соображений совместимости.

Другие советы

я использовал один не 19 часов назад, чтобы пройти строгий валидатор XML. Другим случаем является, когда вы используете их на самом деле в тексте содержимого содержимого HTML / XML (а не атрибуты), как это: <.

Конечно, анализатор LAX примет больше всего, что вы бросаете на него, но если вы когда-нибудь беспокоитесь о XSS, <это твой друг.

Обновление: вот пример, где вам нужно сбежать > В Firefox:

<?xml version="1.0" encoding="utf-8" ?>
<test>
    ]]>
</test>

Предоставлено, он все еще не пример, чтобы избежать одиночества >.

Не так много как автор (x) HTML-документов, но более чем пользователь небрежных письменных комментариев полей на веб-сайтах, что «предложить» вам вставить HTML.

Я имею в виду, если вы сделаете свой сайт правильным способом, вы бы все равно не устроили ваш контент, верно? Так что ваш звонок htmlentities или что-то (давно не видно, PHP) позаботится о замене для вас специальных символов. Так что уверен, вы бы не вручную ввести &gt; Но я надеюсь, что вы принимаете меры так > автоматически заменяется.

Я просто подумал о другом примере, где вам нужно цитировать > в HTML5 (не XHTML5) Документы: если вам это нужно в атрибутах без кавычек (что это что-то, что можно спорить, конечно).

<img src=arrow.png alt=&gt;>

должен быть эквивалентен XHTML

<img src="arrow.png" alt=">" />

Но затем снова, (?

Представьте, что у вас есть следующий текст this is a not a ]]> nice day И вы решили окружить его секциями CDATA <![CDATA[this is a not a ]]> nice day]]>.

Чтобы избежать этого (и для разрешения разборы фрагментов SGML с неtermined отмеченными разделами), пункт 10.4 ISO 8879: 1986 заявляет, что возникновение ]]> За пределами отмеченного раздела - ошибка.

Кроме того, во времена SGML отмеченные разделы были очень популярны, поскольку они не только использовались для CDATA (как в XML), но также для RCDATA (только листанки и ссылки на символы разрешены) и игнорируют и включают (что позволило распознать разметку внутри них).

Например, в SGML можно написать:

 <!ENTITY %WHATTODO "INCLUDE">
 <![%WHATTODO;[<b>]]&gt;</b>]]>

Который эквивалентно:

 <b>]]&gt;</b>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top