{\fcharset0 Courier New:}}
viewkind4uclpardlang1033 The Planets Tablepar
0 Name ab Mass ab Rad. ab Daypar
<xsl:apply-templates/>
par
}</xsl:template>
<xsl:template match='PLANET'>
<xsl:value-of select='NAME'/>
ab
<xsl:value-of select='MASS'/>
ab
<xsl:value-of select='RADIUS'/>
ab
<xsl:value-of select='DAY'/>
ab
par
</xsl:template>
</xsl:stylesheet>
Результирующий документ RTF, planets.rtf
, показан на рис. 6.2 в редакторе Microsoft Word 2000.

Рис. 6.2. Файл planets.rtf в Microsoft Word
Заметьте, что методом вывода является текст, а не что-нибудь наподобие «rtf
»:
<?xml version='1.0'?>
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method='text'/>
<xsl:strip-space elements='*'/>
<xsl:template match='/PLANETS'>{
tf1ansideff0{fonttbl
{\fcharset0 Courier New:}}
viewkind4uclpardlang1033 The Planets Tablepar
.
.
.
Отметьте также, что я поместил коды RTF сразу же после элемента <xsl:template>
, поскольку документы RTF должны с самого начала начинаться с кодов RTF; если бы я начал вставлять коды RTF на следующей строке, как, например:
<?xml version='1.0'?>
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method='text'/>
<xsl:strip-space elements='*'/>
<xsl:template match='/PLANETS'>{
tf1ansideff0{fonttbl
{\fcharset0 Courier New:}}
viewkind4uclpardlang1033 The Planets Tablepar
.
.
.
то выходной файл RTF начинался бы с символа новой строки, что привело бы к ошибке в приложении, работающем с файлом RTF (например, вероятно, Microsoft Word).
Вывод в формате XHTML
W3C представил XHTML как последователя HTML, но ни в XSLT 1.0, ни в рабочем проекте XSLT 1.1 нет никакой специальной поддержки для преобразований из XML в XHTML. Предполагается, что надлежащая поддержка будет включена в XSLT 2.0. Тем не менее, при помощи процессоров XSLT все равно можно создавать документы XHTML.
ПОДРОБНЕЕ О XHTML
Если вы хотите узнать больше о XHTML, обратитесь к источникам: W3C рекомендация XHTML 1.0 по адресу www.w3.org/TR/xhtml1/, а также рекомендация XHTML 1.1 по адресу www.w3.org/TR/xhtml11/.
Помимо заботы о том, что ваш документ должен удовлетворять правилам XHTML (таким, как отсутствие отдельных атрибутов, заключение в кавычки всех значений атрибутов, использование для разметки символов в нижнем регистре, наличие для каждого открывающего тега закрывающего, проверка того, что документ является хорошо сформированным XML, и т.д.), основная задача — гарантировать, что в результирующем документе появится элемент <!DOCTYPE>.
Ниже приведены элементы <!DOCTYPE>
, которые следует использовать с тремя типами XHTML 1.0 — строгим (strict), переходным (transitional) и кадровым (frameset):
<!DOCTYPE html
PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<!DOCTYPE html
PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<!DOCTYPE html
PUBLIC '-//W3C//DTD XHTML 1.0 Frameset//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd'>
А вот элемент <!DOCTYPE>
для XHTML 1.1:
<!DOCTYPE html
PUBLIC '-//W3C//DTD XHTML 1.1//EN'
'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
ЭЛЕМЕНТЫ <!DOCTYPE> И HTML 4.01
Строго говоря, даже документы HTML должны начинаться с элемента <!DOCTYPE>. Официально существует три формы HTML 4.01: строгая (strict), переходная (transitional) и кадровая (frameset). Вот полные элементы <!DOCTYPE> для этих версий: <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>, <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'> и <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/html4/frameset.dtd'>. Если вы генерируете совершенно правильные документы HTML, не забудьте добавить в них этот элемент. Дополнительную информацию можно получить по адресу www.w3.org/TR/html40/struct/global.html.
При установке метода вывода в XML для создания элемента <!DOCTYPE>
можно