Jump to content

Формальный публичный идентификатор

(Перенаправлено с публичного идентификатора )

Формальный общедоступный идентификатор ( FPI ) — это короткий фрагмент текста с определенной структурой, который можно использовать для уникальной идентификации продукта, спецификации или документа. FPI были представлены как часть стандартного обобщенного языка разметки (SGML) и служат конкретным целям в форматах, исторически полученных из SGML ( HTML и XML ). Некоторые из их наиболее распространенных применений — это часть объявлений типов документов (DOCTYPE) и определений типов документов (DTD) в SGML, XML и исторически HTML, но они также используются в форматах файлов vCard и iCalendar для идентификации программного продукта, который сгенерировал файл.

В последнее время унифицированные идентификаторы ресурсов (URI) и универсально уникальные идентификаторы для уникальной идентификации объектов обычно используются (UUID). FPI стали устаревшей системой .

Синтаксис

[ редактировать ]

FPI состоит из идентификатора владельца , за которым следует двойная косая черта ( //), за которым следует текстовый идентификатор . [1] : 381–382  Например, идентификатор " -//W3C//DTD HTML 4.01//EN" можно разбить на две части: идентификатор владельца , который указывает на эмитента FPI, и текстовый идентификатор , который указывает на конкретный документ или объект, который идентифицирует FPI. [2] В примере идентификатор владельца — « -//W3C" и текстовый идентификатор " DTD HTML 4.01//EN".

Сам текстовый идентификатор состоит из нескольких составных частей. [1] : 385  Последовательность пробелов рассматривается как эквивалент одного пробела. [1] : 381–382 

Идентификатор владельца

[ редактировать ]

Существует три типа идентификатора владельца, отличающиеся первыми тремя символами: ISO для идентификатора владельца ISO , -// для незарегистрированного идентификатора владельца или +// для зарегистрированного идентификатора владельца . [1] : 383–384 

Идентификатор владельца ISO

[ редактировать ]

Идентификатором владельца ISO является либо номер публикации ISO, например ISO 8879:1986, или регистрационный номер ISO-IR , например ISO Registration Number 111 для ISO-IR-111 . Последний тип разрешен только для CHARSET ИФП (см. ниже). В любом случае он отличается тем, что начинается с символов ISOи не требует какого-либо префикса перед этими символами. [1] : 383–384 

Раньше год отделялся от стандартного номера дефисом ( -, например ISO 8879-1986), использование которого теперь устарело . [3] Вместо этого теперь используется дефис для отделения номера детали от стандартного номера; год следует за любым номером детали, если он присутствует, и отделяется двоеточием ( :). [2]

Идентификатор незарегистрированного владельца

[ редактировать ]

Идентификатор незарегистрированного владельца начинается с -//. [1] : 384–385  К владельцам, использующим незарегистрированные идентификаторы, относятся W3C ( -//W3C), [4] : 8–9  Интернета Инженерная группа ( -//IETF), [5] ( Министерство обороны США англ. -//USA-DOD), [6] Европейский Парламент ( -//EP) [7] и другие. Поскольку он не зарегистрирован, его уникальность не гарантируется (другой владелец может выбрать тот же идентификатор владельца), что ослабляет гарантию уникальности FPI в целом, хотя его отличие от всех других FPI по-прежнему гарантировано. одного и того же владельца, а также от всех ИФУ, имеющих зарегистрированных владельцев. [1] : 186 

Идентификатор зарегистрированного владельца

[ редактировать ]

Идентификатор зарегистрированного владельца начинается с символов +//. Это относится к зарегистрированному идентификатору, как это предусмотрено стандартом ISO 9070 . [1] : 384  Фактически зарегистрированная часть — это префикс зарегистрированного владельца , который следует за +// и при необходимости может сопровождаться одной или несколькими частями, назначенными владельцем, которые могут идентифицировать, например, отделы внутри организации. [1] : 184  Если используются дополнительные к зарегистрированному префиксу компоненты имени владельца, они отделяются от префикса :: пара. [2] [8] : 63 

Префикс зарегистрированного владельца, соответствующий стандарту ISO 9070, может быть одним из следующих: [2]

  • , Префикс авторитетного стандарта ISO идентификатор стандарта ISO или ISO/IEC . [2] Хотя этим ИФУ не обязательно иметь ведущего +// как упоминалось выше, [1] : 184, 383–384  такой префикс иногда используется в ссылках на стандарты ISO в FPI, особенно на те, которые также являются стандартами IEC . [8] : 318–319 
  • , Префикс центра регистрации ISO который может быть:
    • Полный префикс органа регистрации (идентификатор стандарта ISO без года, за которым следует /RA без учета регистра) [2]
    • Префикс ISO 2375 (строка ISO Registration Number и пробел, за которым следует ISO-IR. номер [2] хотя, как уже говорилось выше, +// в этом случае можно опустить). [1] : 383–384 
    • ( Префикс ISBN строка ISBN, пробел и ISBN), [2] [8] : 321–325  принятие которого было добавлено в более поздней поправке к ISO 9070. [1] : 184, 384 
    • Совсем недавно зарегистрированные доменные имена (после IDN и пробел) также разрешены. [9] [10] Например, владелец example.net может выдавать FPI, используя идентификатор владельца " +//IDN example.net".
  • , Префикс органа-члена ISO т.е. идентификатор организации по стандартизации, которая является членом ISO. [2] [1] : 184, 384 
  • : Префикс авторитета организации, идентифицированный ISO строка ICD за которым, без промежуточного пробела, следует код организации ISO 6523 . [2] [1] : 184 

Текстовый идентификатор

[ редактировать ]

Текстовые идентификаторы можно разбить на класс , описание и язык . В примере -//W3C//DTD HTML 4.01//EN, класс " DTD", что указывает на то, что FPI представляет собой определение типа документа; описание имеет вид " HTML 4.01"; и язык " EN", что предполагает, что определение типа документа написано на английском языке (хотя документы, соответствующие DTD, не обязательно должны быть на английском языке). [4] : 7  Класс отделяется от описания пробелом; описание отделяется от языка двойной косой чертой. Текстовый идентификатор может дополнительно содержать индикатор версии после языка, также разделенный двойной косой чертой.

Текстовый идентификатор следует сразу за // пара после идентификатора владельца и должна начинаться с одного из следующих заглавных слов, за которым следует пробел, определяющий класс открытого текста : [1] : 385–387 

  • CAPACITY
  • CHARSET
  • DOCUMENT
  • DTD
  • ELEMENTS
  • ENTITIES
  • LPD
  • NONSGML
  • NOTATION
  • SD[11]
  • SHORTREF
  • SUBDOC
  • SYNTAX
  • TEXT

DOCUMENT, SUBDOC и TEXT относятся к документам SGML или фрагментам документов SGML. [1] : 386  Те из TEXT предназначены для ссылки с использованием текстового объекта (без ключевого слова типа объекта, т. е. вставленного непосредственно в документ), тогда как классы класса SUBDOC предназначены для ссылки на объект поддокумента (с SUBDOC ключевое слово в объявлении объекта, т.е. интерпретируются с использованием их собственных индивидуальных схем, пространств имен и т. д.). [1] : 294–296, 400–401  Те из DOCUMENT class не предназначены для ссылки на него как на объект из прилагаемого документа.

CAPACITY и SYNTAX обратитесь к частям объявления SGML. SD (для всей декларации SGML) был добавлен в этот список более поздним расширением, добавленным к стандарту в качестве приложения, которое также определяет определенные расширения, необходимые XML. [11] LPD относится к определению процесса связи SGML (определяющему преобразование из одного формата SGML в другой). ELEMENTS, ENTITIES и SHORTREF относятся к частям определения типа документа (DTD), состоящим из определенных типов объявлений разметки. DTD относится ко всему DTD.

Остальные три относятся к концепциям за пределами SGML: CHARSET относится к кодированному набору символов , NOTATION в такой формат, как формат файла (либо для ссылок на объекты из внешних файлов, либо для интерпретации текстового формата, содержащегося внутри элемента), [1] : 336–337  и NONSGML к активу в формате, отличном от SGML.

Маркер доступности и описание

[ редактировать ]

После пробела после имени текстового класса следует последовательность -// если FPI ссылается на недоступный общедоступный текст [1] : 385  — т.е. документ, файл или спецификация, которые недоступны для доступа или покупки широкой публики. [1] : 182  Общедоступное текстовое описание следует за этим маркером; для доступного общедоступного текста описание следует сразу после пробела после имени текстового класса. [1] : 385  Для публикации ISO описание берется из последнего элемента заголовка публикации, не считая номера детали; в противном случае это может быть любая уникальная строка разрешенных символов. [1] : 387  Описание завершается другим // пара. [1] : 385 

Последовательность обозначения ISO 2022

[ редактировать ]

Часть FPI, следующая за описанием, зависит от класса текста. Для CHARSET FPI — это публичный текст, обозначающий последовательность , [1] : 385  предоставление текстового представления escape-последовательности обозначения ISO/IEC 2022 в обозначении столбца/строки (например, ESC 2/8 4/0); Ожидается, что зарегистрированные escape-символы обозначения будут соответствовать указанному идентификатору владельца ISO, тогда как escape-коды обозначения для частного использования размещаются в пространстве имен по идентификатору владельца FPI. [1] : 389–390  В качестве примера этого типа FPI можно привести FPI. ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6 используется в HTML 4 объявлении SGML для идентификации Unicode . [12]

Для всех остальных FPI (т.е. тех, у которых класс не CHARSET), часть, следующая за описанием, представляет собой общедоступный текстовый язык , представляющий собой последовательность заглавных букв, которая настоятельно рекомендуется (но не обязательно) быть кодом ISO 639-1 . [1] : 387–388  Отказ от обязательного использования кода ISO 639-1 позволяет избежать необходимости проверки программного обеспечения для проверки того, является ли язык кодом ISO 639-1, а также обеспечивает расширяемость: [1] : 387  например, небольшое количество FPI, используемых на практике, используют коды ISO 639-3 (например, NDS для нижненемецкого языка ) [13] или языковые теги IETF с удаленными дефисами (например, SRLATN для сербского написано на Гаице ) [14] для случаев, когда кодов ISO 639-1 оказывается недостаточно для отличия ресурса от версий на других языках или языковых разновидностях. В соответствии с рекомендациями ISO 9070 и Стивен ДеРоуз Дэвид Дж. Дюран предлагают использовать XX если код ISO 639 не применим. [8] : 62 

В спецификации отмечается, что хотя язык ресурса может влиять на определяемые данные и имена, а также на язык любых комментариев исходного кода, этот язык влияет на удобство использования некоторых текстовых классов больше, чем других. [1] : 387  Например, язык EN заданный в FPI в объявлении DOCTYPE HTML 4 или XHTML 1, не следует изменять, независимо от языка самой веб-страницы; [4] : 7  напротив, таблицы стилей DSSSL для DocBook внутренне используют FPI с разными языками для идентификации наборов сущностей таблицы строк для конкретных локализаций . [15]

Версия отображения объекта

[ редактировать ]

Дополнительно, кроме CHARSET, CAPACITY, NOTATION и SYNTAX FPI, для которых последовательность или язык обозначения должны быть завершающей частью, [1] : 390  за кодом языка может следовать другой // пара, [1] : 385  за которым следует версия общедоступного текстового отображения , которая указывает конкретную платформу, на которую должна быть нацелена реализация объектов SGML . [1] : 389–390  Например, база ISO 8879:1986//ENTITIES Added Latin 1//EN набор сущностей определяет сущности с именами Latin-1, используя тавтологию. SDATA сущности, [1] : 506–507  [16] пока ISO 8879:1986//ENTITIES Added Latin 1//EN//XML реализует их, используя ссылки на кодовые точки Unicode для использования в XML . [17] Аналогично, общий набор сущностей для HTML 5 и MathML использует FPI -//W3C//ENTITIES HTML MathML Set//EN//XML. [18]

Примеры ИЦП

[ редактировать ]
Примеры ИФП
ИФП Значение
+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION CompuServe Graphic Interchange Format//EN[8] : 322  GIF ( .gif) формат изображения (эквивалент типа MIME image/gif) — пример владельца ISBN FPI и NOTATION FPI используется как идентификатор формата файла.
+//ISO/IEC 10744//NOTATION Systeme International kilogram//EN[8] : 319  международной системы Базовая единица килограмм .
ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6[12] ( Набор символов в кодировке Unicode или UCS ), на который ссылаются числовые ссылки на символы в HTML — пример CHARSET ИФП
-//W3C//DTD HTML 4.01 Transitional//EN[4] : 8  Определение типа документа HTML 4.01 Transitional ; соответствует URL-адресу системного идентификатора http://www.w3.org/TR/html4/loose.dtd[4] : 8 
-//Facebook//NONSGML Facebook Events V1.0//EN[19] [20] Facebook Events как генератор файлов iCalendar — пример NONSGML FPI используется для идентификации пакета программного обеспечения.
-//EP//NONSGML PV 20151125 RES-RCV DOC PDF V0//EN[7] Результаты в Европейском парламенте поименного голосования по поддержке Стратегической рамочной программы ЕС по охране труда и технике безопасности на 2014–2020 годы (A8-0312/2015) — пример NONSGML FPI используется для идентификации документа в формате, отличном от SGML (в данном случае PDF ).
-//W3C//ENTITIES HTML MathML Set//EN//XML[18] символов Набор HTML 5 и MathML ; соответствует URL-адресу системного идентификатора http://www.w3.org/2003/entities/2007/htmlmathml-f.ent[18] — пример ENTITIES ИФП
+//IDN nwalsh.com//DTD DocBook DSSSL Architecture V1.0//EN[10] Определение типа документа варианта DocBook 3.1, который может одновременно представлять собой DSSSL. таблицу стилей [10] — пример доменного имени, используемого в качестве владельца FPI.
+//ISBN 3-893-196463::Goosens//NOTATION Der LaTeX Begleiter//DE[21] Формат LaTeX , используемый для формул в академических работах. [21] — пример FPI, использующего код языка, отличный от EN для ссылки на неанглоязычный справочный материал
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EN[22]
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//FR[23]
  • -//Norman Walsh//ENTITIES DocBook Stylesheet Localization//EL[24]
Строковые таблицы на английском, французском и греческом языках, используемые таблицами стилей DSSSL для DocBook , соответственно (например, сущность &Chapter; определяется как "Chapitre" на французском языке [25] и "Chapter" по-английски) [26] — пример использования языкового кода FPI для различения разных локализаций.

Использование в XML, SGML и HTML.

[ редактировать ]

FPI, несомненно, является наименее понятной частью объявления типа документа (DOCTYPE), неотъемлемым компонентом действительных документов HTML , XML и стандартного обобщенного языка разметки (SGML). [27] его программы Влияние формального публичного идентификатора на исходный документ необычно тем, что оно может зависеть не только от его собственной синтаксической правильности и поведения анализирующей , но также от статуса регистрации ISO организации, ответственной за схему, на которую ссылается FPI. . [28]

Публичные идентификаторы и системные идентификаторы в SGML

[ редактировать ]

SGML использует две формы идентификаторов ресурсов: системные идентификаторы уникальны и имеют смысл только внутри конкретной системы, а общедоступные идентификаторы уникальны и значимы в более широкой области. [1] : 186  Термин «публичный» здесь не обязательно означает, что ресурс доступен широкой публике — например, он может быть доступен только в пределах одной организации (в этом случае это недоступный общедоступный текст ) — а только то, что он существует. вне контекста конкретной системной среды или документа, в котором на него есть ссылка. [1] : 182  FPI — это «формальный» общедоступный идентификатор в том смысле, что он соответствует формальной структуре, установленной стандартом SGML (ISO 8879); [1] : 183  общедоступные идентификаторы, которые не соответствуют формальной структуре и, следовательно, не являются FPI, иногда называются «неформальными» общедоступными идентификаторами. [1] : 186 

Хотя ограничения формальных (в отличие от неформальных) общедоступных идентификаторов являются необязательной функцией, поскольку спецификация FPI была введена на позднем этапе разработки ISO 8879, настоятельно рекомендуется использовать FPI для общедоступных идентификаторов, поскольку структура FPI гарантирует, что ИФП, назначенные одним владельцем, не конфликтуют с ИФП, назначенными другими владельцами (за исключением случаев незарегистрированных владельцев с конфликтующими именами), в то время как неофициальные публичные идентификаторы не имеют гарантии уникальности, а это означает, что идентификаторы, назначенные одним владельцем, могут конфликтовать с формальными или неофициальными идентификаторами. общедоступные идентификаторы, назначенные другим лицом. [1] : 186  Функцию, позволяющую интерпретировать общедоступные идентификаторы с использованием формальной структуры, требующую, чтобы общедоступные идентификаторы были FPI, можно включить в объявлении SGML с помощью FORMAL название функции. [1] : 64, 88, 378 

Системные идентификаторы, напротив, не имеют структуры, определенной самим SGML — они могут быть именами файлов, ключами базы данных или даже адресами индексируемого хранилища — но интерпретируются компонентом менеджера объектов системы SGML для определения местоположения объекта. [1] : 378 

SGML Внешний идентификатор состоит из ключевого слова PUBLIC за которым следует литерал общедоступного идентификатора и необязательный литерал системного идентификатора или ключевое слово SYSTEM за которым следует необязательный литерал для системного идентификатора. [1] : 379  Литералы имеют префикс и суффикс либо буквенного разделителя , либо альтернативного буквенного разделителя . [1] : 380–381  обычно устанавливается в объявлении SGML в двойные и одинарные кавычки ASCII, как они есть в справочном конкретном синтаксисе для SGML, [1] : 372  а также в XML. [29] Использование SYSTEM Ключевое слово в определении объекта SGML без следующего системного идентификатора разрешено, если менеджер объекта может разрешить объект только по его имени. [1] : 378  Внешние идентификаторы используются в объявлениях типов документов (DOCTYPE), ссылающихся на определения типов документов (DTD). [1] : 403  в спецификациях внешнего объекта [1] : 400  и объявления обозначений [1] : 427  в DTD и в объявлениях типов ссылок, ссылающихся на определения процессов ссылок (LPD). [1] : 433–434 

Развитие XML

[ редактировать ]

Введение URI и отстранение FPI

[ редактировать ]

Внешние идентификаторы в XML более ограничены, чем в общем SGML, при этом изменения смещают акцент с общедоступных идентификаторов, таких как FPI, на стандартизацию формы, которую принимают системные идентификаторы. Системный идентификатор следует рассматривать как (абсолютный или относительный) URI . [30] [31] но не должен содержать идентификатор фрагмента URI (часть, начинающаяся с #). [31] Также обычно требуется системный идентификатор: [32] тот SYSTEM За ключевым словом должен следовать литерал системного идентификатора, а PUBLIC За ключевым словом в синтаксисе общих внешних идентификаторов должны следовать литералы как для общедоступных, так и для системных идентификаторов. [31] Однако в качестве исключения объявления нотации могут использовать общедоступный идентификатор без системного идентификатора. [33]

В отличие от требования, чтобы системный идентификатор был URI (иногда называемый формальным системным идентификатором или FSI), [34] : 19  СГМЛ FORMAL функция отключена в XML, [30] [35] поскольку формат общедоступных идентификаторов не определяется XML (т. е. от них явно не требуется, чтобы они были FPI, хотя они могут быть таковыми). Единственные подробности, которые спецификация XML предусматривает в отношении общедоступного идентификатора, заключаются в том, что он может быть указан вместе с системным идентификатором и может использоваться процессором XML вместе с другой информацией для определения альтернативного URI (в противном случае необходимо использовать URI, указанный в системном идентификаторе). [31]

Идентифицирующие строки для пространств имен XML должны быть непустыми URI (например, абсолютный URL-адрес; использование относительных URL-адресов не рекомендуется), [36] хотя они не обязательно должны быть разрешимыми URL-адресами и могут, например, быть URN . [32]

Замена DTD

[ редактировать ]

Кроме того, альтернативные форматы схем , такие как XML Schema (XSD), служат конкурентами DTD в контексте XML, преодолевая некоторые ограничения DTD. XSD можно (в отличие от DTD) проверять с помощью тех же инструментов, что и любой другой XML-документ. [37] включает поддержку пространств имен XML (которые DTD могут интерпретировать только как фиксированные части рассматриваемых имен элементов и атрибутов), [38] позволяет регулярных выражений на формат текстовых данных, таких как телефонные номера, и позволяет лучше выражать сложные структуры модели контента. накладывать ограничения [37]

Таким образом, форматы XML реже используют DTD (например, могут использовать FPI для нотаций или внешних объектов), и, следовательно, реже содержат DOCTYPE, ссылающийся на DTD (либо по FPI, либо только по URI — хотя DOCTYPE по-прежнему может использоваться для определений объектов, встроенных в сам XML-файл). [39] Например, большинство версий RSS (за исключением RSS 0.91) не имеют официального DTD. [40] Аналогичным образом, формат DocBook , который первоначально использовал объявление типа документа, идентифицирующее DTD по FPI, переключил определение основной схемы с DTD на RELAX NG в версии 5.0 и в то время перестал использовать объявления типа документа. [41] и Scalable Vector Graphics (SVG) сделали то же самое в версии 1.2. [39]

Поиск и разрешение FPI

[ редактировать ]

системы SGML Если системный идентификатор (например, путь или URL-адрес) не указан для ресурса, идентифицированного общедоступным идентификатором, например FPI, менеджер объектов сгенерирует его со ссылкой на общедоступный идентификатор. Хотя сама спецификация SGML не определяет, как менеджер объектов должен это делать, [5] : 65–66  намерение состояло в том, чтобы использовать таблицу, сопоставляющую общедоступные идентификаторы с системными идентификаторами. [1] : 180  Соответственно, был создан формат каталога SGML , содержащий сопоставления общедоступных и системных идентификаторов; файл каталога также может указывать правила для переопределения данного системного идентификатора. [5] : 65–66  [42]

Хотя XML требует использования системных идентификаторов в большем количестве мест, чем сам SGML, каталоги все равно могут потребоваться для переопределения и переопределения данного системного идентификатора: системный идентификатор, который является локальным путем, может быть бесполезен на других машинах, в то время как тот, который сетевой URL-адрес бесполезен, например, если сетевое соединение недоступно. [32] Соответственно, существует альтернативный формат каталога на основе XML для использования программным обеспечением XML, поддерживающий правила замены или перезаписи URI, а также для сопоставления FPI с URI. [32]

Например, запись в каталоге SGML может указывать локальный путь (относительно файла каталога) к копии Scalable Vector Graphics 1.1 DTD и указывать объявление SGML (в данном случае объявление синтаксиса XML), которое процессор SGML должен использовать для этого: [43]

PUBLIC "-//W3C//DTD SVG 1.1//EN" svg11.dtd
DTDDECL "-//W3C//DTD SVG 1.1//EN" /usr/share/xml/declaration/xml.dcl

Схема альтернативного формата каталога XML сама определена в DTD, который сам идентифицируется FPI ( -//OASIS//DTD Entity Resolution XML Catalog V1.0//EN). [44] Он аналогичным образом позволяет отображать сопоставления FPI с путями, хотя, поскольку он предназначен для использования только с XML, он не поддерживает указание альтернативного объявления SGML. [32] хотя существуют расширения для выражения остальной информации, выражаемой в каталоге SGML. [45] Приведенное выше сопоставление DTD FPI представлено следующим образом: [44]

<public publicId="-//W3C//DTD SVG 1.1//EN" uri="svg11.dtd"/>

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

[ редактировать ]

HTML со 2 по 4

[ редактировать ]

1.x на основе XML Версии HTML со 2 по 4 (включая XHTML ) были определены как профили SGML и указаны с помощью объявления SGML и определения типа документа (DTD). Конкретная используемая версия DTD указывалась в объявлении типа документа с использованием FPI, иногда (особенно в более поздних версиях и требуется в XML, как упоминалось выше) в сочетании с URL-адресом файла DTD в качестве системного идентификатора. [4] : 8–9  В отличие от объявления SGML для XML, [30] декларация SGML для HTML позволила FORMAL особенность, [12] это означает, что общедоступные идентификаторы, используемые для HTML DTD и внутри них, должны быть FPI.

Объявление типа документа (для HTML 4.01 Strict). [46] содержащий FPI:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

FPI в объявлении типа документа выше гласит: -//W3C//DTD HTML 4.01//EN, [28] а URL-адрес указан как системный идентификатор. Строго говоря, FPI был необязательным: также можно было (но редко) определить собственное HTML DTD и опустить FPI; в этом случае включение системного идентификатора без FPI обозначается SYSTEM ключевое слово. [4] : 6–7  Одним из примеров такого пользовательского системного идентификатора без связанного с ним FPI является: [47]

<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd">

Обнюхивание DOCTYPE

[ редактировать ]

Поскольку они в основном предназначались для использования валидаторами SGML, объявления типов документов изначально игнорировались браузерами. Однако старые веб-страницы были разработаны для правильного отображения в браузерах, использовавшихся на момент их создания, что не обязательно соответствовало спецификациям, например, CSS в способе отображения веб-страниц. Поскольку это означало, что улучшение соответствия стандартам приведет к тому, что браузеры будут неправильно отображать существующие веб-страницы, браузеры использовали объявление типа документа для переключения между «режимами», в которых страница будет отображаться. [34] : 17–18 

«Режим совместимости» сохранил устаревшее поведение более ранних версий браузера, чтобы избежать повреждения существующих страниц — например, версии 6 и 7 Internet Explorer отображали страницу с использованием блочной модели Internet Explorer 5.5. «Стандартный режим» будет более точно соответствовать соответствующим спецификациям. То, что в то время называлось «почти стандартным режимом» и первоначально было реализовано в Firefox и Safari, использовало традиционное поведение при определении высоты ячеек таблицы, содержащих изображения, но в остальном вел себя как стандартный режим; это соответствовало поведению «стандартного режима» Internet Explorer на момент его появления. [4] : 9–11  [34] : 18–19 

Например, DOCTYPE с использованием HTML 4.01 Strict FPI ( -//W3C//DTD HTML 4.01//EN) активирует стандартный режим в Internet Explorer 6, что означает, что он будет использовать модель блока содержимого, а DOCTYPE использует переходный FPI HTML 4.01 ( -//W3C//DTD HTML 4.01 Transitional//EN) активирует режим совместимости, включая использование блочной модели Internet Explorer 5.5 (border-box). [4] : 9–11  Помимо FPI, браузеры будут учитывать наличие или отсутствие системного идентификатора при выборе между режимом совместимости и стандартным режимом. Отсутствие объявления DOCTYPE вообще (или, в Internet Explorer 6, объявление DOCTYPE не является первой строкой в ​​файле) может активировать режим совместимости. [34] : 19–20 

HTML 5 не определяется как профиль SGML, за исключением его представления XHTML. По существу, он не определен с помощью DTD.

Ранние проекты HTML 5 использовали NONSGML-тип ИФП -//WHATWG//NONSGML HTML5//EN в DOCTYPE вместо DTD FPI, поскольку он не активировал режим совместимости Internet Explorer 6. [48] В конечном итоге от этого полностью отказались, и окончательный вариант DOCTYPE HTML 5 не использует FPI. Предпочтительная форма – это просто <!DOCTYPE html> (без публичного и системного идентификатора), хотя системный идентификатор about:legacy-compat (используя о: схема URI ) одобряется. [49]

Представление XML (XHTML), напротив, разрешено, но не обязано содержать какой-либо DOCTYPE, но для схемы HTML 5 не предусмотрено проверяющее DTD. [50] Однако различные FPI для XHTML 1.0, XHTML 1.1 и MathML DTD определяются как указывающие на data: URI (чтобы избежать необходимости доступа к сети), содержащий определения символьных сущностей . [51]

Единственная функция FPI в HTML-представлении HTML 5 (в отличие от XHTML) — запуск устаревших режимов. Стандарт HTML WHATWG определяет список FPI, которые должны запускать режим совместимости. К ним относятся FPI для различных HTML DTD, настроенных поставщиком. Они также включают FPI для DTD различных «уровней» HTML 2.0, а также для HTML 3.0, 3.2 и версий Transitional и Frameset HTML 4.0 и 4.01, за исключением случаев, когда HTML 4.01 (но не HTML 4.0) Переходные FPI и FPI набора кадров сопровождаются системным идентификатором, вместо этого они запускают почти стандартный режим (переименованный в «режим с ограниченными возможностями»). XHTML 1.0 Transitional и FPI Frameset безоговорочно запускают режим ограниченных возможностей. Чаще всего они указываются в виде префиксов, включающих владельца, класс и описание (но соответствующих любой языковой части). [47]

Связь с URI

[ редактировать ]

Для решения задачи уникальной идентификации в спецификациях все чаще используются URI, а не FPI. Например, имена пространств имен XML — это URI.

Было определено пространство имен универсального имени ресурса (URN), позволяющее перезаписывать любой FPI как URI. [9] замена двойных косых черт двоеточиями . Предыдущий пример может быть записан как следующий URI:

urn:publicid:-:W3C:DTD+HTML+4.01:EN
  1. ^ Jump up to: а б с д и ж г час я дж к л м н тот п д р с т в v В х и С аа аб и объявление но из в ах есть также и аль являюсь а к ап ак с как в В из Гольдфарб, Чарльз Ф. (1990). Справочник по SGML . Оксфорд : Кларендон Пресс . ISBN  0-19-853737-9 .
  2. ^ Jump up to: а б с д и ж г час я дж Таубер, Джеймс К. (10 апреля 1996 г.). «Формальные общедоступные идентификаторы (FPI)» . CoverPages.org.
  3. ^ "sgml-iso-entities-8879.1986/каталог" . Пакет Debian для базовых данных SGML . Дебиан .
  4. ^ Jump up to: а б с д и ж г час я Ллойд, Ян (2008). Полный справочник по HTML . Коллингвуд, Виктория : SitePoint . ISBN  978-0-9802858-8-8 .
  5. ^ Jump up to: а б с Бернерс-Ли, Тим ; Коннолли, Дэниел В. (ноябрь 1995 г.). Язык разметки гипертекста — 2.0 . Сетевая рабочая группа. дои : 10.17487/RFC1866 . РФК 1866 . Исторический. Устарело РФК 2854 .
  6. ^ «Приложение A: Пример определения типа документа» (PDF) . Применение Министерства обороны MIL-PRF-28001 с использованием стандартного обобщенного языка разметки (SGML) . Министерство обороны США . 30 июня 1995 г. п. 138. МИЛ-ХДБК-28001.
  7. ^ Jump up to: а б «Авторитарное право: методология исследования и данные голосования» . Корпоративная Европейская обсерватория. 15 мая 2019 г.
  8. ^ Jump up to: а б с д и ж ДеРоуз, Стивен Дж .; Дюран, Дэвид Г. (1994). Как заставить гипермедиа работать: Руководство пользователя по HyTime . Норвелл, Массачусетс / Дордрехт, Нидерланды : Kluwer Academic Publishers. ISBN  0-7923-9432-1 .
  9. ^ Jump up to: а б Уолш, Норман; Коуэн, Джон; Гроссо, Пол (август 2001 г.). Пространство имен URN для общедоступных идентификаторов . Сетевая рабочая группа. дои : 10.17487/RFC3151 . РФК 3151 . Информационный.
  10. ^ Jump up to: а б с Уолш, Норман (1998). «DTD для программирования DSSSL с помощью DocBook» . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  11. ^ Jump up to: а б «Предлагаемый TC для адаптации WebSGML для SGML» . 01.06.1997. ISO/IEC JTC 1 /SC18/WG8 N1929.
  12. ^ Jump up to: а б с «20: Декларация SGML HTML 4» . Спецификация HTML 4.01 . W3C .
  13. ^ "dbl1nds.dsl" . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  14. ^ "dbl1srLatn.dsl" . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  15. ^ «общий/каталог» . Таблицы стилей DSSSL для DocBook, версия 1.79 . Проект «Докбук» .
  16. ^ «Набор объектов ISOlat1» . Международная организация по стандартизации . 1986.
  17. ^ «В ISO добавлены объекты Latin 1 V0.3» . Организация по развитию стандартов структурированной информации (OASIS). 2002.
  18. ^ Jump up to: а б с «набор сущностей htmlmathml-f» . W3C . 2011.
  19. ^ Уделл, Джон (30 сентября 2011 г.). «Длинный хвост экосистемы iCalendar» .
  20. ^ «Проблема № 26558: невозможно подписаться на календарь дней рождения на Facebook» . Ядро веб-сервера ownCloud .
  21. ^ Jump up to: а б Бек, Джефф; Лапейр, Дебора; Розенблюм, Брюс (2007). «Архивирование и обмен объявлениями нотаций DTD Suite» . NCBI Book DTD и библиотека тегов NCBI Collection DTD версии 2.3 . Национальный центр биотехнологической информации / Национальная медицинская библиотека .
  22. ^ "dbl1en.dsl" . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  23. ^ "dbl1fr.dsl" . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  24. ^ "dbl1el.dsl" . Таблицы стилей DSSSL для DocBook . Проект «Докбук» .
  25. ^ "dbl1fr.ent" . Таблицы стилей DSSSL для DocBook, версия 1.79 . Проект «Докбук» .
  26. ^ "dbl1en.ent" . Таблицы стилей DSSSL для DocBook, версия 1.79 . Проект «Докбук» .
  27. ^ Определение: FPI (формальный общедоступный идентификатор) [Глоссарий Интернета и XML]
  28. ^ Jump up to: а б "!ДОКТИП" . Проверено 10 сентября 2016 г.
  29. ^ «2.3 Общие синтаксические конструкции (§ литералы)» . Расширяемый язык разметки (XML) 1.0 (Пятое изд.). W3C . 26 ноября 2008 г.
  30. ^ Jump up to: а б с Кларк, Джеймс (15 декабря 1997 г.). «Сравнение SGML и XML» . W3C . ПРИМЕЧАНИЕ-sgml-xml-971215.
  31. ^ Jump up to: а б с д «4.2.2 Внешние объекты» . Расширяемый язык разметки (XML) 1.0 (Пятое изд.). W3C . 26 ноября 2008 г.
  32. ^ Jump up to: а б с д и Уолш, Норман (6 августа 2001 г.). «XML-каталоги» . Организация по развитию стандартов структурированной информации (OASIS).
  33. ^ «4.7 Объявления нотации» . Расширяемый язык разметки (XML) 1.0 (Пятое изд.). W3C . 26 ноября 2008 г.
  34. ^ Jump up to: а б с д Олссон, Томми; О'Брайен, Пол (2008). Полный справочник по CSS . Коллингвуд, Виктория : SitePoint . ISBN  978-0-9802858-5-7 .
  35. ^ "xml/declaration/xml.dcl: Декларация SGML для XML 1.0" . sgml-данные . Дебиан .
  36. ^ Брей, Тим; Холландер, Дэйв; Лейман, Эндрю; Тобин, Ричард; Томпсон, Генри С. (08 декабря 2009 г.). «Пространства имен в XML 1.0» (Третье изд.). W3C .
  37. ^ Jump up to: а б Пейн, Джеймс (2010). Начало работы с Python: использование Python 2.6 и Python 3.1 . Рокс / Уайли . стр. 268–271. ISBN  978-0-470-41463-7 .
  38. ^ Салл, Кеннет Б. (2002). «XML и пространства имен (§ Обработка пространств имен в DTD или схеме XML)» . Семейство спецификаций XML: Практическое руководство . ИнформИТ / Эддисон-Уэсли . ISBN  0-201-70359-9 .
  39. ^ Jump up to: а б «1.3 Определение документа SVG Tiny 1.2» . Масштабируемая векторная графика (SVG) Tiny 1.2. Спецификация . W3C . 22 декабря 2008 г. Следует отметить несколько ключевых отличий от SVG Tiny 1.1: […] Для SVG 1.2 нет DTD, и поэтому нет необходимости указывать DOCTYPE для документа SVG 1.2 (если не требуется использовать внутреннее подмножество DTD ([XML10 ], раздел 2.8 и [XML11], раздел 2.8), например, для определения объектов).
  40. ^ Хаммерсли, Бен (2003). «Глава 4. RSS 0.91 и 0.92 (действительно простое объединение)» . Синдикация контента с помощью RSS . О'Рейли Медиа . ISBN  9780596003838 .
  41. ^ Косек, Йирка; Уолш, Норман; Гамильтон, Дик; Смит, Майкл (16 июня 2009 г.). «Отдыхаем с DocBook» . DocBook V5.0: Руководство по переходу . Проект «Докбук» .
  42. ^ Кларк, Джеймс . «СП – Каталоги» . SP: Система SGML, соответствующая международному стандарту ISO 8879 .
  43. ^ «xml/svg/catalog: DTD SVG» . sgml-данные . Дебиан .
  44. ^ Jump up to: а б "xml/svg/catalog.xml" . sgml-данные . Дебиан .
  45. ^ ГлобалТрансКорп (28 февраля 2004 г.). «tr9401.dtd: Расширение V1.0 на основе XML-каталогов V1.0» . Дебиан .
  46. ^ «Спецификация HTML 4.01» . Проверено 10 сентября 2016 г.
  47. ^ Jump up to: а б «13.2.6.4.1 «Начальный» режим вставки» . Стандарт HTML . ЧТОРГ .
  48. ^ Сивонен, Анри (8 апреля 2005 г.). «[whatwg] [html5] теги, элементы и сгенерированный DOM» . WHATWG Архив списка рассылки .
  49. ^ «13.1.1 ДОКТИП» . Стандарт HTML . ЧТОРГ .
  50. ^ «14.1 Написание документов в синтаксисе XML» . Стандарт HTML . ЧТОРГ .
  51. ^ «14.2 Анализ XML-документов» . Стандарт HTML . ЧТОРГ .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8a27f4d5aed816c60946f8900844352b__1718907480
URL1:https://arc.ask3.ru/arc/aa/8a/2b/8a27f4d5aed816c60946f8900844352b.html
Заголовок, (Title) документа по адресу, URL1:
Formal Public Identifier - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)