Добавление символьных сущностей для XSLT в Dreamweaver

Последнее обновление 20 дек. 2021 г.

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

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

Указание отсутствующей символьной сущности

В XSLT некоторые символы не допускаются в определенных контекстах. Например, нельзя использовать знак «меньше» (<) и амперсанд (&) в тексте между тегами или в значении атрибута. Механизм преобразования XSLT выдаст ошибку, если эти символы используются неправильно. Для решения этой проблемы можно указать символьные сущности для замены специальных символов.

Символьная сущность — это строка символов, представляющая другие символы. Символьные сущности бывают именованными или пронумерованными. Именованная сущность начинается с амперсанда (&), за которым следует имя или символы, и заканчивается точкой с запятой (;). Например, < представляет символ левой угловой скобки (<). Нумерованные сущности также начинаются и заканчиваются одинаково, за исключением того, что знак решетки (#) и число определяют символ.

XSLT имеет следующие пять предопределенных сущностей:

Символ

Код сущности

< (меньше)

<

& (амперсанд)

&

> (больше)

>

" (кавычка)

&quot;

‘ (апостроф)

&apos;

Если вы используете другие символьные сущности в XSL-файле, их необходимо определить в разделе DTD XSL-файла. Dreamweaver предоставляет несколько стандартных определений сущностей, которые можно увидеть в верхней части XSL-файла, созданного в Dreamweaver. Эти стандартные сущности покрывают широкий спектр наиболее часто используемых символов.

Когда вы просматриваете XSL-файл в браузере, Dreamweaver проверяет XSL-файл на неопределенные сущности и уведомляет вас, если найдена неопределенная сущность.

Если вы просматриваете XML-файл, прикрепленный к XSLT-файлу, или если вы просматриваете серверную страницу с преобразованием XSLT, сервер или браузер (вместо Dreamweaver) уведомляет вас о неопределенной сущности. Ниже приведен пример сообщения, которое вы можете получить в Internet Explorer при запросе XML-файла, преобразованного XSL-файлом с отсутствующим определением сущности:Reference to undefined entity 'auml'. Ошибка ресурса обработки 'http://localhost/testthis/list.xsl'. Line 28, Position 20 <p class=''test''>&auml;</p> -------------------^

Чтобы исправить ошибку на вашей странице, необходимо добавить определение сущности на страницу вручную.

Reference to undefined entity 'auml'. Ошибка ресурса обработки 'http://localhost/testthis/list.xsl'. Line 28, Position 20

<p class=''test''>&auml;</p>

-------------------^

Указание отсутствующего определения сущности

Найдите отсутствующий символ на странице справочника символьных сущностей на веб-сайте W3C по адресу www.w3.org/TR/REC-html40/sgml/entities.html.

Эта веб-страница содержит 252 допустимые сущности в HTML 4 и XHTML 1.0.

Например, если символьная сущность Egrave отсутствует, найдите «Egrave» на веб-странице W3C. Вы найдете следующую запись:

<!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->

Запишите имя сущности и код сущности в записи.

В примере Egrave — это имя сущности, а &#200 — код сущности.

Имея эту информацию, переключитесь в режим кода и введите следующий тег сущности в верхней части вашего XSL-файла (после объявления Doctype и с другими тегами сущностей):

<!ENTITY entityname "entitycode;">

В примере вы бы ввели следующий тег сущности:<!ENTITY Egrave "&#200;">

<!ENTITY Egrave "&#200;">

Сохраните файл.

Если вы часто используете одни и те же символьные сущности, возможно, стоит навсегда добавить их определения в XSL-файлы, которые Dreamweaver создает по умолчанию при использовании пункта меню «Файл» > «Новый».

Добавьте определения сущностей в XSL-файлы, создаваемые Dreamweaver по умолчанию

Найдите следующий файл конфигурации в папке приложения Dreamweaver и откройте его в любом текстовом редакторе:

Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

Найдите объявление mm_xslt_1:

<documenttypedeclaration id="mm_xslt_1">

Введите новый тег или теги сущности в список тегов сущностей следующим образом:

<!ENTITY entityname "entitycode;">

Сохраните файл и перезапустите Dreamweaver.