В листинге 6.4 planets.xml
преобразуется в простой текст при помощи метода текстового вывода.
Листинг 6.4. Преобразование в простой текст
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
's mass is
Earth masses. Its radius is
miles. Its day is
Earth days long.
И вот результат — просто чистый текст, никакой разметки, никаких пропущенных символов, никаких инструкций обработки:
Mercury's mass is .0553 Earth masses. Its radius is 1516 miles. Its day is 58.65 Earth days long.
Venus's mass is .815 Earth masses. Its radius is 3716 miles. Its day is 116.75 Earth days long.
Earth's mass is 1 Earth masses. Its radius is 2107 miles. Its day is 1 Earth days long.
С другой стороны, метод текстового вывода предназначен не только для создания простого текста, он также применяется для любых текстовых форматов, отличных от XML и HTML. Как мы видели в главе 2, с его помощью можно создавать форматированные документы в формате Rich Text Format (RTF). Rich Text Format использует встроенные текстовые коды, задающие формат документов, и при помощи метода текстового вывода вы можете самостоятельно поместить эти коды в документы.
Следующий пример таблицы стилей первоначально был приведен в главе 2, где она использовалась с целью перевода planets.xml в формат RTF, для понимания которого вы теперь лучше вооружены. В этом случае я преобразую planets.xml
в planets.rtf
, используя коды RTF как элементы буквального результата:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
{\rtf1\ansi\deff0{\fonttbl
{\\fcharset0 Courier New:}}
\viewkind4\ucl\pard\lang1033\b\ The Planets Table\par
\b0 Name\tab Mass\tab Rad.\tab Day\par
\par
}
\tab
\tab
\tab
\tab
\par
Результирующий документ RTF, planets.rtf
, показан на рис. 6.2 в редакторе Microsoft Word 2000.
Рис. 6.2.Файл planets.rtf в Microsoft Word
Заметьте, что методом вывода является текст, а не что-нибудь наподобие « rtf
»:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
{\rtf1\ansi\deff0{\fonttbl
{\\fcharset0 Courier New:}}
\viewkind4\ucl\pard\lang1033\b\ The Planets Table\par
.
.
.
Отметьте также, что я поместил коды RTF сразу же после элемента , поскольку документы RTF должны с самого начала начинаться с кодов RTF; если бы я начал вставлять коды RTF на следующей строке, как, например:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
{
\rtf1\ansi\deff0{\fonttbl
{\\fcharset0 Courier New:}}
\viewkind4\ucl\pard\lang1033\b\ The Planets Table\par
.
.
.
то выходной файл RTF начинался бы с символа новой строки, что привело бы к ошибке в приложении, работающем с файлом RTF (например, вероятно, Microsoft Word).
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, и т.д.), основная задача — гарантировать, что в результирующем документе появится элемент
.
Ниже приведены элементы , которые следует использовать с тремя типами XHTML 1.0 — строгим (strict), переходным (transitional) и кадровым (frameset):
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
А вот элемент для XHTML 1.1:
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
ЭЛЕМЕНТЫ И HTML 4.01
Строго говоря, даже документы HTML должны начинаться с элемента. Официально существует три формы HTML 4.01: строгая (strict), переходная (transitional) и кадровая (frameset). Вот полные элементы
для этих версий: , и . Если вы генерируете совершенно правильные документы HTML, не забудьте добавить в них этот элемент. Дополнительную информацию можно получить по адресу www.w3.org/TR/html40/struct/global.html.
При установке метода вывода в XML для создания элемента можно воспользоваться атрибутами doctype-system
и doctype-public
элемента . Вот пример элемента , создающего элемент для переходного XHTML 1.0:
Читать дальше