XML Информационный набор (второе издание)
Рекомендация W3C от 4 февраля 2004 года
Данная версия:
http://www.w3.org/TR/2004/REC-xml-InfoSet-20040204
Последняя версия:
http://www.w3.org/TR/XML-Infoset
Предыдущие версии:
http://www.w3.org/TR/2003/PER-XML-Infoset-20031210
Редакторы:
John Cowan, jcowan@reutershealth.com
Richard Tobin, richard@cogsci.ed.ac.uk
Пожалуйста, обращайтесь к списку ошибок данного документа, который может включать ряд нормативных исправлений.
Смотрите также переводы.
Copyright © 1999-2004 W3C ® ( MIT, ERCIM, Keio), Все права защищены. Применяются правила W3C относительно ответственности, товарных знаков, использования документа и лицензирования программного обеспечения.
Примечание переводчика: обратите внимание на то,
что оригинальная
версия документа существует только на английском языке. Предлагаемый перевод может содержать ошибки, неточности
и т. д. Текст на таком фоне в
официальной рекомендации отсутствует.
Перевод выполнил Геннадий Берман.
Резюме
Данная спецификация содержит набор определений, используемых в других спецификациях, которым необходимо обращаться к информации в XML документе.
Статус данного документа
В данном разделе описывается статус данного документа на момент его публикации. Другие документы могут заменять этот документ. Список текущих публикаций W3C и последние версии его технических отчетов можно найти на индексе технических отчетов W3C по адресу http://www.w3.org/TR/.
Данный документ является Рекомендацией W3C. Он был рассмотрен членами W3C и другими заинтересованными сторонами и одобрен Директором в качестве Рекомендации W3C. Данный документ не предполагается изменять, и он может использоваться как справочный материал или на него могут ссылаться, как на нормативное руководство из других документов. Роль W3C в разработке Рекомендации - привлечь внимание к спецификации и способствовать ее широкому развитию. Тем самым повысить функциональность и интероперабельность Web.
Данный документ обновляет Информационный набор, охватывая XML 1.1 и Namespaces 1.1, вносит ясность в некоторые неточности и исправляет ряд опечаток. Он является продукт W3C XML Activity. Только версия данной спецификации на английском языке является нормативной. Переводы данного документа можно найти на http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-infoset.
Документация по интеллектуальной собственности, возможно имеющая отношение к данной рекомендации, может быть найдена на публичной странице обнаруженных IPR рабочей группы.
Пожалуйста, сообщайте об ошибках в данном документе по адресу www-xml-infoset-comments@w3.org (доступны публичные архивы). Список опечаток для данной Рекомендации можно получить на http://www.w3.org/2001/10/02/xml-infoset-errata.html.
Содержание
1. Введение
Данная спецификация определяет абстрактный набор данных, называемый Информационный набор XML (XML Information Set – Infoset). Его цель – обеспечение согласованного набора определений для использования в других спецификациях, которым необходимо ссылаться на информацию в корректных (well-formed) XML документах [XML].
Он не пытается быть исчерпывающим. Главным критерием, по которому включался информационный элемент или свойство, являлось ожидание полезности в будущих спецификациях. Он не формирует минимального набора информации, который должен быть возвращен XML процессором.
XML документ имеет информационный набор, если он корректный и удовлетворяет, описанным ниже ограничениям пространства имен. Не требуется, чтобы XML документ был правильным (valid), чтобы иметь информационный набор.
Информационные наборы могут быть созданы методами, отличающимися от анализа (parsing) XML документа (не описанными в данной спецификации). Смотрите ниже синтетические информационные наборы.
Информационный набор XML документов состоит из набора информационных элементов (information items). Информационный набор для любого корректного XML документ будет содержать, по крайней мере, информационный элемент document и ряд других. Информационный элемент – это абстрактное описание определенной части XML документа. Каждый информационный элемент имеет набор связанных именованных свойств (properties). В данной спецификации имена свойств показаны в квадратных скобках [так]. Типы информационных элементов перечислены в разделе 2.
Информационный набор XML не требует или отдает предпочтение определенному интерфейсу или классу интерфейсов. Данная спецификация для обеспечения ясности и простоты представляет информационный набор как модифицируемое дерево, но требование, чтобы информационный набор XML был бы представлен в виде древовидной структуры, отсутствует. Другие типы интерфейсов, включая интерфейсы на основе событий и на основе запросов (возможно и иные), также способны предоставлять информацию, согласованную с информационным набором XML.
Термины «информационный набор» и «информационный элемент» подобны в контексте общих терминов «дереву» и «узлу», как они используются в вычислениях. Именно поэтому указанные термины используются в данной спецификации, позволяя сократить возможную путаницу с другими специфическими моделями данных. Информационные элементы не отображаются один в один в узлы DOM или «дерево» и «узлы» модели данных XPath.
В данной спецификации слова «должен» (“must”), «следует» (“should”) и «может» (“may”) предполагают соответствия, определенные в [RFC2119], за исключением того, что слова не представляются в верхнем регистре.
Версии XML
Различные версии спецификации XML могут определять различные правила анализа. Информационный набор XML документа, полученный при его анализе, согласовывается с правилами спецификации, номер версии которой указан в XML документе. В документе с незаданным номером версии принимается версия 1.0. Если XML процессор принимает документ с непонятным ему номером версии, то он не обязан формировать правильный информационный набор.
Пространства имен
XML документы, которые не соответствуют [пространствам имен], хотя реально корректные, не предполагают наличие значимых информационных наборов. Это означает, что данная спецификация не определяет информационный набор для документов, у которых в именах элементов или атрибутов содержится двоеточие, используемое иначе, чем в соответствии с предписаниями [пространства имен].
Кроме того данная спецификация не определяет информационный набор для документов, которые используют относительные ссылки URI в объявлениях пространств имен. Это соответствует решению сессии пленарной группы по XML W3C, представленному в [Relative Namespace URI References].
Значение свойства [namespace name] является нормализованным значением соответствующего атрибута пространства имен. Нельзя назначить дополнительное URI, которое бы процессор применил к нему.
Сущности
Информационный набор описывает свой XML документ с уже развернутыми ссылками на сущности, т.е. представлен информационными элементами, соответствующими замененному ими тексту. Однако существуют различные обстоятельства, из-за которых процессор не может выполнить это расширение. Сущность не может быть объявлена, или не может быть возвращаема. Не выполняющий проверку на правильность процессор может решить не читать все объявления и, в этом случае, не сможет расширить все внешние сущности. В этих случаях для представления ссылки на сущность используется информационный элемент ссылка на нерасширяемую сущность.
Обработка конца строки
Значения всех свойств в информационном наборе учитывают нормализацию в конце строки, как это описано в [XML], 2.11 “End-of-Line Handling”.
Базовые URI
Некоторые информационные элементы имеют свойство [base URI] или [declaration base URI]. Они определяются согласно [XML Base]. Обратите внимание, что поиск ресурса может предусматривать перенаправление на уровне анализатора (например, в случае разрешения сущности) или на более низком уровне. В данном случае базовый URI является окончательным URI, используемым для поиска ресурса после всех перенаправлений.
Значения этих свойств не отражают каких-либо недостающих URI, которые могут потребоваться для поиска ресурса, но они могут включать управляющие символы, если они были указаны в документе, или возвращены сервером в случае перенаправления.
В некоторых случаях (например, документ читает из строки или потока) правила [XML Base] могут в результате предоставить базовый URI, зависящий от приложения. В таких случаях данная спецификация не определяет значение свойства [base URI] или [declaration base URI].
При разрешении относительных URI использование свойства [base URI] более предпочтительно, чем значения атрибутов xml:base. Они могут быть несовместимы в случае Синтетического информационного набора.
''Unknown'' и ''No Value''
Иногда некоторые свойства могут иметь значение unknown или no value, т.е. говорить, что значение свойства неизвестно или не имеет значения. Эти значения отличаются друг от друга и от всех других значений. В частности они отличаются от пустой строки, пустого набора и пустого списка, каждый из которых просто не имеет членов. Данная спецификация не использует термин null, поскольку в некоторых сообществах он имеет определенные смысловые значения, которые могут быть не предназначены для использования в данной спецификации.
Несоответствия в результате ошибок
Как отмечалось выше, XML документ не обязательно должен быть допустимым, чтобы иметь информационный набор. Однако определенные виды ошибок оказывают влияние на значения, назначаемые для некоторых свойств. Сущности, нотации, элементы и атрибуты могут быть не объявлены. Нотации и элементы могут быть многократно объявлены (множественность объявлений действительна для сущностей и атрибутов). ID могут быть не определены или определены несколько раз. Такие случаи соответствующим образом отмечаются ниже в определениях информационных элементов.
Синтетические информационные наборы
Данная спецификация описывает информационный набор как результат анализа XML документа. Информационные наборы могут быть построены другими способами, например, используя API DOM или посредством преобразования существующего информационного набора.
Информационный набор, соответствующий реальному документу, обязательно будет совместим независимо от способа построения. Например, свойство элемента [in-scope namespaces] будет согласовано со свойством элемента [namespace attributes] и его предков. Это может быть неверно для информационного набора, построенного другим способом. В таком случае не будет XML документа, соответствующего информационному набору, и для сериализации он потребует разбора несоответствий (например, путем вывода объявлений пространств имен, которые соответствуют пространствам имен в области их действия).
2. Информационные элементы
Информационный набор может содержать до одиннадцати различных типов информационных элементов, описанных в следующих разделах. Каждый информационный элемент имеет свойства. Для удобства обращения каждому свойству присваивается имя, которое показывается следующим образом [так]. Для каждого информационного элемента приведены ссылки на определение и/или синтаксис в Рекомендации XML 1.0 [XML].
2.1 Информационный элемент document
Определение XML: document (Раздел 2, Documents)
Синтаксис элемента XML: ] Document (раздел 2.1, Well-Formed XML Documents)
В наборе данных имеется ровно один информационный элемент document, и все другие информационные элементы доступны из свойств информационного элемента document либо непосредственно, либо косвенно, через свойства других информационных элементов.
Информационный элемент document имеет следующие свойства:
2.2. Информационные элементы element
Определение XML: element (Раздел 3, Logical Structures)
Синтаксис элемента XML: Element (раздел 3, Logical Structures)
Информационный элемент element существует для каждого элемента, представленного в XML документе. Один из информационных элементов element является значением свойства [document element] информационного элемента document, соответствующего корневому элементу дерева, а все другие информационные элементы element доступны посредством рекурсивного обхода его свойства [children].
Информационный элемент element имеет следующие свойства:
2.3. Информационные элементы attribute
Определение XML: attribute (Раздел 3.1, Start-Tags, End-Tags, and Empty-Element Tags)
Синтаксис элемента XML: Attribute (раздел 3.1, Start-Tags, End-Tags, and Empty-Element Tags)
Информационный элемент attribute существует для каждого атрибута (указанного или по умолчанию) каждого элемента в документе, включая те, которые являются объявлениями пространств имен. В последнем случае было бы предпочтительней, чтобы они появлялись как члены свойства [namespace attributes] элемента, чем его свойства [attributes].
Атрибуты, объявленные в DTD без значения по умолчанию и не указанные в открывающемся теге элемента, не представляются информационными элементами attribute.
Информационный элемент attribute имеет следующие свойства:
2.4. Информационные элементы processing instruction
Определение XML: processing instruction (Раздел 2.6, Processing Instructions)
Синтаксис элемента XML: PI (раздел 2.6, Processing Instructions)
Информационный элемент processing instruction существует в документе для каждой инструкции обработки. Объявление XML и объявления текста для внешних анализируемых сущностей не считаются инструкциями обработки.
Информационный элемент processing instruction имеет следующие свойства:
2.5. Информационные элементы unexpanded entity reference
Определение XML: В разделе 4.4.3, Included If Validating
Информационный элемент unexpanded entity reference используется как местозаполнитель, когда XML процессор может указать, что он не разворачивает внешнюю анализируемую сущность. Такой информационный элемент существует для каждой неразвернутой ссылки на внешние общие сущности внутри содержимого элемента. Действительный (validating) или недействительный (non-validating) XML процессор, который читает все внешние общие сущности, никогда не будет генерировать информационные элементы unexpanded entity reference для действительного (valid) документа.
Информационный элемент ссылка unexpanded entity reference information имеет следующие свойства:
2.6. Информационные элементы character
Синтаксис элемента XML: Char (раздел 2.2, Characters)
Информационный элемент character существует для каждого символа данных, который представляется в документе либо буквально как символьная ссылка, либо внутри секции CDATA.
Каждый символ является логически отдельным информационным элементом, но XML приложения свободны в объединении символов в более крупные группы, как необходимо или желательно.
Информационный элемент character имеет следующие свойства:
2.7. Информационные элементы comment
Определение XML: comment (Раздел 2.5, Comments)
Синтаксис элемента XML: Comment (раздел 2.5, Comments)
Информационный элемент comment существует для каждого XML комментария в исходном документе, за исключением тех, которые появляются в DTD (они не представляются).
Информационный элемент comment имеет следующие свойства:
2.8 Информационный элемент document type declaration
Определение XML: document type declaration (раздел 2.8, Prolog and Document Type Declaration)
Синтаксис элемента XML: doctypedecl (раздел 2.8, Prolog and Document Type Declaration)
Если XML документ имеет объявление типа документа, то информационный набор содержит один информационный элемент declaration information item. Обратите внимание, что сущности и нотации предоставляются как свойства информационного элемента document, а не информационного элемента document type declaration.
Информационный элемент document type declaration имеет следующие свойства:
2.9. Информационные элементы unparsed entity
Определение XML: entity (раздел 4, Physical Structures)
Синтаксис элемента XML: GEDecl (раздел 4.2, Entities)
Информационный элемент unparsed entity существует для каждой не анализируемой общей сущности, объявленной в DTD.
Информационный элемент unparsed entity имеет следующие свойства:
2.10. Информационные элементы notation
Определение XML: notation (раздел 4.7, Notations)
Синтаксис элемента XML: NotationDecl (раздел 4.7, Notations)
Информационный элемент notation существует для каждой нотации, объявленной в DTD.
Информационный элемент notation имеет следующие свойства:
2.11. Информационные элементы namespace
Каждый элемент в документе имеет информационный элемент namespace для каждого пространства имен в области этого элемента.
Информационный элемент namespace имеет следующие свойства:
3. Соответствие
Поскольку цель информационного набора заключается в обеспечении набора определений, соответствие является свойством спецификаций, которые используют эти определения перед их реализацией.
Спецификации, ссылающиеся на информационный набор, должны:
Если спецификация позволяет разработку информационного набора, который имеет несоответствия, как описывалось выше в Синтетическом информационном наборе, то она может описать, как эти несоответствия должны быть разрешены, и должна сделать это, если она обеспечивает сериализацию информационного набора.
Приложение A. Ссылки
Нормативные ссылки
ISO/IEC 10646
ISO (International Organization for Standardization). ISO/IEC 10646-1:2000. Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 1: Architecture and Basic Multilingual Plane and ISO/IEC 10646-2:2001.Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 2: Supplementary Planes, as, from time to time, amended, replaced by a new edition or expanded by the addition of new parts. [Geneva]: International Organization for Standardization. (See http://www.iso.ch for the latest version.)
Namespaces
Namespaces in XML, W3C, eds. Tim Bray, Dave Hollander, Andrew Layman. 14 January 1999. Available at http://www.w3.org/TR/REC-xml-names.
Namespaces 1.1
Namespaces in XML 1.1, W3C, eds. Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin. 4 February 2004. Available at http://www.w3.org/TR/xml-names11
RFC2119
Key words for use in RFCs to Indicate Requirement Levels, ed. S. Bradner. March 1997. Available at http://www.ietf.org/rfc/rfc2119.txt.
XML
Extensible Markup Language (XML) 1.0 (Third Edition), W3C, eds. Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau. 4 February 2004. Available at http://www.w3.org/TR/REC-xml.
XML 1.1
Extensible Markup Language (XML) 1.1, W3C, eds. Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, John Cowan, François Yergeau. 4 February 2004. Available at http://www.w3.org/TR/xml11.
XML Base
XML Base, W3C, ed. Jonathan Marsh. February 2000. Available at http://www.w3.org/TR/xmlbase.
Информационные ссылки
DOM
Document Object Model (DOM) Level 1 Specification, W3C, eds. Vidur Apparao, Steve Byrne, Mike Champion, et al. 1 October 1998. Available at http://www.w3.org/TR/REC-DOM-Level-1.
XPointer-Liaison
XPointer-Information Set Liaison Statement, W3C, ed. Steven J. DeRose. 24 February 1999. Available at http://www.w3.org/TR/NOTE-xptr-infoset-liaison.
Relative Namespace URI References
Results of W3C XML Plenary Ballot on relative URI References in namespace declarations, 3-17 July 2000, W3C, eds. Dave Hollander, C. M. Sperberg-McQueen. 6 September 2000. Available at http://www.w3.org/2000/09/xppa.
RDF Schema for the XML Information Set
RDF Schema for the XML Information Set, W3C, ed. Richard Tobin. 6 April 2001. Available at http://www.w3.org/TR/xml-infoset-rdfs.
Приложение B: Требования отчетности XML (информационное)
Хотя Рекомендация XML [XML] касается главным образом синтаксиса XML, она также включает ряд конкретных требований отчетности от XML процессоров.
Требования отчетности включают информацию об ошибках, которые выходят за рамки этой спецификации, и сведения о документе. Все XML требования к информации отчетности документа были включены в информационный набор XML; в скобках указаны ссылки на разделы XML Рекомендации:
Приложение С: Пример (информационное)
Рассмотрим следующий пример XML документа:
<?xml version="1.0"?>
<msg:message doc:date="19990421"
xmlns:doc="http://doc.example.org/namespaces/doc"
xmlns:msg="http://message.example.org/"
>Phone home!</msg:message>
Информационный набор для этого XML документа содержит следующие информационные элементы:
Приложение D: Что не является информационным набором
Следующая информация не представлена в текущей версии информационного набора XML (этот список не претендует быть исчерпывающим):
Приложение E: схема RDF (информационное)
Смотрите RDF схему для информационного набора XML, которая дает формальное описание информационного набора.