Могу ли я передать сущность из XML-данных в таблицу стилей xslt?

У меня есть дюжина шаблонов xslt, и большинство из них используют одну конкретную сущность (в моем примере - "ent"). Я не могу изменить эти шаблоны, но я могу изменить исходящие данные XML.

Вопрос в том, можно ли передать объект, объявленный в данных XML, в таблицы стилей xslt? Я пытаюсь сделать это так, но не получится

XML документ

<!DOCTYPE xsl:stylesheet [<!ENTITY ent "World">]>

<?xml-stylesheet type='text/xsl' href='xslt.xslt'?>

<doc/>

XSL xslt.xslt

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<h1>Hello: &ent;</h1>

</xsl:template>

</xsl:stylesheet>

1 ответ

Решение

Любая сущность, на которую есть ссылка в таблице стилей XSLT, должна быть объявлена ​​в самой таблице стилей соответственно во всех внешних DTD, на которые ссылается таблица стилей. Объявление сущности во входных данных XML не помогает вообще. Таким образом, ответ - нет, объявление сущностей в документе XML не позволяет вам ссылаться на такие сущности в таблице стилей XSLT, которая в дальнейшем будет использоваться для преобразования XML.

Другие вопросы по тегам