Copyright © 1999 W3C (MIT, INRIA, Keio ), All Rights Reserved. W3C liability,trademark, document use and software licensing rules apply.
Этот документ позволяет таблице стилей быть связанной с документом 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.
xml-stylesheetxml-stylesheetТаблицы стилей могут связываться с документом XML [XML10] при помощи инструкции обработки, имеющей цель xml-stylesheet. Эта инструкция обработки в своем поведении следует конструкции HTML 4.0 <LINK REL="stylesheet">[HTML40].
Инструкция обработки xml-stylesheet обрабатывается аналогично начальному тегу, за тем исключением, что сущности, помимо предопределенных, не должны встречаться.
Приводимое ниже определение синтаксиса дается с использованием той же нотации, что и в рекомендации на XML [XML10]. Символы, не определенные здесь, определены в рекомендации.
| [1] | StyleSheetPI | ::= | '<?xml-stylesheet' (S PseudoAtt)* S? '?>' | |
| [2] | PseudoAtt | ::= | Name S? '=' S? PseudoAttValue | |
| [3] | PseudoAttValue | ::= | ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | |
| | "'" ([^'<&] | CharRef | PredefEntityRef)* "'") | ||||
| - (Char* '?>' Char*) | ||||
| [4] | PredefEntityRef | ::= | '&' | '<' | '>' | '"' | ''' |
В 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"?>
Крайне необходимым требованием к спецификации на связывание таблиц стилей была возможность реализации в срок последующими версиями основных веб-браузеров. Спецификация может удовлетворять этому требованию, только в случае выбора простого метода, по большей части основанного на проверенном существующем механизме.
Использование инструкций обработки предотвращает засорение основной структуры документа специфической для приложений информацией об обработке.
Выбранный для данной версии спецификации механизм не ограничивает дополнительные механизмы, планирующиеся в последующих версиях. Не ожидается, что они будут использовать инструкции обработки; в действительности, они могут не включать связывающую информацию в исходный документ.