Этот документ является не официальным переводом исходной английской версии. Обратите внимание на то, что оригинальная версия документа существует только на английском языке. Данный перевод может содержать неточности и ошибки. Перевод выполнил © Зайцев Дмитрий, 2011. При поддержке сайта latex pillow. Комментарии к переводу оставляйте здесь! | | На главную

W3C

Связывание таблиц стилей с документами XML 1.0 (Второе издание)

Рекомендация W3C от 28 октября 2010

Данная версия:
http://www.w3.org/TR/2010/REC-xml-stylesheet-20101028
Последняя версия:
http://www.w3.org/TR/xml-stylesheet
Предыдущие версии::
http://www.w3.org/TR/2010/PER-xml-stylesheet-20100909
Редакторы:
Джеймс Кларк (James Clark, Первое издание) <[email protected]>
Саймон Питерс (Simon Pieters, Второе издание), Opera Software <[email protected]>
Генри С. Томпсон (Henry S. Thompson, Второе издание), Эдинбургский университет <[email protected]>

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

См. также переводы.

Этот документ, также доступен в таких ненормативных форматах: XML.


Аннотация

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

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

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

Этот документ является продуктом Рабочей группы XML Core в рамках деятельности W3C XML. Английская версия этой спецификации является единственной нормативной версией. Однако, для просмотра переводов данного документа, см. http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-stylesheet.

Это второе издание включает в себя все известные исправления по состоянию на дату публикации, уточняет ряд областей, которые не были указаны в предыдущем издании, а также второе издание было реорганизовано, чтобы позволить другим спецификациям повторно использовать правила для разбора псевдо-атрибутов из строки. Более подробное описание изменений по сравнению с первым изданием, см. B Изменения по сравнению с первым изданием. Это издание заменяет предыдущее издание от 29 июня 1999 года.

Комментарии к этому документу можно направлять по адресу [email protected]; также доступны публичные архивы. Со списком исправлений для этого документа можно ознакомиться по адресу http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata

Этот документ был рассмотрен членами W3C, разработчиками программного обеспечения, а также другими группами W3C и заинтересованными сторонами, и одобрен Директором в качестве Рекомендации W3C. Это стабильный документ и может быть использован в качестве справочного материала или цитат в другом документе. Роль W3C в разработке Рекомендации, заключается в привлечении внимания к спецификации, и способствовать ее широкому распространению. Это повышает функциональность и совместимость в Веб (Web).

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

Содержание

1 Введение
2 Соответствие требованиям
3 Псевдо-атрибуты
4 Инструкция обработки xml-stylesheet

Приложения

A Ссылки
B Изменения по сравнению с первым изданием


1 Введение

(Этот раздел является не нормативным.)

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

Рассмотрите документ XHTML со связыванием таблиц стилей, используя элемент link:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Example with link elements</title>
  <link rel="stylesheet" href="common.css"/>
  <link rel="stylesheet" href="default.css" title="Default style"/>
  <link rel="alternate stylesheet" href="alt.css" title="Alternative style"/>
  <link rel="stylesheet" href="single-col.css" media="all and (max-width: 30em)"/>
 </head>
 <body>
  ...
 </body>
</html>

Этот документ мог быть записан следующим образом, используя инструкции обработки xml-stylesheet:

<?xml-stylesheet href="common.css"?>
<?xml-stylesheet href="default.css" title="Default style"?>
<?xml-stylesheet alternate="yes" href="alt.css" title="Alternative style"?>
<?xml-stylesheet href="single-col.css" media="all and (max-width: 30em)"?>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Example with xml-stylesheet processing instructions</title>
 </head>
 <body>
  ...
 </body>
</html>

2 Соответствие требованиям

Все схемы, примеры, и примечания в этой спецификации ненормативные, как и все разделы, которые явно помечены ненормативными. Все остальное в этой спецификации нормативно.

Ключевые слова должен(must), не должен(must not), следует(should), не следует(should not) и вероятно(may) в этом документе должны интерпретироваться, как описано в RFC 2119. Эти слова не отображаются в верхнем регистре в данной спецификации.[RFC2119]

В данной спецификации определены следующие классы соответствия:

Документы

Документ рассматривается как соответствующий документ, если он удовлетворяет всем необходимым уровням критериев в этой спецификации, которые применяются к документам.

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

процессоры xml-stylesheet

XML определяет приложение как программный модуль, который получает информационный контент XML-документа от процессора XML. [Определение: Процессор xml-stylesheet это такое приложение, которое обрабатывает инструкции обработки XML в соответствии с этой спецификацией.] [XML]

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

Приложения

Процессор xml-stylesheet может быть частью более крупного приложения XML, или может функционировать самостоятельно. В любом случае, [Определение: приложение это потребитель анализа псевдо-атрибута, определенного в этой спецификации.]

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

Вместе с тем ожидается, что спецификации, регулирующие использование языков таблиц стилей, сошлются на эту спецификацию в описании того, как приложения могут определить таблицы стилей для использования в документе. Такие спецификации, как ожидается, определяют интерпретации для значений (или отсутствие значения) этих псевдо-атрибутов которые они используют, делая это таким образом, чтобы быть как можно более последовательными с описаниями этих псевдо-атрибутов в 4 Инструкция обработки xml-stylesheet, поскольку это имеет смысл для приложения и языка(ов) таблицы стилей в данном вопросе.

Эта спецификация определена со ссылкой на словарь для XML предоставляемый Набором Информации XML . [INFOSET]

Представления в этой спецификации используют те же самые обозначения, используемые в спецификации XML. Лексемы в грамматике, которые не определены в данной спецификации, определены в спецификации XML.[XML]

3 Псевдо-атрибуты

[Определение: Правила для разбора псевдо-атрибутов из строки, приведенные в данном разделе.]

[Определение: Результатом разбора является либо множество псевдо-атрибутов или ошибка.]

Если данная строка не соответствует представлению PseudoAtts, тогда результатом разбора будет ошибка.

Представления для строк с псевдо-атрибутами
[1a]   PseudoAtts   ::=    PseudoAtt? (S PseudoAtt)* S?
[2]   PseudoAtt   ::=   Name S? "=" S? PseudoAttValue
[3]   PseudoAttValue   ::=   ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | "'" ([^'<&] | CharRef | PredefEntityRef)* "'")
[4]   PredefEntityRef   ::=   "&amp;" | "&lt;" | "&gt;" | "&quot;" | "&apos;"

[Определение: Каждая строка сопровождается PseudoAtt в представлении PseudoAtts, будучи псевдо-атрибутом.] Псевдо-атрибут имеет имя и значение.

[Определение: Строка, соответствующая по Имени в представлении PseudoAtt является именем соответствующего псевдо-атрибута.]

[Определение: Строка, соответствующая по PseudoAttValue в представлении PseudoAtt — с тремя изменениями, указанными ниже — представляет собой значение соответствующего псевдо-атрибута.]

  1. Каждый CharRef заменен символом, который он представляет в соответствии с XML [XML].

  2. Каждый PredefEntityRef в PseudoAttValue заменяется на U+0026 (&) если это "&amp;", U+003C (<) если это "&lt;", U+003E (>) если это "&gt;", U+0022 (") если это "&quot;" и U+0027 (') если это "&apos;".

  3. Первый и последний символ (начало и конец цитаты) удаляются.

Результатом парсинга будет ошибка, если ограничение правильной сформированности допустимого символа XML нарушается при любом CharRef. [XML]

Результатом парсинга будет ошибка, если есть больше чем один псевдо-атрибут с тем же самым именем.

Если результат парсинга не является ошибкой, тогда им будет множество представленных псевдо-атрибутов, когда данная строка является соответствующим представлением PseudoAtts.

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

[Определение: Единица информации инструкции обработки считается потенциальной инструкцией обработки xml-stylesheet, если она имеет [целевое] свойство xml-stylesheet и находится либо в [дочернем] свойстве информационной единицы документа и появляется перед единицей информации элемента данного [дочернего] свойства, или появляется в [дочернем] свойстве информационной единицы объявленного типа документа.]

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

Для потенциальных инструкций обработки xml-stylesheet, которые появляются в [дочернем] свойстве информационной единицы объявленного типа документа, процессоры xml-stylesheet могут сообщать приложению результаты парсинга вызова правил для того, чтобы проанализировать псевдо-атрибуты из строки, используя свойство [контента] информационной единицы инструкции обработки в качестве строки. [Определение: Если результаты не сообщаются приложению, информационная единица инструкции обработки, считается проигнорированной.]

Примечание:

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

[Определение: Потенциальной инструкцией обработки xml-stylesheet, считается инструкцией обработки xml-stylesheet, если результаты парсинга не сообщают об ошибке, при вызове правил для того, чтобы проанализировать псевдо-атрибуты из строки, используя свойство [контента] информационной единицы инструкции обработки в качестве строки.]

Документы не должны использовать информационные единицы инструкции обработки вместе с [целевым] свойством xml-stylesheet, если они не являются инструкциями обработки xml-stylesheet.

Документы не должны использовать инструкции обработки xml-stylesheet, которые находятся в [дочернем] свойстве информационной единицы объявленного типа документа.

Инструкция обработки xml-stylesheet будет соответствовать следующему представлению:

Представление для инструкции обработки xml-stylesheet
[1]   StyleSheetPI   ::=   "<?xml-stylesheet" ( (S PseudoAtts)? - (Char* "?>" Char*) ) "?>"

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

href

Предоставляет адрес ссылки на таблицы стилей. Документы должны указывать этот псевдо-атрибут. Документы должны установить значение в строку, которая соответствует грамматике для <IRI-reference> приведенных в RFC 3987. [RFC3987]

Примечание:

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

Для получения дополнительной информации о том, как этим управляют в XSLT, см. 3.11 Встроенные модули таблиц стилей в [XSLT].

type

Предоставляет консультативный тип носителя для ссылки на таблицу стилей. Если определено, документы должны установить значение в строку, которое соответствует представлению media-type определенное в разделе 3.7 "Типы носителей" в RFC 2616. [RFC2616]

Примечание:

Синтаксическое соответствие к представлению в RFC 2616, это все, что требуется вышеупомянутым. Эта спецификация не налагает требований относительно состояния используемых типов. Некоторые незарегистрированные (по состоянию на момент публикации данной спецификации) типы носителей, такие как text/xsl, хорошо поддерживаются существующими реализациями, тогда как некоторые зарегистрированные типы носителей, такие как application/xslt+xml, не поддерживаются.

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

title

Предоставляет название таблице стилей, на которую ссылаются, во множестве таблиц стилей. За пределами PseudoAttValue никакие ограничения на значение не накладываются.

media

Предоставляет носители, для которых, применяется указанная таблица стилей. Если указанные документы должны установить значение в строку, которая соответствует media_query_list из спецификации Запросов Носителей. [MQ]

charset

Предоставляет консультативную кодировку символов для таблицы стилей, на которую ссылаются. Если определено, документы должны установить значение на допустимое имя кодировки символов, которое должно быть именем или псевдонимом, помеченным как "предпочтенное имя MIME" в реестре кодировок IANA, если таковой имеется или имя кодировки, если ни один из псевдонимов не был помечен. [IANACHARSET]

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

alternate

Если значение - "yes", оно указывает, что таблица стилей, на которую ссылаются, является альтернативной таблицей стилей и документы должны также указывать title псевдо-атрибута с не пустым значением. Если определено, документы должны установить значение либо в "yes" или "no".

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

Любые ссылки на таблицы стилей, которые указываются внешним образом к документу (например, заголовки Link в некоторых версиях HTTP [RFC2068]) рассматриваются для создания объединений, которые встречаются перед объединениями, указанными в инструкциях обработки xml-stylesheet. Приложение ответственно за принятие всех ассоциаций и определение порядка последовательности, если вообще, их порядок влияет на его обработку.

A Ссылки

Ссылки являются нормативными, если только нет пометки "ненормативное".

IANACHARSET
Кодировки. IANA, май 2007 года. (см. http://www.iana.org/assignments/character-sets.)
INFOSET
XML Информационный набор, Дж. Коуэн (J. Cowan), Р. Тобин (R. Tobin). W3C, февраль 2004 года. (см. http://www.w3.org/TR/xml-infoset/.)
MQ
Запросы носителей, Х. Ли (H. Lie), Т. Целик (T. Çelik), Д. Глазмэн (D. Glazman), А. ван Кестерен (A. van Kesteren). W3C, апрель 2009 года. (см. http://www.w3.org/TR/css3-mediaqueries/.)
RFC2068
(ненормативное) Протокол передачи гипертекста — HTTP/1.1, Р. Филдинг (R. Fielding), Дж. Геттис (J. Gettys), Дж. Могул (J. Mogul), Г. Фристик (H. Frystyk), Т. Бернерс-Ли (T. Berners-Lee). IETF, июнь 1997 года. (см. http://www.ietf.org/rfc/rfc2068.txt.)
RFC2119
Ключевые слова для использования в документах RFC для Указания Уровней Требований, С. Браднер (S. Bradner). IETF, март 1997 года. (См. http://www.ietf.org/rfc/rfc2119.txt.)
RFC2616
Протокол передачи гипертекста — HTTP/1.1, Р. Филдинг (R. Fielding), Дж. Геттис (J. Gettys), Дж. Могул (J. Mogul), Г. Фристик (H. Frystyk), Л. Масинтер (L. Masinter), П. Лич (P. Leach), Т. Бернерс-Ли (T. Berners-Lee). IETF, июнь 1999 года. (см. http://www.ietf.org/rfc/rfc2616.txt.)
RFC3987
интернационализированный идентификаторы ресурса (IRIs), М. Дёрст (M. Dürst), М. Суинерд (M. Suignard). IETF, январь 2005 года. (см. http://www.ietf.org/rfc/rfc3987.txt.)
XML
Расширяемый язык разметки, Т. Брей (T. Bray), Дж. Паоли (J. Paoli), Ч. М. Сперберг-МакКвин (C. M. Sperberg-McQueen), И. Мейлер (E. Maler), Ф. Йорги (F. Yergeau). W3C, ноябрь 2008 года. (см. http://www.w3.org/TR/xml/.)
XSLT
(ненормативное) Трансформации XSL (XSLT) Версия 2.0, М. Кей (M. Kay). W3C, январь 2007 года. (см. http://www.w3.org/TR/xslt20/.)

B Изменения по сравнению с первым изданием

Это приложение является не нормативным

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

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

В следующем списке приведены основные изменения, которые были сделаны: