Могу ли я передать сущность из 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.