Пространство имен XSLT и XSLFO - PullRequest
0 голосов
/ 06 июня 2011

У меня следующая проблема с пространствами имен XSL.Я создаю PDF, используя FOP с одним XSL-файлом и одним XML-файлом.

Вот мой XML-файл:

<?xml version= "1.0" encoding= "ISO-8859-2"?>
<ReportContent>BLABLA<yt:picture src="pic.png"/></ReportContent>

Вот мой XSL-файл:

<?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:yt="http://www.yt.com/text/2"
   >
<xsl:template match="/"> 
<fo:root >
[...]
<fo:flow >
      <fo:block> <xsl:apply-templates select='ReportContent'> </xsl:apply-templates></fo:block>
 </fo:flow>
    </fo:page-sequence>
  </fo:root>
</xsl:template>
</xsl:stylesheet>

Мне нужно включить пространство имен yt :.Когда я делаю это в XML следующим образом:

 <?xml version= "1.0" encoding= "ISO-8859-2"?>
    <ReportContent       xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:yt="http://www.yt.com/text/2">
BLABLA<yt:picture src="pic.png"/>
</ReportContent>

Это прекрасно работает.

Но в реальной жизни я не могу добавить пространство имен в свой XML (способ создания XML неразрешить это).

Поэтому я попытался написать его только на xsl, но он не работает вообще (я пытался добавить его к каждому тегу в xsl, и он не работает).

Я не понимаю, как работает все это пространство имен ...

Можете ли вы помочь мне найти, куда поместить пространство имен в xsl, чтобы я не получил никакой ошибки.

Надеюсь, мой вопрос ясен

Заранее спасибо.

1 Ответ

2 голосов
/ 06 июня 2011

@ Рики, да, XML должен быть изменен. Сожалею. Это должно выглядеть примерно так:

<?xml version= "1.0" encoding= "ISO-8859-2"?>
<ReportContent xmlns:yt="http://www.yt.com/text/2">BLABLA<yt:picture src="pic.png"/>
</ReportContent>
...