Этот текст является неофициальным переводом стандарта и не имеет той же силы, что и оригинал.

Рекомендация W3C от 29 июня 1999 г.

Эта версия (английский оригинал):
http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
Последняя версия:
http://www.w3.org/TR/xml-stylesheet
Предыдущая версия:
http://www.w3.org/TR/1999/xml-stylesheet-19990428
Редактор:
James Clark <jjc@jclark.com>
Перевод на русский язык:
Алексей Бешенов <al@beshenov.ru>

Резюме

Этот документ позволяет таблице стилей быть связанной с документом XML через включение одной и более инструкций обработки с целью xml-stylesheet в прологе документа.

Статус этого документа

Этот документ был рассмотрен членами W3C и другими заинтересованными сторонами и был подписан директором как Рекомендация W3C. Этот документ стабилен и может использоваться в качестве ссылки и цитироваться как нормативный источник в других документах. Цель W3C в создании Рекомендаций — привлечь внимание к спецификации и способствовать ее широкому распространению. Это повышает функциональность и совместимость Сети.

Список найденных в этой спецификации опечаток доступен по адресу http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata. Комментарии вы можете направить по адресу <www-xml-stylesheet-comments@w3.org>. Архив публичных комментариев доступен на http://w3.org/Archives/Public/www-xml-stylesheet-comments.

Список текущих рекомендаций W3C и других технических документов вы можете найти по адресу http://www.w3.org/TR.

Рабочая группа ожидает, что в будущем спецификация будет определять дополнительные механизмы связывания таблиц стилей с документами XML.

Использование инструкций обработки XML в этой спецификации нельзя расценивать как прецедент. W3C не предвидит использования инструкций обработки в какой-либо последующей спецификации. Обоснование содержит объяснение, почему они были использованы в этой спецификации.

Этот документ был создан в рамках W3C XML Activity.

Оглавление

1. Инструкция обработки xml-stylesheet

Таблицы стилей могут связываться с документом XML [XML10] при помощи инструкции обработки, имеющей цель xml-stylesheet. Эта инструкция обработки в своем поведении следует конструкции HTML 4.0 <LINK REL="stylesheet">[HTML40].

Инструкция обработки xml-stylesheet обрабатывается аналогично начальному тегу, за тем исключением, что сущности, помимо предопределенных, не должны встречаться.

Приводимое ниже определение синтаксиса дается с использованием той же нотации, что и в рекомендации на XML [XML10]. Символы, не определенные здесь, определены в рекомендации.

Инструкция обработки xml-stylesheet
[1]    StyleSheetPI    ::=    '<?xml-stylesheet' (S PseudoAtt)* S? '?>'
[2]    PseudoAtt    ::=    Name S? '=' S? PseudoAttValue
[3]    PseudoAttValue    ::=    ('"' ([^"<&] | CharRef | PredefEntityRef)* '"'
| "'" ([^'<&] | CharRef | PredefEntityRef)* "'")
- (Char* '?>' Char*)
[4]    PredefEntityRef    ::=    '&amp;' | '&lt;' | '&gt;' | '&quot;' | '&apos;'

В PseudoAttValue CharRef или PredefEntityRef представляется в том же виде, как и обычный атрибут XML. Фактическое значение псевдоатрибута есть значение, полученное после замены всех ссылок символами, на которые они указывают. Эта замена не производится автоматически процессором XML.

Инструкция обработки xml-stylesheet допускается только в прологе XML-документа. Синтаксис XML ограничивает, где инструкции обработки допустимы в прологе; инструкция обработки xml-stylesheet допустимы в любом месте пролога, удовлетворяющем этим ограничениям.

* Если инструкция обработки xml-stylesheet встречается во внешнем подмножестве DTD или в сущности-параметре, возможно, что она не будет исполнена XML-процессором без валидации (см. [XML10]).

Определены следующие псевдоатрибуты:

href CDATA #REQUIRED
type CDATA #REQUIRED
title CDATA #IMPLIED
media CDATA #IMPLIED
charset CDATA #IMPLIED
alternate (yes|no) "no"

Семантика псевдоатрибутов аналогична конструкции <LINK REL="stylesheet"> в HTML 4.0, за исключением псевдоатрибута alternate. Если указано alternate="yes", то инструкция обработки имеет семантику <LINK REL="alternate stylesheet"> вместо <LINK REL="stylesheet">.

* Так как значение атрибута href является ссылкой URI, оно может быть относительным URI и содержать идентификатор фрагмента. В частности, ссылка URI может содержать только идентификатор фрагмента. Такая ссылка указывает на часть документа, содержащего инструкцию обработки xml-stylesheet (см. [RFC2396]). Следовательно, инструкция обработки xml-stylesheet позволяет встраивать таблицы стилей в тот же документ, где расположена инструкция обработки xml-stylesheet.

В некоторых случаях таблицы стилей могут связываться с XML-документом при помощи внешних средств. Например, ранние версии HTTP [RFC2068] (раздел 19.6.2.4) позволяли связывание таблиц стилей с документами при помощи заголовка Link. Любые ссылки на таблицы стилей, указанные внешними средствами, считаются полученными до ссылок, указанных инструкциями обработки xml-stylesheet. Это аналогично правилам HTML 4.0 (см. раздел 14.6).

Вот некоторые примеры HTML 4.0 с соответствующей инструкцией обработки:

<LINK href="mystyle.css" rel="style sheet" type="text/css">
<?xml-stylesheet href="mystyle.css" type="text/css"?>

<LINK href="mystyle.css" title="Compact" rel="stylesheet"
type="text/css">
<?xml-stylesheet href="mystyle.css" title="Compact" type="text/css"?>

<LINK href="mystyle.css" title="Medium" rel="alternate stylesheet"
type="text/css">
<?xml-stylesheet alternate="yes" href="mystyle.css" title="Medium"
type="text/css"?>

Множественные инструкции обработки xml-stylesheet также допустимы с абсолютно той же семантикой, что и у LINK REL="stylesheet". Например,

<LINK rel="alternate stylesheet" title="compact" href="small-base.css"
type="text/css">
<LINK rel="alternate stylesheet" title="compact" href="small-extras.css"
type="text/css">
<LINK rel="alternate stylesheet" title="big print" href="bigprint.css"
type="text/css">
<LINK rel="stylesheet" href="common.css" type="text/css">

эквивалентно

<?xml-stylesheet alternate="yes" title="compact" href="small-base.css"
type="text/css"?>
<?xml-stylesheet alternate="yes" title="compact" href="small-extras.css"
type="text/css"?>
<?xml-stylesheet alternate="yes" title="big print" href="bigprint.css"
type="text/css"?>
<?xml-stylesheet href="common.css" type="text/css"?>

A. Ссылки

HTML40
World Wide Web Consortium. HTML 4.0 Specification. W3C Recommendation. See http://www.w3.org/TR/REC-html40
RFC2068
R. Fielding, J. Gettys, J. Mogul, H. Frystyk Nielsen, and T. Berners-Lee. Hypertext Transfer Protocol -- HTTP/1.1.. IETF RFC 2068. See http://www.ietf.org/rfc/rfc2068.txt.
RFC2396
T. Berners-Lee, R. Fielding, and L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax. IETF RFC 2396. See http://www.ietf.org/rfc/rfc2396.txt.
XML10
World Wide Web Consortium. Extensible Markup Language (XML) 1.0. W3C Recommendation. See http://www.w3.org/TR/1998/REC-xml-19980210

B. Обоснование

Крайне необходимым требованием к спецификации на связывание таблиц стилей была возможность реализации в срок последующими версиями основных веб-браузеров. Спецификация может удовлетворять этому требованию, только в случае выбора простого метода, по большей части основанного на проверенном существующем механизме.

Использование инструкций обработки предотвращает засорение основной структуры документа специфической для приложений информацией об обработке.

Выбранный для данной версии спецификации механизм не ограничивает дополнительные механизмы, планирующиеся в последующих версиях. Не ожидается, что они будут использовать инструкции обработки; в действительности, они могут не включать связывающую информацию в исходный документ.