## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnXmlPages
##master-date:2012-01-25T04:55:19Z
#acl -All:write Default
#format wiki
#language ru

= XML-страницы и применение XSLT =
<<TableOfContents>>

Уведомление о безопасности: включение обработки XSLT посредством 4suite '''может быть опасным''' (см. [[КакНастраивать#auth|справку по параметру]] `allow_xslt` для дополнительной информации).

Если у Вас установлен [[http://4suite.org/|Python4Suite]], то можно использовать XML-документы как страницы вики. Важно начинать подобные страницы с преамбулы «{{{<?xml ...>}}}» на первой строке. Также, необходимо определить таблицу стилей, которая будет использоваться для преобразования XML-документа в HTML. Это реализуется с использованием [[http://www.w3.org/TR/xml-stylesheet/|стандартной инструкции «xml-stylesheet»]], с указанием имени страницы, содержащей таблицу стилей, в атрибуте «href».

Не забудьте разрешить применение XSLT, см. КакНастраивать.

Подробнее см. пример ниже, также см. страницу ВерсияXslt.


== Пример ==
{{{#!highlight xml
<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="ВерсияXslt" type="text/xml"?>

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

   <xsl:output method="html" omit-xml-declaration="yes" indent="no"/>

   <xsl:template match="/">
     Данная вики использует библиотеку XSLT, разработанную 
     <xsl:value-of select="system-property('xsl:vendor')"/>
     (<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
     и реализующую XSLT версии <xsl:value-of select="system-property('xsl:version')"/>
   </xsl:template>

</xsl:stylesheet>
}}} 

= Отображение DocBook =

Для того, чтобы МойнМойн мог отображать страницы !DocBook, необходимо выполнить шаги, указанные ниже. После их выполнения станет возможно писать и сохранять файлы !DocBook в МойнМойн и просматривать их в виде HTML. Важно отметить, что обработка страниц !DocBook может занимать несколько секунд (она выполняется при сохранении страницы).

== Установка поддержки DocBook ==

 1. Установите 4suite и разрешите применение XSLT, см. выше
 1. Откройте [[http://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608|список файлов XSLТ для DocBook на SourceForge]] и скачайте самый свежий архив. Он содержит файлы XSLT, необходимые для генерации HTML.
 1. Распакуйте архив и скопируйте каталоги `html`, `lib`, `common` и файл `VERSION` в каталог, доступный для записи МойнМойн (например, в каталог `data`)
  * После обновления 4suite необходимо удалить файл `db_compiled.dat` в его каталоге (если он существует).
 1. Отредактируйте параметр `docbook_html_dir` конфигурации вики, задав в качестве значения каталог, созданный на предыдущем шаге (это каталог, где содержится, например, `docbook.xsl`)
 1. Теперь парсер !DocBook должен быть доступен для использования

=== Использование DocBook ===

Правка файлов !DocBook осуществляется также, как и в любом другом окружении. Если необходимо добавить ссылку на другую страницу вики, достаточно просто написать ВикиИмя в тексте. Страницы, которые доступны только по свободным ссылкам (`[[...]]`) пока не могут быть связаны напрямую.

Файлы в формате !DocBook или предваряются [[ПомощьПоИнструкциям|инструкцией]] {{{#format docbook}}}, указываемой на первой строке, или же [[ПомощьПоПарсерам|парсер]] указывается, как в примере ниже:

{{{#!docbook
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book>
<bookinfo>
<author>
<firstname>Александр</firstname>
<surname>Привалов</surname>
</author>
<copyright>
<year>2005</year>
</copyright>
</bookinfo>
<chapter>
<title>Заголовок главы</title>
<sect1>
<title>Заголовок раздела</title>
<para>Это — абзац.</para>
<para>
<emphasis role="bold">
Этот абзац набран шрифтом с полужирным начертанием.
</emphasis>
</para>
</sect1>
</chapter>
</book>
}}}

''Замечание:'' Для просмотра примера выше необходимо установить !DocBook, как описано ранее.
