ГОСТ Р ИСО/МЭК 13250-2-2012

НАЦИОНАЛЬНЫМ

СТАНДАРТ

РОССИЙСКОЙ

ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

Содержание
  1. гост р исо/мэк 13250-3— 2012 Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Ч а с т ь 3 Синтаксис XML ISO/IEC13250-3:2007 Information technology — Topic maps — Part 3: XML syntax (IDT) Издание официальное Москва Стандартинформ 2014 Предисловие 1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ») на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4 2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии» 3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. №419-ст 4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 13250-3:2007 «Информационная технология. Тематические карты. Часть 3. Синтаксис XML» (ISO/IEC 13250-3:2007 «Information technology — Topic maps — Part 3: XML syntax») При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА 5    ВВЕДЕН ВПЕРВЫЕ Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru) © Стандартинформ, 2014 В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0 # ======================================================= # #    XML Topic Maps 2.0 # #    Это нормативная схема RELAX-NG для синтаксиса ХТМ 2.0, #    определенного в ISO 13250-3. # # # #======================================================== #    — Общие декларации default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier { xsd:anyURI }?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text | element * — xtm:* {attribute * {text }*, any-markup* })* #    — Схема topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version { «2.0» } topic = element topic {id, (itemldentity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID } name = element name {reifiable, type?, scope?, value, variant*} value = element value {text} variant = element variant {reifiable, scope, (resourceRef | resourceData)} scope = element scope {topicRef+ } instanceOf = element instanceOf {topicRef+ } type = element type {topicRef} occurrence = element occurrence { reifiable, type, scope?, (resourceRef | resourceData )} datatype = attribute datatype {xsd:anyl)RI} resourceData = element resourceData { datatype?, any-markup } association = element association {reifiable, type, scope?, role+ } role = element role {reifiable, type, topicRef} topicRef = element topicRef { href} resourceRef = element resourceRef { href} subjectLocator = element subjectLocator { href} subjectldentifier = element subjectldentifier { href} itemldentity = element itemldentity { href} mergeMap = element mergeMap { href} #    — Конец схемы ГОСТ Р ИСО/МЭК13250-3—2012 Приложение В (справочное) DTD ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — DTD Тематической Карты XML ……………………………………-    -> <!- — DTD Тематической Карты XML (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. Для идентификации пространства имен ХТМ используют URI: «http://www.topicmaps.org/xtm/» Формальный общедоступный идентификатор для этого DTD: «ISO/IEC 13250-3:2007//DTD XML Topic Maps (ХТМ) 2.0//EN» <!—topicMap……………………………………………………………………..—> <!ELEMENT topicMap (itemldentity*, mergeMap*, (topic | association )*) > <!ATTLIST topicMap version CDATA#FIXED ‘2.0’ xmlns CDATA #FIXED ‘http://www.topicmaps.org/xtm/’ reifier CDATA #IMPLIED <!- — topic……………………………………………….-    -> <!ELEMENT topic ( ( itemldentity | subjectLocator | subjectldentifier )*, instanceOf?, ( name | occurrence )* ) > <!ATTLI ST topic id ID #REQUIRED <!—itemldentity…………………………………………—> <!ELEMENT itemldentity EMPTY > <!ATTLIST itemldentity href CDATA #REQUIRED <!- — subjectLocator………………………………………..-    -> <!ELEMENT subjectLocator EMPTY > <!ATTLIST subjectLocator href CDATA #REQUIRED <!- — subjectldentifier……………………………………..-    -> <!ELEMENT subjectldentifier EMPTY 9 ГОСТ Р ИСО/МЭК13250-3—2012 <!ATTLIST subjectldentifier href С DATA #REQUIRED > <!—name………………………………………………..—> <!ELEMENT name (itemldentity*, type?, scope?, value, variant*) > <!ATTLIST name reifier CDATA #IMPLIED > <!—value……………………………………………….—> <!ELEMENT value (#PCDATA) > <!—variant……………………………………………..—> <!ELEMENT variant ( itemldentity*, scope, ( resourceRef | resourceData ) ) > <!ATTLIST variant reifier CDATA IMPLIED > <!- — scope……………………………………………….-    -> <!ELEMENT scope (topicRef)+ > <!—instanceOf………………………………………….. <!ELEMENT instanceOf (topicRef)+ > <!—type…………………………………………..—> <!ELEMENT type (topicRef) > <!—occurrence………………………………………….. <!ELEMENT occurrence (itemldentity*, type, scope?, ( resourceRef | resourceData > <!ATTLIST occurrence reifier CDATA IMPLIED > <!- — resourceData…………………………………………-    -> <!ELEMENT resourceData ANY > <!ATTLIST resourceData datatype CDATA IMPLIED > <!- — resourceRef………………………………………….-    -> 10 ГОСТ Р ИСО/МЭК13250-3—2012 <!ELEMENT resourceRef EMPTY > <!ATTLIST resourceRef href CDATA #REQUIRED <!- — association………………………………………….-    -> <!ELEMENT association (itemldentity*, type, scope?, role+ ) > <!ATTLIST association reifier CDATA #IMPLIED > <!—role………………………………………………..—> <!ELEMENT role (itemldentity*, type, topicRef) > <!ATTLIST role reifier CDATA IMPLIED <!- — topicRef…………………………………………….-    -> <!ELEMENT topicRef EMPTY > <!ATTLIST topicRef href CDATA #REQUIRED <!- — mergeMap…………………………………………….-    -> <!ELEMENT mergeMap EMPTY > <!ATTLIST mergeMap href CDATA #REQUIRED > <!- — Конец DTD Тематической Карты XML (XTM) 2.0 — -> 11 Приложение С (справочное) Схема W3C XML для ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — Схема XML Тематической Карты ………………………………….-    -> <!- — Схема XML Тематической Карты (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. — -> <xs:schema targetNamespace=«http://www.topicmaps.org/xtm/» elementFormDefault=«qualified>> xmlns=«http://www. topicmaps.org/xtm/» xmlns:xs=«http://www. w3.org/2001/XMLSchema» xmlns:dc=«http://purl.org/dc/elements/1.1/»> <xs:annotation> <xs:appinfo> <dc:title>W3C XML Schema forXTM 2.0</dc:title> <dc:owner>ISO/IEC JTC1 SC34</dc:owner> <dc:contributor>Max Voskob</dc:contributor> <dc:contributor>Lars Marius Garshol</dc:contributor> <dc:contributor>Ann Wrightson</dc:contributor> </xs:appinfo> </xs:annotation> <!—any-markup…………………………………………—> <xs:complexType name=«any-markup» mixed=«true»> <xs:complexContent mixed=«true»> <xs:restriction base=«xs:anyType»> <xs:sequence> <xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«datatype» type=«xs:anyURI»/> </xs:restriction> </xs:complexContent> </xs:complexType> <!—topicMap…………………………………………..—> <xs:element name=«topicMap»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«mergeMap» minOccurs=«0» maxOccurs=«unbounded»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«topic»/> <xs:element ref=«association»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> <xs:attribute name=«version» fixed=«2.0»/> </xs:complexType> </xs:element> <!- — topic…………………………….. <xs:element name=«topic»> 12 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:complexType> <xs:sequence> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«itemldentity»/> <xs:element ref=«subjectLocator»/> <xs:element ref=«subjectldentifier»/> </xs:choice> <xs:element ref=«instanceOf» minOccurs=«0» maxOccurs=«1»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«name»/> <xs:element ref=«occurrence»/> </xs:choice> </xs:sequence> <xs:attribute name=«id» type=«xs:ID» use=«required»/> </xs:complexType> </xs:element> <!—itemldentity……………………………………….—> <xs:element name=«itemldentity»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyllRI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectLocator……………………………………..-    -> <xs:element name=«subjectLocator»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectldentifier…………………………………..-    -> <xs:element name=«subjectldentifier»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — name………………………………………………-    -> <xs:element name=«name»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type» minOccurs=«0»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«value»/> <xs:element ref=«variant» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — value……………………………………………..- -> <xs:element name=«value» type=«xs:string»/> <!- — variant……………………………………………- -> <xs:element name=«variant»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» 13 ГОСТ Р ИСО/МЭК13250-3—2012 maxOccurs=«unbounded»/> <xs:element ref=«scope»/> <xs:choice> <xs:element ref=«resourceData»/> <xs:element ref=«resourceRef»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — scope……………………………………………..- -> <xs:element name=«scope»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!— instanceOf…………………………………………—> <xs:element name=«instanceOf»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!- — type………………………………………………- -> <xs:element name=«type»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef»/> </xs:choice> </xs:complexType> </xs:element> <!—occurrence…………………………………………—> <xs:element name=«occurrence»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:choice> <xs:element ref=«resourceRef»/> <xs:element ref=«resourceData»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — resourceData……………………………………….-    -> <xs:element name=«resourceData» type=«any-markup»/> <!—association………………………………………..—> <xs:element name=«association»> <xs:complexType> <xs:sequence> 14 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«role» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!—role………………………………………………—> <xs:element name=«role»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«topicRef»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> </xs:complexType> </xs:element> <!- — topicRef…………………………………………..-    -> <xs:element name=«topicRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — resourceRef………………………………………..-    -> <xs:element name=«resourceRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — mergeMap…………………………………………..-    -> <xs:element name=«mergeMap»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> </xs:schema> 15 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение D (справочное) Отличия от ХТМ 1.0 В настоящем приложении описаны различия между синтаксисом, определенным в настоящем стандарте и данным в ИСО/МЭК 13250. Отличия следующие: —    изменен URI пространства имен; —    к элементу topicMap добавлен атрибут version (версия); —    элемент parameters заменен на элемент scope; —    элемент roleSpec заменен на элемент type; —    элемент member заменен на элемент role; —    в качестве дочернего элемента role теперь требуется единственная ссылка на тему; —    элемент baseName заменен на элемент name; —    элемент instanceOf заменен на элемент type всюду, кроме как внутри элемента topic; —    элемент type теперь разрешен внутри элемента name; —    элементы variantName и subjectldentity исключены; —    элемент variant теперь не может быть вложенным; —    элемент type теперь обязателен внутри элементов occurrence, association и role; —    элемент mergeMap теперь не поддерживает добавленные области применения; —    атрибут id исключен из всех элементов, кроме элемента topic, а атрибут reifies добавлен в некоторые элементы; —    добавлены элементы itemldentity, subjectLocator и subjectldentifier; —    исключен элемент subjectlndicatorRef; —    в ХТМ больше не используют XLink и XML Base; —    элемент mergeMap теперь должен следовать перед всеми элементами topic и association; —    атрибут datatype добавлен к элементу resourceData, который теперь поддерживает встроенную разметку; —    добавлен атрибут reifer, заменяющий неявный синтаксис материализации в ХТМ 1.0, использующий элемент subjectlndicatorRef; —    элемент baseNameString заменен на элемент value. 16 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов В настоящем приложении определен идентификатор субъекта для термина, формально определенного в разделе 3. Идентификаторы субъектов определены с единственной целью позволить недвусмысленно ссылаться на идентифицируемые ими субъекты, например, чтобы обеспечить сравнение информации об этих субъектах. В настоящем стандарте с этими идентификаторами не связывается какая-либо семантика обработки сверх и помимо той, что связана с идентификаторами субъектов в общем случае. хтм http://psi.topicmaps.org/iso13250/glossary/XTM 17 ГОСТ Р ИСО/МЭК13250-3—2012 Содержание 1    Область применения………………………………… 1 2    Нормативные ссылки………………………………… 1 3    Термины и определения………………………………. 1 4    Определение синтаксиса………………………………. 1 4.1    Общие положения………………………………… 1 4.2    Десериализация …………………………………. 2 4.3    Общие синтаксические конструкции………………………… 2 4.3.1    Общие декларации……………………………… 2 4.3.2    Атрибут reifier……………………………….. 2 4.3.3    Атрибут href………………………………… 3 4.3.4    Создание IRI из строки……………………………. 3 4.4    Элемент topicMap………………………………… 3 4.5    Элемент topic………………………………….. 3 4.6    Элемент itemldentity……………………………….. 3 4.7    Элемент subjectLocator……………………………… 4 4.8    Элемент subjectldentifier……………………………… 4 4.9    Элемент instanceOf……………………………….. 4 4.10    Элемент name…………………………………. 4 4.11    Элемент value…………………………………. 5 4.12    Элемент variant…………………………………. 5 4.13    Элемент scope…………………………………. 5 4.14    Элемент type………………………………….. 5 4.15    Элемент occurrence……………………………….. 5 4.16    Элемент resourceData………………………………. 5 4.16.1    Общие положения…………………………….. 5 4.16.2    Десериализация……………………………… 6 4.16.3    Канонизация встроенного XML……………………….. 6 4.17    Элемент resourceRef………………………………. 6 4.18    Элемент association………………………………. 6 4.19    Элемент role………………………………….. 6 4.20    Элемент topicRef………………………………… 7 4.21    Элемент mergeMap……………………………….. 7 5    Соответствие……………………………………. 7 Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0……………….. 8 Приложение В (справочное) DTD    ХТМ 2.0……………………….. 9 Приложение С (справочное) Схема W3C XML для ХТМ 2.0………………… 12 Приложение D (справочное) Отличия от ХТМ 1.0…………………….. 16 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов…….. 17 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации……….. 18 Библиография…………………………………….. 19 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации Таблица ДА.1 Обозначение ссылочного международного стандарта Степень соответствия Обозначение и наименование соответствующего национального стандарта ИСО/МЭК 13250:2003 — * ИСО/МЭК 13250-2:2006 ют ГОСТ Р ИСО/МЭК 13250-2—2012 «Информационная технология. Тематические карты. Часть 2. Модель данных» ИСО/МЭК 19757-2:2003 — * * Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: — ЮТ — идентичный стандарт. 18 НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Часть 3 Синтаксис XML Information technology. Topic maps. Part 3. XML syntax Дата введения — 2014—01—01 1    Область применения В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  2. 13250-3— 2012 Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Ч а с т ь 3 Синтаксис XML ISO/IEC13250-3:2007 Information technology — Topic maps — Part 3: XML syntax (IDT) Издание официальное Москва Стандартинформ 2014 Предисловие 1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ») на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4 2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии» 3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. №419-ст 4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 13250-3:2007 «Информационная технология. Тематические карты. Часть 3. Синтаксис XML» (ISO/IEC 13250-3:2007 «Information technology — Topic maps — Part 3: XML syntax») При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА 5    ВВЕДЕН ВПЕРВЫЕ Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru) © Стандартинформ, 2014 В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0 # ======================================================= # #    XML Topic Maps 2.0 # #    Это нормативная схема RELAX-NG для синтаксиса ХТМ 2.0, #    определенного в ISO 13250-3. # # # #======================================================== #    — Общие декларации default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier { xsd:anyURI }?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text | element * — xtm:* {attribute * {text }*, any-markup* })* #    — Схема topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version { «2.0» } topic = element topic {id, (itemldentity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID } name = element name {reifiable, type?, scope?, value, variant*} value = element value {text} variant = element variant {reifiable, scope, (resourceRef | resourceData)} scope = element scope {topicRef+ } instanceOf = element instanceOf {topicRef+ } type = element type {topicRef} occurrence = element occurrence { reifiable, type, scope?, (resourceRef | resourceData )} datatype = attribute datatype {xsd:anyl)RI} resourceData = element resourceData { datatype?, any-markup } association = element association {reifiable, type, scope?, role+ } role = element role {reifiable, type, topicRef} topicRef = element topicRef { href} resourceRef = element resourceRef { href} subjectLocator = element subjectLocator { href} subjectldentifier = element subjectldentifier { href} itemldentity = element itemldentity { href} mergeMap = element mergeMap { href} #    — Конец схемы ГОСТ Р ИСО/МЭК13250-3—2012 Приложение В (справочное) DTD ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — DTD Тематической Карты XML ……………………………………-    -> <!- — DTD Тематической Карты XML (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. Для идентификации пространства имен ХТМ используют URI: «http://www.topicmaps.org/xtm/» Формальный общедоступный идентификатор для этого DTD: «ISO/IEC 13250-3:2007//DTD XML Topic Maps (ХТМ) 2.0//EN» <!—topicMap……………………………………………………………………..—> <!ELEMENT topicMap (itemldentity*, mergeMap*, (topic | association )*) > <!ATTLIST topicMap version CDATA#FIXED ‘2.0’ xmlns CDATA #FIXED ‘http://www.topicmaps.org/xtm/’ reifier CDATA #IMPLIED <!- — topic……………………………………………….-    -> <!ELEMENT topic ( ( itemldentity | subjectLocator | subjectldentifier )*, instanceOf?, ( name | occurrence )* ) > <!ATTLI ST topic id ID #REQUIRED <!—itemldentity…………………………………………—> <!ELEMENT itemldentity EMPTY > <!ATTLIST itemldentity href CDATA #REQUIRED <!- — subjectLocator………………………………………..-    -> <!ELEMENT subjectLocator EMPTY > <!ATTLIST subjectLocator href CDATA #REQUIRED <!- — subjectldentifier……………………………………..-    -> <!ELEMENT subjectldentifier EMPTY 9 ГОСТ Р ИСО/МЭК13250-3—2012 <!ATTLIST subjectldentifier href С DATA #REQUIRED > <!—name………………………………………………..—> <!ELEMENT name (itemldentity*, type?, scope?, value, variant*) > <!ATTLIST name reifier CDATA #IMPLIED > <!—value……………………………………………….—> <!ELEMENT value (#PCDATA) > <!—variant……………………………………………..—> <!ELEMENT variant ( itemldentity*, scope, ( resourceRef | resourceData ) ) > <!ATTLIST variant reifier CDATA IMPLIED > <!- — scope……………………………………………….-    -> <!ELEMENT scope (topicRef)+ > <!—instanceOf………………………………………….. <!ELEMENT instanceOf (topicRef)+ > <!—type…………………………………………..—> <!ELEMENT type (topicRef) > <!—occurrence………………………………………….. <!ELEMENT occurrence (itemldentity*, type, scope?, ( resourceRef | resourceData > <!ATTLIST occurrence reifier CDATA IMPLIED > <!- — resourceData…………………………………………-    -> <!ELEMENT resourceData ANY > <!ATTLIST resourceData datatype CDATA IMPLIED > <!- — resourceRef………………………………………….-    -> 10 ГОСТ Р ИСО/МЭК13250-3—2012 <!ELEMENT resourceRef EMPTY > <!ATTLIST resourceRef href CDATA #REQUIRED <!- — association………………………………………….-    -> <!ELEMENT association (itemldentity*, type, scope?, role+ ) > <!ATTLIST association reifier CDATA #IMPLIED > <!—role………………………………………………..—> <!ELEMENT role (itemldentity*, type, topicRef) > <!ATTLIST role reifier CDATA IMPLIED <!- — topicRef…………………………………………….-    -> <!ELEMENT topicRef EMPTY > <!ATTLIST topicRef href CDATA #REQUIRED <!- — mergeMap…………………………………………….-    -> <!ELEMENT mergeMap EMPTY > <!ATTLIST mergeMap href CDATA #REQUIRED > <!- — Конец DTD Тематической Карты XML (XTM) 2.0 — -> 11 Приложение С (справочное) Схема W3C XML для ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — Схема XML Тематической Карты ………………………………….-    -> <!- — Схема XML Тематической Карты (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. — -> <xs:schema targetNamespace=«http://www.topicmaps.org/xtm/» elementFormDefault=«qualified>> xmlns=«http://www. topicmaps.org/xtm/» xmlns:xs=«http://www. w3.org/2001/XMLSchema» xmlns:dc=«http://purl.org/dc/elements/1.1/»> <xs:annotation> <xs:appinfo> <dc:title>W3C XML Schema forXTM 2.0</dc:title> <dc:owner>ISO/IEC JTC1 SC34</dc:owner> <dc:contributor>Max Voskob</dc:contributor> <dc:contributor>Lars Marius Garshol</dc:contributor> <dc:contributor>Ann Wrightson</dc:contributor> </xs:appinfo> </xs:annotation> <!—any-markup…………………………………………—> <xs:complexType name=«any-markup» mixed=«true»> <xs:complexContent mixed=«true»> <xs:restriction base=«xs:anyType»> <xs:sequence> <xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«datatype» type=«xs:anyURI»/> </xs:restriction> </xs:complexContent> </xs:complexType> <!—topicMap…………………………………………..—> <xs:element name=«topicMap»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«mergeMap» minOccurs=«0» maxOccurs=«unbounded»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«topic»/> <xs:element ref=«association»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> <xs:attribute name=«version» fixed=«2.0»/> </xs:complexType> </xs:element> <!- — topic…………………………….. <xs:element name=«topic»> 12 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:complexType> <xs:sequence> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«itemldentity»/> <xs:element ref=«subjectLocator»/> <xs:element ref=«subjectldentifier»/> </xs:choice> <xs:element ref=«instanceOf» minOccurs=«0» maxOccurs=«1»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«name»/> <xs:element ref=«occurrence»/> </xs:choice> </xs:sequence> <xs:attribute name=«id» type=«xs:ID» use=«required»/> </xs:complexType> </xs:element> <!—itemldentity……………………………………….—> <xs:element name=«itemldentity»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyllRI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectLocator……………………………………..-    -> <xs:element name=«subjectLocator»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectldentifier…………………………………..-    -> <xs:element name=«subjectldentifier»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — name………………………………………………-    -> <xs:element name=«name»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type» minOccurs=«0»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«value»/> <xs:element ref=«variant» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — value……………………………………………..- -> <xs:element name=«value» type=«xs:string»/> <!- — variant……………………………………………- -> <xs:element name=«variant»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» 13 ГОСТ Р ИСО/МЭК13250-3—2012 maxOccurs=«unbounded»/> <xs:element ref=«scope»/> <xs:choice> <xs:element ref=«resourceData»/> <xs:element ref=«resourceRef»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — scope……………………………………………..- -> <xs:element name=«scope»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!— instanceOf…………………………………………—> <xs:element name=«instanceOf»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!- — type………………………………………………- -> <xs:element name=«type»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef»/> </xs:choice> </xs:complexType> </xs:element> <!—occurrence…………………………………………—> <xs:element name=«occurrence»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:choice> <xs:element ref=«resourceRef»/> <xs:element ref=«resourceData»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — resourceData……………………………………….-    -> <xs:element name=«resourceData» type=«any-markup»/> <!—association………………………………………..—> <xs:element name=«association»> <xs:complexType> <xs:sequence> 14 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«role» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!—role………………………………………………—> <xs:element name=«role»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«topicRef»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> </xs:complexType> </xs:element> <!- — topicRef…………………………………………..-    -> <xs:element name=«topicRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — resourceRef………………………………………..-    -> <xs:element name=«resourceRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — mergeMap…………………………………………..-    -> <xs:element name=«mergeMap»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> </xs:schema> 15 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение D (справочное) Отличия от ХТМ 1.0 В настоящем приложении описаны различия между синтаксисом, определенным в настоящем стандарте и данным в ИСО/МЭК 13250. Отличия следующие: —    изменен URI пространства имен; —    к элементу topicMap добавлен атрибут version (версия); —    элемент parameters заменен на элемент scope; —    элемент roleSpec заменен на элемент type; —    элемент member заменен на элемент role; —    в качестве дочернего элемента role теперь требуется единственная ссылка на тему; —    элемент baseName заменен на элемент name; —    элемент instanceOf заменен на элемент type всюду, кроме как внутри элемента topic; —    элемент type теперь разрешен внутри элемента name; —    элементы variantName и subjectldentity исключены; —    элемент variant теперь не может быть вложенным; —    элемент type теперь обязателен внутри элементов occurrence, association и role; —    элемент mergeMap теперь не поддерживает добавленные области применения; —    атрибут id исключен из всех элементов, кроме элемента topic, а атрибут reifies добавлен в некоторые элементы; —    добавлены элементы itemldentity, subjectLocator и subjectldentifier; —    исключен элемент subjectlndicatorRef; —    в ХТМ больше не используют XLink и XML Base; —    элемент mergeMap теперь должен следовать перед всеми элементами topic и association; —    атрибут datatype добавлен к элементу resourceData, который теперь поддерживает встроенную разметку; —    добавлен атрибут reifer, заменяющий неявный синтаксис материализации в ХТМ 1.0, использующий элемент subjectlndicatorRef; —    элемент baseNameString заменен на элемент value. 16 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов В настоящем приложении определен идентификатор субъекта для термина, формально определенного в разделе 3. Идентификаторы субъектов определены с единственной целью позволить недвусмысленно ссылаться на идентифицируемые ими субъекты, например, чтобы обеспечить сравнение информации об этих субъектах. В настоящем стандарте с этими идентификаторами не связывается какая-либо семантика обработки сверх и помимо той, что связана с идентификаторами субъектов в общем случае. хтм http://psi.topicmaps.org/iso13250/glossary/XTM 17 ГОСТ Р ИСО/МЭК13250-3—2012 Содержание 1    Область применения………………………………… 1 2    Нормативные ссылки………………………………… 1 3    Термины и определения………………………………. 1 4    Определение синтаксиса………………………………. 1 4.1    Общие положения………………………………… 1 4.2    Десериализация …………………………………. 2 4.3    Общие синтаксические конструкции………………………… 2 4.3.1    Общие декларации……………………………… 2 4.3.2    Атрибут reifier……………………………….. 2 4.3.3    Атрибут href………………………………… 3 4.3.4    Создание IRI из строки……………………………. 3 4.4    Элемент topicMap………………………………… 3 4.5    Элемент topic………………………………….. 3 4.6    Элемент itemldentity……………………………….. 3 4.7    Элемент subjectLocator……………………………… 4 4.8    Элемент subjectldentifier……………………………… 4 4.9    Элемент instanceOf……………………………….. 4 4.10    Элемент name…………………………………. 4 4.11    Элемент value…………………………………. 5 4.12    Элемент variant…………………………………. 5 4.13    Элемент scope…………………………………. 5 4.14    Элемент type………………………………….. 5 4.15    Элемент occurrence……………………………….. 5 4.16    Элемент resourceData………………………………. 5 4.16.1    Общие положения…………………………….. 5 4.16.2    Десериализация……………………………… 6 4.16.3    Канонизация встроенного XML……………………….. 6 4.17    Элемент resourceRef………………………………. 6 4.18    Элемент association………………………………. 6 4.19    Элемент role………………………………….. 6 4.20    Элемент topicRef………………………………… 7 4.21    Элемент mergeMap……………………………….. 7 5    Соответствие……………………………………. 7 Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0……………….. 8 Приложение В (справочное) DTD    ХТМ 2.0……………………….. 9 Приложение С (справочное) Схема W3C XML для ХТМ 2.0………………… 12 Приложение D (справочное) Отличия от ХТМ 1.0…………………….. 16 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов…….. 17 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации……….. 18 Библиография…………………………………….. 19 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации Таблица ДА.1 Обозначение ссылочного международного стандарта Степень соответствия Обозначение и наименование соответствующего национального стандарта ИСО/МЭК 13250:2003 — * ИСО/МЭК 13250-2:2006 ют ГОСТ Р ИСО/МЭК 13250-2—2012 «Информационная технология. Тематические карты. Часть 2. Модель данных» ИСО/МЭК 19757-2:2003 — * * Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: — ЮТ — идентичный стандарт. 18 НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Часть 3 Синтаксис XML Information technology. Topic maps. Part 3. XML syntax Дата введения — 2014—01—01 1    Область применения В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  3. 2012 Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Ч а с т ь 3 Синтаксис XML ISO/IEC13250-3:2007 Information technology — Topic maps — Part 3: XML syntax (IDT) Издание официальное Москва Стандартинформ 2014 Предисловие 1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ») на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4 2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии» 3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. №419-ст 4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 13250-3:2007 «Информационная технология. Тематические карты. Часть 3. Синтаксис XML» (ISO/IEC 13250-3:2007 «Information technology — Topic maps — Part 3: XML syntax») При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА 5    ВВЕДЕН ВПЕРВЫЕ Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru) © Стандартинформ, 2014 В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0 # ======================================================= # #    XML Topic Maps 2.0 # #    Это нормативная схема RELAX-NG для синтаксиса ХТМ 2.0, #    определенного в ISO 13250-3. # # # #======================================================== #    — Общие декларации default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier { xsd:anyURI }?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text | element * — xtm:* {attribute * {text }*, any-markup* })* #    — Схема topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version { «2.0» } topic = element topic {id, (itemldentity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID } name = element name {reifiable, type?, scope?, value, variant*} value = element value {text} variant = element variant {reifiable, scope, (resourceRef | resourceData)} scope = element scope {topicRef+ } instanceOf = element instanceOf {topicRef+ } type = element type {topicRef} occurrence = element occurrence { reifiable, type, scope?, (resourceRef | resourceData )} datatype = attribute datatype {xsd:anyl)RI} resourceData = element resourceData { datatype?, any-markup } association = element association {reifiable, type, scope?, role+ } role = element role {reifiable, type, topicRef} topicRef = element topicRef { href} resourceRef = element resourceRef { href} subjectLocator = element subjectLocator { href} subjectldentifier = element subjectldentifier { href} itemldentity = element itemldentity { href} mergeMap = element mergeMap { href} #    — Конец схемы ГОСТ Р ИСО/МЭК13250-3—2012 Приложение В (справочное) DTD ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — DTD Тематической Карты XML ……………………………………-    -> <!- — DTD Тематической Карты XML (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. Для идентификации пространства имен ХТМ используют URI: «http://www.topicmaps.org/xtm/» Формальный общедоступный идентификатор для этого DTD: «ISO/IEC 13250-3:2007//DTD XML Topic Maps (ХТМ) 2.0//EN» <!—topicMap……………………………………………………………………..—> <!ELEMENT topicMap (itemldentity*, mergeMap*, (topic | association )*) > <!ATTLIST topicMap version CDATA#FIXED ‘2.0’ xmlns CDATA #FIXED ‘http://www.topicmaps.org/xtm/’ reifier CDATA #IMPLIED <!- — topic……………………………………………….-    -> <!ELEMENT topic ( ( itemldentity | subjectLocator | subjectldentifier )*, instanceOf?, ( name | occurrence )* ) > <!ATTLI ST topic id ID #REQUIRED <!—itemldentity…………………………………………—> <!ELEMENT itemldentity EMPTY > <!ATTLIST itemldentity href CDATA #REQUIRED <!- — subjectLocator………………………………………..-    -> <!ELEMENT subjectLocator EMPTY > <!ATTLIST subjectLocator href CDATA #REQUIRED <!- — subjectldentifier……………………………………..-    -> <!ELEMENT subjectldentifier EMPTY 9 ГОСТ Р ИСО/МЭК13250-3—2012 <!ATTLIST subjectldentifier href С DATA #REQUIRED > <!—name………………………………………………..—> <!ELEMENT name (itemldentity*, type?, scope?, value, variant*) > <!ATTLIST name reifier CDATA #IMPLIED > <!—value……………………………………………….—> <!ELEMENT value (#PCDATA) > <!—variant……………………………………………..—> <!ELEMENT variant ( itemldentity*, scope, ( resourceRef | resourceData ) ) > <!ATTLIST variant reifier CDATA IMPLIED > <!- — scope……………………………………………….-    -> <!ELEMENT scope (topicRef)+ > <!—instanceOf………………………………………….. <!ELEMENT instanceOf (topicRef)+ > <!—type…………………………………………..—> <!ELEMENT type (topicRef) > <!—occurrence………………………………………….. <!ELEMENT occurrence (itemldentity*, type, scope?, ( resourceRef | resourceData > <!ATTLIST occurrence reifier CDATA IMPLIED > <!- — resourceData…………………………………………-    -> <!ELEMENT resourceData ANY > <!ATTLIST resourceData datatype CDATA IMPLIED > <!- — resourceRef………………………………………….-    -> 10 ГОСТ Р ИСО/МЭК13250-3—2012 <!ELEMENT resourceRef EMPTY > <!ATTLIST resourceRef href CDATA #REQUIRED <!- — association………………………………………….-    -> <!ELEMENT association (itemldentity*, type, scope?, role+ ) > <!ATTLIST association reifier CDATA #IMPLIED > <!—role………………………………………………..—> <!ELEMENT role (itemldentity*, type, topicRef) > <!ATTLIST role reifier CDATA IMPLIED <!- — topicRef…………………………………………….-    -> <!ELEMENT topicRef EMPTY > <!ATTLIST topicRef href CDATA #REQUIRED <!- — mergeMap…………………………………………….-    -> <!ELEMENT mergeMap EMPTY > <!ATTLIST mergeMap href CDATA #REQUIRED > <!- — Конец DTD Тематической Карты XML (XTM) 2.0 — -> 11 Приложение С (справочное) Схема W3C XML для ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — Схема XML Тематической Карты ………………………………….-    -> <!- — Схема XML Тематической Карты (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. — -> <xs:schema targetNamespace=«http://www.topicmaps.org/xtm/» elementFormDefault=«qualified>> xmlns=«http://www. topicmaps.org/xtm/» xmlns:xs=«http://www. w3.org/2001/XMLSchema» xmlns:dc=«http://purl.org/dc/elements/1.1/»> <xs:annotation> <xs:appinfo> <dc:title>W3C XML Schema forXTM 2.0</dc:title> <dc:owner>ISO/IEC JTC1 SC34</dc:owner> <dc:contributor>Max Voskob</dc:contributor> <dc:contributor>Lars Marius Garshol</dc:contributor> <dc:contributor>Ann Wrightson</dc:contributor> </xs:appinfo> </xs:annotation> <!—any-markup…………………………………………—> <xs:complexType name=«any-markup» mixed=«true»> <xs:complexContent mixed=«true»> <xs:restriction base=«xs:anyType»> <xs:sequence> <xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«datatype» type=«xs:anyURI»/> </xs:restriction> </xs:complexContent> </xs:complexType> <!—topicMap…………………………………………..—> <xs:element name=«topicMap»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«mergeMap» minOccurs=«0» maxOccurs=«unbounded»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«topic»/> <xs:element ref=«association»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> <xs:attribute name=«version» fixed=«2.0»/> </xs:complexType> </xs:element> <!- — topic…………………………….. <xs:element name=«topic»> 12 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:complexType> <xs:sequence> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«itemldentity»/> <xs:element ref=«subjectLocator»/> <xs:element ref=«subjectldentifier»/> </xs:choice> <xs:element ref=«instanceOf» minOccurs=«0» maxOccurs=«1»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«name»/> <xs:element ref=«occurrence»/> </xs:choice> </xs:sequence> <xs:attribute name=«id» type=«xs:ID» use=«required»/> </xs:complexType> </xs:element> <!—itemldentity……………………………………….—> <xs:element name=«itemldentity»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyllRI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectLocator……………………………………..-    -> <xs:element name=«subjectLocator»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectldentifier…………………………………..-    -> <xs:element name=«subjectldentifier»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — name………………………………………………-    -> <xs:element name=«name»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type» minOccurs=«0»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«value»/> <xs:element ref=«variant» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — value……………………………………………..- -> <xs:element name=«value» type=«xs:string»/> <!- — variant……………………………………………- -> <xs:element name=«variant»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» 13 ГОСТ Р ИСО/МЭК13250-3—2012 maxOccurs=«unbounded»/> <xs:element ref=«scope»/> <xs:choice> <xs:element ref=«resourceData»/> <xs:element ref=«resourceRef»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — scope……………………………………………..- -> <xs:element name=«scope»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!— instanceOf…………………………………………—> <xs:element name=«instanceOf»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!- — type………………………………………………- -> <xs:element name=«type»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef»/> </xs:choice> </xs:complexType> </xs:element> <!—occurrence…………………………………………—> <xs:element name=«occurrence»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:choice> <xs:element ref=«resourceRef»/> <xs:element ref=«resourceData»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — resourceData……………………………………….-    -> <xs:element name=«resourceData» type=«any-markup»/> <!—association………………………………………..—> <xs:element name=«association»> <xs:complexType> <xs:sequence> 14 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«role» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!—role………………………………………………—> <xs:element name=«role»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«topicRef»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> </xs:complexType> </xs:element> <!- — topicRef…………………………………………..-    -> <xs:element name=«topicRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — resourceRef………………………………………..-    -> <xs:element name=«resourceRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — mergeMap…………………………………………..-    -> <xs:element name=«mergeMap»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> </xs:schema> 15 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение D (справочное) Отличия от ХТМ 1.0 В настоящем приложении описаны различия между синтаксисом, определенным в настоящем стандарте и данным в ИСО/МЭК 13250. Отличия следующие: —    изменен URI пространства имен; —    к элементу topicMap добавлен атрибут version (версия); —    элемент parameters заменен на элемент scope; —    элемент roleSpec заменен на элемент type; —    элемент member заменен на элемент role; —    в качестве дочернего элемента role теперь требуется единственная ссылка на тему; —    элемент baseName заменен на элемент name; —    элемент instanceOf заменен на элемент type всюду, кроме как внутри элемента topic; —    элемент type теперь разрешен внутри элемента name; —    элементы variantName и subjectldentity исключены; —    элемент variant теперь не может быть вложенным; —    элемент type теперь обязателен внутри элементов occurrence, association и role; —    элемент mergeMap теперь не поддерживает добавленные области применения; —    атрибут id исключен из всех элементов, кроме элемента topic, а атрибут reifies добавлен в некоторые элементы; —    добавлены элементы itemldentity, subjectLocator и subjectldentifier; —    исключен элемент subjectlndicatorRef; —    в ХТМ больше не используют XLink и XML Base; —    элемент mergeMap теперь должен следовать перед всеми элементами topic и association; —    атрибут datatype добавлен к элементу resourceData, который теперь поддерживает встроенную разметку; —    добавлен атрибут reifer, заменяющий неявный синтаксис материализации в ХТМ 1.0, использующий элемент subjectlndicatorRef; —    элемент baseNameString заменен на элемент value. 16 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов В настоящем приложении определен идентификатор субъекта для термина, формально определенного в разделе 3. Идентификаторы субъектов определены с единственной целью позволить недвусмысленно ссылаться на идентифицируемые ими субъекты, например, чтобы обеспечить сравнение информации об этих субъектах. В настоящем стандарте с этими идентификаторами не связывается какая-либо семантика обработки сверх и помимо той, что связана с идентификаторами субъектов в общем случае. хтм http://psi.topicmaps.org/iso13250/glossary/XTM 17 ГОСТ Р ИСО/МЭК13250-3—2012 Содержание 1    Область применения………………………………… 1 2    Нормативные ссылки………………………………… 1 3    Термины и определения………………………………. 1 4    Определение синтаксиса………………………………. 1 4.1    Общие положения………………………………… 1 4.2    Десериализация …………………………………. 2 4.3    Общие синтаксические конструкции………………………… 2 4.3.1    Общие декларации……………………………… 2 4.3.2    Атрибут reifier……………………………….. 2 4.3.3    Атрибут href………………………………… 3 4.3.4    Создание IRI из строки……………………………. 3 4.4    Элемент topicMap………………………………… 3 4.5    Элемент topic………………………………….. 3 4.6    Элемент itemldentity……………………………….. 3 4.7    Элемент subjectLocator……………………………… 4 4.8    Элемент subjectldentifier……………………………… 4 4.9    Элемент instanceOf……………………………….. 4 4.10    Элемент name…………………………………. 4 4.11    Элемент value…………………………………. 5 4.12    Элемент variant…………………………………. 5 4.13    Элемент scope…………………………………. 5 4.14    Элемент type………………………………….. 5 4.15    Элемент occurrence……………………………….. 5 4.16    Элемент resourceData………………………………. 5 4.16.1    Общие положения…………………………….. 5 4.16.2    Десериализация……………………………… 6 4.16.3    Канонизация встроенного XML……………………….. 6 4.17    Элемент resourceRef………………………………. 6 4.18    Элемент association………………………………. 6 4.19    Элемент role………………………………….. 6 4.20    Элемент topicRef………………………………… 7 4.21    Элемент mergeMap……………………………….. 7 5    Соответствие……………………………………. 7 Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0……………….. 8 Приложение В (справочное) DTD    ХТМ 2.0……………………….. 9 Приложение С (справочное) Схема W3C XML для ХТМ 2.0………………… 12 Приложение D (справочное) Отличия от ХТМ 1.0…………………….. 16 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов…….. 17 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации……….. 18 Библиография…………………………………….. 19 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации Таблица ДА.1 Обозначение ссылочного международного стандарта Степень соответствия Обозначение и наименование соответствующего национального стандарта ИСО/МЭК 13250:2003 — * ИСО/МЭК 13250-2:2006 ют ГОСТ Р ИСО/МЭК 13250-2—2012 «Информационная технология. Тематические карты. Часть 2. Модель данных» ИСО/МЭК 19757-2:2003 — * * Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: — ЮТ — идентичный стандарт. 18 НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Часть 3 Синтаксис XML Information technology. Topic maps. Part 3. XML syntax Дата введения — 2014—01—01 1    Область применения В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  4. Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ
  5. ТЕМАТИЧЕСКИЕ КАРТЫ
  6. Синтаксис XML ISO/IEC13250-3:2007 Information technology — Topic maps — Part 3: XML syntax (IDT) Издание официальное Москва Стандартинформ 2014 Предисловие 1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ») на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4 2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии» 3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. №419-ст 4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 13250-3:2007 «Информационная технология. Тематические карты. Часть 3. Синтаксис XML» (ISO/IEC 13250-3:2007 «Information technology — Topic maps — Part 3: XML syntax») При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА 5    ВВЕДЕН ВПЕРВЫЕ Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru) © Стандартинформ, 2014 В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0 # ======================================================= # #    XML Topic Maps 2.0 # #    Это нормативная схема RELAX-NG для синтаксиса ХТМ 2.0, #    определенного в ISO 13250-3. # # # #======================================================== #    — Общие декларации default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier { xsd:anyURI }?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text | element * — xtm:* {attribute * {text }*, any-markup* })* #    — Схема topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version { «2.0» } topic = element topic {id, (itemldentity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID } name = element name {reifiable, type?, scope?, value, variant*} value = element value {text} variant = element variant {reifiable, scope, (resourceRef | resourceData)} scope = element scope {topicRef+ } instanceOf = element instanceOf {topicRef+ } type = element type {topicRef} occurrence = element occurrence { reifiable, type, scope?, (resourceRef | resourceData )} datatype = attribute datatype {xsd:anyl)RI} resourceData = element resourceData { datatype?, any-markup } association = element association {reifiable, type, scope?, role+ } role = element role {reifiable, type, topicRef} topicRef = element topicRef { href} resourceRef = element resourceRef { href} subjectLocator = element subjectLocator { href} subjectldentifier = element subjectldentifier { href} itemldentity = element itemldentity { href} mergeMap = element mergeMap { href} #    — Конец схемы ГОСТ Р ИСО/МЭК13250-3—2012 Приложение В (справочное) DTD ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — DTD Тематической Карты XML ……………………………………-    -> <!- — DTD Тематической Карты XML (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. Для идентификации пространства имен ХТМ используют URI: «http://www.topicmaps.org/xtm/» Формальный общедоступный идентификатор для этого DTD: «ISO/IEC 13250-3:2007//DTD XML Topic Maps (ХТМ) 2.0//EN» <!—topicMap……………………………………………………………………..—> <!ELEMENT topicMap (itemldentity*, mergeMap*, (topic | association )*) > <!ATTLIST topicMap version CDATA#FIXED ‘2.0’ xmlns CDATA #FIXED ‘http://www.topicmaps.org/xtm/’ reifier CDATA #IMPLIED <!- — topic……………………………………………….-    -> <!ELEMENT topic ( ( itemldentity | subjectLocator | subjectldentifier )*, instanceOf?, ( name | occurrence )* ) > <!ATTLI ST topic id ID #REQUIRED <!—itemldentity…………………………………………—> <!ELEMENT itemldentity EMPTY > <!ATTLIST itemldentity href CDATA #REQUIRED <!- — subjectLocator………………………………………..-    -> <!ELEMENT subjectLocator EMPTY > <!ATTLIST subjectLocator href CDATA #REQUIRED <!- — subjectldentifier……………………………………..-    -> <!ELEMENT subjectldentifier EMPTY 9 ГОСТ Р ИСО/МЭК13250-3—2012 <!ATTLIST subjectldentifier href С DATA #REQUIRED > <!—name………………………………………………..—> <!ELEMENT name (itemldentity*, type?, scope?, value, variant*) > <!ATTLIST name reifier CDATA #IMPLIED > <!—value……………………………………………….—> <!ELEMENT value (#PCDATA) > <!—variant……………………………………………..—> <!ELEMENT variant ( itemldentity*, scope, ( resourceRef | resourceData ) ) > <!ATTLIST variant reifier CDATA IMPLIED > <!- — scope……………………………………………….-    -> <!ELEMENT scope (topicRef)+ > <!—instanceOf………………………………………….. <!ELEMENT instanceOf (topicRef)+ > <!—type…………………………………………..—> <!ELEMENT type (topicRef) > <!—occurrence………………………………………….. <!ELEMENT occurrence (itemldentity*, type, scope?, ( resourceRef | resourceData > <!ATTLIST occurrence reifier CDATA IMPLIED > <!- — resourceData…………………………………………-    -> <!ELEMENT resourceData ANY > <!ATTLIST resourceData datatype CDATA IMPLIED > <!- — resourceRef………………………………………….-    -> 10 ГОСТ Р ИСО/МЭК13250-3—2012 <!ELEMENT resourceRef EMPTY > <!ATTLIST resourceRef href CDATA #REQUIRED <!- — association………………………………………….-    -> <!ELEMENT association (itemldentity*, type, scope?, role+ ) > <!ATTLIST association reifier CDATA #IMPLIED > <!—role………………………………………………..—> <!ELEMENT role (itemldentity*, type, topicRef) > <!ATTLIST role reifier CDATA IMPLIED <!- — topicRef…………………………………………….-    -> <!ELEMENT topicRef EMPTY > <!ATTLIST topicRef href CDATA #REQUIRED <!- — mergeMap…………………………………………….-    -> <!ELEMENT mergeMap EMPTY > <!ATTLIST mergeMap href CDATA #REQUIRED > <!- — Конец DTD Тематической Карты XML (XTM) 2.0 — -> 11 Приложение С (справочное) Схема W3C XML для ХТМ 2.0 <!—……………………………………………………………………………………….—> <!- — Схема XML Тематической Карты ………………………………….-    -> <!- — Схема XML Тематической Карты (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3. — -> <xs:schema targetNamespace=«http://www.topicmaps.org/xtm/» elementFormDefault=«qualified>> xmlns=«http://www. topicmaps.org/xtm/» xmlns:xs=«http://www. w3.org/2001/XMLSchema» xmlns:dc=«http://purl.org/dc/elements/1.1/»> <xs:annotation> <xs:appinfo> <dc:title>W3C XML Schema forXTM 2.0</dc:title> <dc:owner>ISO/IEC JTC1 SC34</dc:owner> <dc:contributor>Max Voskob</dc:contributor> <dc:contributor>Lars Marius Garshol</dc:contributor> <dc:contributor>Ann Wrightson</dc:contributor> </xs:appinfo> </xs:annotation> <!—any-markup…………………………………………—> <xs:complexType name=«any-markup» mixed=«true»> <xs:complexContent mixed=«true»> <xs:restriction base=«xs:anyType»> <xs:sequence> <xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«datatype» type=«xs:anyURI»/> </xs:restriction> </xs:complexContent> </xs:complexType> <!—topicMap…………………………………………..—> <xs:element name=«topicMap»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«mergeMap» minOccurs=«0» maxOccurs=«unbounded»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«topic»/> <xs:element ref=«association»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> <xs:attribute name=«version» fixed=«2.0»/> </xs:complexType> </xs:element> <!- — topic…………………………….. <xs:element name=«topic»> 12 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:complexType> <xs:sequence> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«itemldentity»/> <xs:element ref=«subjectLocator»/> <xs:element ref=«subjectldentifier»/> </xs:choice> <xs:element ref=«instanceOf» minOccurs=«0» maxOccurs=«1»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«name»/> <xs:element ref=«occurrence»/> </xs:choice> </xs:sequence> <xs:attribute name=«id» type=«xs:ID» use=«required»/> </xs:complexType> </xs:element> <!—itemldentity……………………………………….—> <xs:element name=«itemldentity»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyllRI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectLocator……………………………………..-    -> <xs:element name=«subjectLocator»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — subjectldentifier…………………………………..-    -> <xs:element name=«subjectldentifier»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — name………………………………………………-    -> <xs:element name=«name»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type» minOccurs=«0»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«value»/> <xs:element ref=«variant» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — value……………………………………………..- -> <xs:element name=«value» type=«xs:string»/> <!- — variant……………………………………………- -> <xs:element name=«variant»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» 13 ГОСТ Р ИСО/МЭК13250-3—2012 maxOccurs=«unbounded»/> <xs:element ref=«scope»/> <xs:choice> <xs:element ref=«resourceData»/> <xs:element ref=«resourceRef»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — scope……………………………………………..- -> <xs:element name=«scope»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!— instanceOf…………………………………………—> <xs:element name=«instanceOf»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice> </xs:complexType> </xs:element> <!- — type………………………………………………- -> <xs:element name=«type»> <xs:complexType> <xs:choice> <xs:element ref=«topicRef»/> </xs:choice> </xs:complexType> </xs:element> <!—occurrence…………………………………………—> <xs:element name=«occurrence»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:choice> <xs:element ref=«resourceRef»/> <xs:element ref=«resourceData»/> </xs:choice> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!- — resourceData……………………………………….-    -> <xs:element name=«resourceData» type=«any-markup»/> <!—association………………………………………..—> <xs:element name=«association»> <xs:complexType> <xs:sequence> 14 ГОСТ Р ИСО/МЭК13250-3—2012 <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«role» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType> </xs:element> <!—role………………………………………………—> <xs:element name=«role»> <xs:complexType> <xs:sequence> <xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/> <xs:element ref=«topicRef»/> </xs:sequence> <xs:attribute name=«reifier» type=«xs:anyURI»/> </xs:complexType> </xs:element> <!- — topicRef…………………………………………..-    -> <xs:element name=«topicRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> <!- — resourceRef………………………………………..-    -> <xs:element name=«resourceRef»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType> </xs:element> <!- — mergeMap…………………………………………..-    -> <xs:element name=«mergeMap»> <xs:complexType> <xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType> </xs:element> </xs:schema> 15 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение D (справочное) Отличия от ХТМ 1.0 В настоящем приложении описаны различия между синтаксисом, определенным в настоящем стандарте и данным в ИСО/МЭК 13250. Отличия следующие: —    изменен URI пространства имен; —    к элементу topicMap добавлен атрибут version (версия); —    элемент parameters заменен на элемент scope; —    элемент roleSpec заменен на элемент type; —    элемент member заменен на элемент role; —    в качестве дочернего элемента role теперь требуется единственная ссылка на тему; —    элемент baseName заменен на элемент name; —    элемент instanceOf заменен на элемент type всюду, кроме как внутри элемента topic; —    элемент type теперь разрешен внутри элемента name; —    элементы variantName и subjectldentity исключены; —    элемент variant теперь не может быть вложенным; —    элемент type теперь обязателен внутри элементов occurrence, association и role; —    элемент mergeMap теперь не поддерживает добавленные области применения; —    атрибут id исключен из всех элементов, кроме элемента topic, а атрибут reifies добавлен в некоторые элементы; —    добавлены элементы itemldentity, subjectLocator и subjectldentifier; —    исключен элемент subjectlndicatorRef; —    в ХТМ больше не используют XLink и XML Base; —    элемент mergeMap теперь должен следовать перед всеми элементами topic и association; —    атрибут datatype добавлен к элементу resourceData, который теперь поддерживает встроенную разметку; —    добавлен атрибут reifer, заменяющий неявный синтаксис материализации в ХТМ 1.0, использующий элемент subjectlndicatorRef; —    элемент baseNameString заменен на элемент value. 16 ГОСТ Р ИСО/МЭК13250-3—2012 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов В настоящем приложении определен идентификатор субъекта для термина, формально определенного в разделе 3. Идентификаторы субъектов определены с единственной целью позволить недвусмысленно ссылаться на идентифицируемые ими субъекты, например, чтобы обеспечить сравнение информации об этих субъектах. В настоящем стандарте с этими идентификаторами не связывается какая-либо семантика обработки сверх и помимо той, что связана с идентификаторами субъектов в общем случае. хтм http://psi.topicmaps.org/iso13250/glossary/XTM 17 ГОСТ Р ИСО/МЭК13250-3—2012 Содержание 1    Область применения………………………………… 1 2    Нормативные ссылки………………………………… 1 3    Термины и определения………………………………. 1 4    Определение синтаксиса………………………………. 1 4.1    Общие положения………………………………… 1 4.2    Десериализация …………………………………. 2 4.3    Общие синтаксические конструкции………………………… 2 4.3.1    Общие декларации……………………………… 2 4.3.2    Атрибут reifier……………………………….. 2 4.3.3    Атрибут href………………………………… 3 4.3.4    Создание IRI из строки……………………………. 3 4.4    Элемент topicMap………………………………… 3 4.5    Элемент topic………………………………….. 3 4.6    Элемент itemldentity……………………………….. 3 4.7    Элемент subjectLocator……………………………… 4 4.8    Элемент subjectldentifier……………………………… 4 4.9    Элемент instanceOf……………………………….. 4 4.10    Элемент name…………………………………. 4 4.11    Элемент value…………………………………. 5 4.12    Элемент variant…………………………………. 5 4.13    Элемент scope…………………………………. 5 4.14    Элемент type………………………………….. 5 4.15    Элемент occurrence……………………………….. 5 4.16    Элемент resourceData………………………………. 5 4.16.1    Общие положения…………………………….. 5 4.16.2    Десериализация……………………………… 6 4.16.3    Канонизация встроенного XML……………………….. 6 4.17    Элемент resourceRef………………………………. 6 4.18    Элемент association………………………………. 6 4.19    Элемент role………………………………….. 6 4.20    Элемент topicRef………………………………… 7 4.21    Элемент mergeMap……………………………….. 7 5    Соответствие……………………………………. 7 Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0……………….. 8 Приложение В (справочное) DTD    ХТМ 2.0……………………….. 9 Приложение С (справочное) Схема W3C XML для ХТМ 2.0………………… 12 Приложение D (справочное) Отличия от ХТМ 1.0…………………….. 16 Приложение Е (справочное) Идентификаторы субъектов для определенных терминов…….. 17 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации……….. 18 Библиография…………………………………….. 19 Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации Таблица ДА.1 Обозначение ссылочного международного стандарта Степень соответствия Обозначение и наименование соответствующего национального стандарта ИСО/МЭК 13250:2003 — * ИСО/МЭК 13250-2:2006 ют ГОСТ Р ИСО/МЭК 13250-2—2012 «Информационная технология. Тематические карты. Часть 2. Модель данных» ИСО/МЭК 19757-2:2003 — * * Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: — ЮТ — идентичный стандарт. 18 НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Часть 3 Синтаксис XML Information technology. Topic maps. Part 3. XML syntax Дата введения — 2014—01—01 1    Область применения В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  7. Содержание
  8. 1    Область применения В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  9. 2    Нормативные ссылки В настоящем стандарте использованы нормативные ссылки на следующие стандарты: ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps) ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model) ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG). 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  10. 3    Термины и определения В настоящем стандарте использован следующий термин с соответствующим определением: 3.1    ХТМ: Синтаксис, определенный в настоящем стандарте. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  11. 4    Определение синтаксиса 4.1    Общие положения Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/. Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С. Издание официальное 4.2    Десериализация Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт. В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных. Входом для процесса десериализации являются: -элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2); — абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий. Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела. Всякий раз, когда создается информационный элемент, те его свойства, которые имеют установленные значения, инициализируются пустым множеством; все остальные свойства инициализируются нулем. Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML. Процессоры XML, соответствующие Рекомендации XML, могут давать различные результаты для одного и того же документа XML в зависимости от того, являются ли они валидирующими или нет, и в зависимости от поддерживаемых факультативных характеристик. Не допускается полагаться на какое-либо конкретное поведение процессоров XML, используемых получателями. 4.3    Общие синтаксические конструкции 4.3.1    Общие декларации Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI} any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })* 4.3.2    Атрибут reifier Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. 2 ГОСТ Р ИСО/МЭК13250-3—2012 4.3.3    Атрибут href Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста. В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4. 4.3.4    Создание IRI из строки Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа. 4.4    Элемент topicMap Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»} Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0». В ходе десериализации элемент topicMap вызывает создание элемента тематической карты. 4.5    Элемент topic Элемент типа topic (тема) используется для представления тем и действует как контейнер и точка ссылки для тематической информации. Дочерние элементы элемента topic (тема) обеспечивают идентификацию, а также имена и появления, тогда как ассоциативные роли, исполняемые темой, специфицированы вне элемента topic (тема). Элемент topic (тема) декларирован следующим образом: topic = element topic {id, (item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID} Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее. В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты. Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.6    Элемент itemldentity Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом: itemldentity = element itemldentity {href} В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 3 4.7    Элемент subjectLocator Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href} В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.8    Элемент subjectldentifier Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема). Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href} В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2. 4.9    Элемент instanceOf Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+} Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги: —    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта); —    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef; —    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой). 4.10    Элемент name Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени. Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*} В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема). Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают. 4 ГОСТ Р ИСО/МЭК13250-3—2012 4.11    Элемент value Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text} В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя). 4.12    Элемент variant Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом: variant = element variant {reifiable, scope, (resourceRef | resourceData)} В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени. 4.13    Элемент scope Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+} В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом. 4.14    Элемент type Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип). Элемент type (тип) декларирован следующим образом: type = element type {topicRef} В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом. 4.15    Элемент occurrence Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable, type, scope?, (resourceRef | resourceData )} В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема). 4.16    Элемент resourceData 4.16.1 Общие положения Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных. Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup} 5 Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса). 4.16.2    Десериализация Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3. Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса). 4.16.3    Канонизация встроенного XML Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом: —    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса); —    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен. Второй параметр процесса канонизации равен false (т. е. комментарии не включают). Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой. 4.17    Элемент resourceRef Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом. Элемент resourceRef (ссылка Ресурса) декларирован следующим образом: resourceRef = element resourceRef {href} В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI» 4.18    Элемент association Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ } В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты. 4.19    Элемент role Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом: role = element role {reifiable, type, topicRef} В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association ГОСТ Р ИСО/МЭК13250-3—2012 (ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли. 4.20    Элемент topicRef Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом: topicRef = element topicRef {href} Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем. В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef. 4.21    Элемент mergeMap Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом: mergeMap = element mergeMap {href} Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента. В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа. Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя: —    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А; —    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А. Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7
  12. 5 Соответствие Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он: —    является хорошо сформированным документом XML по [7]; —    соответствует [8]; —    соответствует схеме в приложении А; —    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных. Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям: —    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом ХТМ; —    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4. 7

гост р исо/мэк

13250-3—

2012

Информационная технология

ТЕМАТИЧЕСКИЕ КАРТЫ

Ч а с т ь 3

Синтаксис XML

ISO/IEC13250-3:2007 Information technology — Topic maps — Part 3: XML syntax

(IDT)

Издание официальное

Москва

Стандартинформ

2014

Предисловие

1    ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ») на основе собственного аутентичного перевода на русский язык международного стандарта, указанного в пункте 4

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационные технологии»

3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 24 сентября 2012 г. №419-ст

4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 13250-3:2007 «Информационная технология. Тематические карты. Часть 3. Синтаксис XML» (ISO/IEC 13250-3:2007 «Information technology — Topic maps — Part 3: XML syntax»)

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА

5    ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТР 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок—в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

© Стандартинформ, 2014

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

Приложение А (обязательное)
Схема RELAX-NG для ХТМ 2.0

# =======================================================

#

#    XML Topic Maps 2.0

#

#    Это нормативная схема RELAX-NG для синтаксиса ХТМ 2.0,

#    определенного в ISO 13250-3.

#

#

#

#========================================================

#    — Общие декларации

default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap

reifiable = attribute reifier { xsd:anyURI }?, itemldentity* href = attribute href {xsd:anyURI}

any-markup = (text | element * — xtm:* {attribute * {text }*, any-markup* })*

#    — Схема

topicMap = element topicMap {reifiable, version, mergeMap*,

(topic | association)*} version = attribute version { «2.0» } topic = element topic {id,

(itemldentity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*}

id = attribute id {xsd:ID }

name = element name {reifiable, type?, scope?, value, variant*} value = element value {text}

variant = element variant {reifiable, scope, (resourceRef | resourceData)}

scope = element scope {topicRef+ }

instanceOf = element instanceOf {topicRef+ }

type = element type {topicRef}

occurrence = element occurrence { reifiable,

type, scope?, (resourceRef | resourceData )} datatype = attribute datatype {xsd:anyl)RI} resourceData = element resourceData { datatype?, any-markup } association = element association {reifiable, type, scope?, role+ } role = element role {reifiable, type, topicRef} topicRef = element topicRef { href} resourceRef = element resourceRef { href} subjectLocator = element subjectLocator { href} subjectldentifier = element subjectldentifier { href} itemldentity = element itemldentity { href} mergeMap = element mergeMap { href}

#    — Конец схемы

ГОСТ Р ИСО/МЭК13250-3—2012

Приложение В (справочное)

DTD ХТМ 2.0

<!—……………………………………………………………………………………….—>

<!- — DTD Тематической Карты XML ……………………………………-    ->

<!- — DTD Тематической Карты XML (ХТМ), Версия 2.0

Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3.

Для идентификации пространства имен ХТМ используют URI: «http://www.topicmaps.org/xtm/»

Формальный общедоступный идентификатор для этого DTD: «ISO/IEC 13250-3:2007//DTD XML Topic Maps (ХТМ) 2.0//EN»

<!—topicMap……………………………………………………………………..—>

<!ELEMENT topicMap

(itemldentity*, mergeMap*, (topic | association )*)

>

<!ATTLIST topicMap

version CDATA#FIXED ‘2.0’

xmlns CDATA #FIXED ‘http://www.topicmaps.org/xtm/’ reifier CDATA #IMPLIED

<!- — topic……………………………………………….-    ->

<!ELEMENT topic

( ( itemldentity | subjectLocator | subjectldentifier )*, instanceOf?, ( name | occurrence )* )

>

<!ATTLI ST topic

id ID #REQUIRED

<!—itemldentity…………………………………………—>

<!ELEMENT itemldentity EMPTY

>

<!ATTLIST itemldentity

href CDATA #REQUIRED

<!- — subjectLocator………………………………………..-    ->

<!ELEMENT subjectLocator EMPTY

>

<!ATTLIST subjectLocator

href CDATA #REQUIRED

<!- — subjectldentifier……………………………………..-    ->

<!ELEMENT subjectldentifier EMPTY

9

ГОСТ Р ИСО/МЭК13250-3—2012

<!ATTLIST subjectldentifier href С DATA #REQUIRED

>

<!—name………………………………………………..—>

<!ELEMENT name

(itemldentity*, type?, scope?, value, variant*)

>

<!ATTLIST name

reifier CDATA #IMPLIED

>

<!—value……………………………………………….—>

<!ELEMENT value (#PCDATA) >

<!—variant……………………………………………..—>

<!ELEMENT variant

( itemldentity*, scope, ( resourceRef | resourceData ) )

>

<!ATTLIST variant

reifier CDATA IMPLIED

>

<!- — scope……………………………………………….-    ->

<!ELEMENT scope (topicRef)+

>

<!—instanceOf…………………………………………..

<!ELEMENT instanceOf (topicRef)+

>

<!—type…………………………………………..—>

<!ELEMENT type (topicRef)

>

<!—occurrence…………………………………………..

<!ELEMENT occurrence

(itemldentity*, type, scope?, ( resourceRef | resourceData

>

<!ATTLIST occurrence

reifier CDATA IMPLIED

>

<!- — resourceData…………………………………………-    ->

<!ELEMENT resourceData ANY

>

<!ATTLIST resourceData

datatype CDATA IMPLIED

>

<!- — resourceRef………………………………………….-    ->

10

ГОСТ Р ИСО/МЭК13250-3—2012

<!ELEMENT resourceRef EMPTY

>

<!ATTLIST resourceRef

href CDATA #REQUIRED

<!- — association………………………………………….-    ->

<!ELEMENT association

(itemldentity*, type, scope?, role+ )

>

<!ATTLIST association

reifier CDATA #IMPLIED

>

<!—role………………………………………………..—>

<!ELEMENT role

(itemldentity*, type, topicRef)

>

<!ATTLIST role

reifier CDATA IMPLIED

<!- — topicRef…………………………………………….-    ->

<!ELEMENT topicRef EMPTY

>

<!ATTLIST topicRef

href CDATA #REQUIRED

<!- — mergeMap…………………………………………….-    ->

<!ELEMENT mergeMap EMPTY

>

<!ATTLIST mergeMap

href CDATA #REQUIRED

>

<!- — Конец DTD Тематической Карты XML (XTM) 2.0

— ->

11

Приложение С (справочное)

Схема W3C XML для ХТМ 2.0

<!—……………………………………………………………………………………….—>

<!- — Схема XML Тематической Карты ………………………………….-    ->

<!- — Схема XML Тематической Карты (ХТМ), Версия 2.0 Это ХТМ 2.0, синтаксис обмена XML для Тематических Карт ISO 13250, определенный в ISO 13250-3.

— ->

<xs:schema targetNamespace=«http://www.topicmaps.org/xtm/» elementFormDefault=«qualified>> xmlns=«http://www. topicmaps.org/xtm/» xmlns:xs=«http://www. w3.org/2001/XMLSchema» xmlns:dc=«http://purl.org/dc/elements/1.1/»>

<xs:annotation>

<xs:appinfo>

<dc:title>W3C XML Schema forXTM 2.0</dc:title> <dc:owner>ISO/IEC JTC1 SC34</dc:owner>

<dc:contributor>Max Voskob</dc:contributor>

<dc:contributor>Lars Marius Garshol</dc:contributor> <dc:contributor>Ann Wrightson</dc:contributor>

</xs:appinfo>

</xs:annotation>

<!—any-markup…………………………………………—>

<xs:complexType name=«any-markup» mixed=«true»> <xs:complexContent mixed=«true»>

<xs:restriction base=«xs:anyType»>

<xs:sequence>

<xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence>

<xs:attribute name=«datatype» type=«xs:anyURI»/> </xs:restriction>

</xs:complexContent>

</xs:complexType>

<!—topicMap…………………………………………..—>

<xs:element name=«topicMap»>

<xs:complexType>

<xs:sequence>

<xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/>

<xs:element ref=«mergeMap» minOccurs=«0» maxOccurs=«unbounded»/>

<xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«topic»/>

<xs:element ref=«association»/>

</xs:choice>

</xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyURI»/>

<xs:attribute name=«version» fixed=«2.0»/>

</xs:complexType>

</xs:element>

<!- — topic……………………………..

<xs:element name=«topic»>

12

ГОСТ Р ИСО/МЭК13250-3—2012

<xs:complexType>

<xs:sequence>

<xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«itemldentity»/>

<xs:element ref=«subjectLocator»/>

<xs:element ref=«subjectldentifier»/>

</xs:choice>

<xs:element ref=«instanceOf» minOccurs=«0» maxOccurs=«1»/> <xs:choice minOccurs=«0» maxOccurs=«unbounded»> <xs:element ref=«name»/>

<xs:element ref=«occurrence»/>

</xs:choice>

</xs:sequence>

<xs:attribute name=«id» type=«xs:ID» use=«required»/> </xs:complexType>

</xs:element>

<!—itemldentity……………………………………….—>

<xs:element name=«itemldentity»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyllRI» use=«required»/> </xs:complexType>

</xs:element>

<!- — subjectLocator……………………………………..-    ->

<xs:element name=«subjectLocator»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType>

</xs:element>

<!- — subjectldentifier…………………………………..-    ->

<xs:element name=«subjectldentifier»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType>

</xs:element>

<!- — name………………………………………………-    ->

<xs:element name=«name»>

<xs:complexType>

<xs:sequence>

<xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/>

<xs:element ref=«type» minOccurs=«0»/>

<xs:element ref=«scope» minOccurs=«0»/>

<xs:element ref=«value»/>

<xs:element ref=«variant» minOccurs=«0» maxOccurs=«unbounded»/>

</xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyl)RI»/>

</xs:complexType>

</xs:element>

<!- — value……………………………………………..- ->

<xs:element name=«value» type=«xs:string»/>

<!- — variant……………………………………………- ->

<xs:element name=«variant»>

<xs:complexType>

<xs:sequence>

<xs:element ref=«itemldentity» minOccurs=«0»

13

ГОСТ Р ИСО/МЭК13250-3—2012

maxOccurs=«unbounded»/>

<xs:element ref=«scope»/>

<xs:choice>

<xs:element ref=«resourceData»/>

<xs:element ref=«resourceRef»/>

</xs:choice>

</xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType>

</xs:element>

<!- — scope……………………………………………..- ->

<xs:element name=«scope»>

<xs:complexType>

<xs:choice>

<xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice>

</xs:complexType>

</xs:element>

<!— instanceOf…………………………………………—>

<xs:element name=«instanceOf»>

<xs:complexType>

<xs:choice>

<xs:element ref=«topicRef» maxOccurs=«unbounded»/> </xs:choice>

</xs:complexType>

</xs:element>

<!- — type………………………………………………- ->

<xs:element name=«type»>

<xs:complexType>

<xs:choice>

<xs:element ref=«topicRef»/>

</xs:choice>

</xs:complexType>

</xs:element>

<!—occurrence…………………………………………—>

<xs:element name=«occurrence»>

<xs:complexType>

<xs:sequence>

<xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/>

<xs:element ref=«scope» minOccurs=«0»/>

<xs:choice>

<xs:element ref=«resourceRef»/>

<xs:element ref=«resourceData»/>

</xs:choice>

</xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType>

</xs:element>

<!- — resourceData……………………………………….-    ->

<xs:element name=«resourceData» type=«any-markup»/>

<!—association………………………………………..—>

<xs:element name=«association»>

<xs:complexType>

<xs:sequence>

14

ГОСТ Р ИСО/МЭК13250-3—2012

<xs:element ref=«itemldentity» minOccurs=«0»

maxOccurs=«unbounded»/> <xs:element ref=«type»/>

<xs:element ref=«scope» minOccurs=«0»/> <xs:element ref=«role» maxOccurs=«unbounded»/> </xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyl)RI»/> </xs:complexType>

</xs:element>

<!—role………………………………………………—>

<xs:element name=«role»>

<xs:complexType>

<xs:sequence>

<xs:element ref=«itemldentity» minOccurs=«0» maxOccurs=«unbounded»/> <xs:element ref=«type»/>

<xs:element ref=«topicRef»/>

</xs:sequence>

<xs:attribute name=«reifier» type=«xs:anyURI»/> </xs:complexType>

</xs:element>

<!- — topicRef…………………………………………..-    ->

<xs:element name=«topicRef»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType>

</xs:element>

<!- — resourceRef………………………………………..-    ->

<xs:element name=«resourceRef»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyl)RI» use=«required»/> </xs:complexType>

</xs:element>

<!- — mergeMap…………………………………………..-    ->

<xs:element name=«mergeMap»>

<xs:complexType>

<xs:attribute name=«href» type=«xs:anyURI» use=«required»/> </xs:complexType>

</xs:element>

</xs:schema>

15

ГОСТ Р ИСО/МЭК13250-3—2012
Приложение D (справочное)
Отличия от ХТМ 1.0

В настоящем приложении описаны различия между синтаксисом, определенным в настоящем стандарте и данным в ИСО/МЭК 13250.

Отличия следующие:

—    изменен URI пространства имен;

—    к элементу topicMap добавлен атрибут version (версия);

—    элемент parameters заменен на элемент scope;

—    элемент roleSpec заменен на элемент type;

—    элемент member заменен на элемент role;

—    в качестве дочернего элемента role теперь требуется единственная ссылка на тему;

—    элемент baseName заменен на элемент name;

—    элемент instanceOf заменен на элемент type всюду, кроме как внутри элемента topic;

—    элемент type теперь разрешен внутри элемента name;

—    элементы variantName и subjectldentity исключены;

—    элемент variant теперь не может быть вложенным;

—    элемент type теперь обязателен внутри элементов occurrence, association и role;

—    элемент mergeMap теперь не поддерживает добавленные области применения;

—    атрибут id исключен из всех элементов, кроме элемента topic, а атрибут reifies добавлен в некоторые элементы;

—    добавлены элементы itemldentity, subjectLocator и subjectldentifier;

—    исключен элемент subjectlndicatorRef;

—    в ХТМ больше не используют XLink и XML Base;

—    элемент mergeMap теперь должен следовать перед всеми элементами topic и association;

—    атрибут datatype добавлен к элементу resourceData, который теперь поддерживает встроенную разметку;

—    добавлен атрибут reifer, заменяющий неявный синтаксис материализации в ХТМ 1.0, использующий элемент subjectlndicatorRef;

—    элемент baseNameString заменен на элемент value.

16

ГОСТ Р ИСО/МЭК13250-3—2012

Приложение Е (справочное)

Идентификаторы субъектов для определенных терминов

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

хтм

http://psi.topicmaps.org/iso13250/glossary/XTM

17

ГОСТ Р ИСО/МЭК13250-3—2012

Содержание

1    Область применения………………………………… 1

2    Нормативные ссылки………………………………… 1

3    Термины и определения………………………………. 1

4    Определение синтаксиса………………………………. 1

4.1    Общие положения………………………………… 1

4.2    Десериализация …………………………………. 2

4.3    Общие синтаксические конструкции………………………… 2

4.3.1    Общие декларации……………………………… 2

4.3.2    Атрибут reifier……………………………….. 2

4.3.3    Атрибут href………………………………… 3

4.3.4    Создание IRI из строки……………………………. 3

4.4    Элемент topicMap………………………………… 3

4.5    Элемент topic………………………………….. 3

4.6    Элемент itemldentity……………………………….. 3

4.7    Элемент subjectLocator……………………………… 4

4.8    Элемент subjectldentifier……………………………… 4

4.9    Элемент instanceOf……………………………….. 4

4.10    Элемент name…………………………………. 4

4.11    Элемент value…………………………………. 5

4.12    Элемент variant…………………………………. 5

4.13    Элемент scope…………………………………. 5

4.14    Элемент type………………………………….. 5

4.15    Элемент occurrence……………………………….. 5

4.16    Элемент resourceData………………………………. 5

4.16.1    Общие положения…………………………….. 5

4.16.2    Десериализация……………………………… 6

4.16.3    Канонизация встроенного XML……………………….. 6

4.17    Элемент resourceRef………………………………. 6

4.18    Элемент association………………………………. 6

4.19    Элемент role………………………………….. 6

4.20    Элемент topicRef………………………………… 7

4.21    Элемент mergeMap……………………………….. 7

5    Соответствие……………………………………. 7

Приложение А (обязательное) Схема RELAX-NG для ХТМ 2.0……………….. 8

Приложение В (справочное) DTD    ХТМ 2.0……………………….. 9

Приложение С (справочное) Схема W3C XML для ХТМ 2.0………………… 12

Приложение D (справочное) Отличия от ХТМ 1.0…………………….. 16

Приложение Е (справочное) Идентификаторы субъектов для определенных терминов…….. 17

Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов

ссылочным национальным стандартам Российской Федерации……….. 18

Библиография…………………………………….. 19

Приложение ДА (справочное)

Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации

Таблица ДА.1

Обозначение ссылочного международного стандарта

Степень

соответствия

Обозначение и наименование соответствующего национального стандарта

ИСО/МЭК 13250:2003

*

ИСО/МЭК 13250-2:2006

ют

ГОСТ Р ИСО/МЭК 13250-2—2012 «Информационная технология. Тематические карты. Часть 2. Модель данных»

ИСО/МЭК 19757-2:2003

*

* Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов.

Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта:

— ЮТ — идентичный стандарт.

18

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационная технология ТЕМАТИЧЕСКИЕ КАРТЫ Часть 3 Синтаксис XML

Information technology. Topic maps. Part 3. XML syntax

Дата введения — 2014—01—01

1    Область применения

В настоящем стандарте определен основанный на XML синтаксис обмена для тематических карт, который может быть использован для обмена экземплярами моделей данных, определенных в ИСО/МЭК 13250-2. В настоящем стандарте также определено отображение из синтаксиса обмена в модель данных. Синтаксис определен со схемой RELAX-NG, тем самым, обеспечивая большую точность отображения в модель данных, что так же эффективно определяет интерпретацию синтаксиса.

2    Нормативные ссылки

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

ИСО/МЭК 13250:2003 Информационные технологии. Приложения SGML. Тематические карты (ISO/IEC 13250:2003, Information technology — SGML applications — Topic maps)

ИСО/МЭК 13250-2 Информационные технологии. Тематические карты. Часть 2. Модель данных (ISO/IEC 13250-2, Information technology — Topic Maps — Part 2: Data model)

ИСО/МЭК 19757-2 Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Валидация на основе регулярной грамматики. RELAX NG (ISO/IEC 19757-2, Information technology — Document Schema Definition Language (DS DL) — Part 2: Regulargrammar-based validation — RELAX NG).

3    Термины и определения

В настоящем стандарте использован следующий термин с соответствующим определением:

3.1    ХТМ: Синтаксис, определенный в настоящем стандарте.

4    Определение синтаксиса

4.1    Общие положения

Сокращение ХТМ часто используют для ссылки на синтаксис, определенный в настоящем стандарте. Его полное название — Тематические Карты XML. Пространством имен для синтаксиса ХТМ является http://www.topicmaps.org/xtm/.

Документ ХТМ — это документ XML, соответствующий синтаксису ХТМ. В настоящем разделе определены синтаксис документов ХТМ с использованием схемы RELAX-NG в компактном синтаксисе (см. ИСО/МЭК 19757-2) и их семантика с использованием словесного описания отображения из документов ХТМ в ИСО/МЭК 13250-2. Полная схема приведена в приложении A, DTD — в приложении В, схема XML W3C — в приложении С.

Издание официальное

4.2    Десериализация

Процесс экспорта Тематических Карт из внутреннего представления реализации модели данных в экземпляр синтаксиса Тематических Карт называют сериализацией. Противоположный процесс—десериализация — это процесс построения экземпляра внутреннего представления реализации модели данных из экземпляра синтаксиса Тематических Карт.

В настоящем разделе определено, как экземпляры синтаксиса ХТМ десериализуют в экземпляры модели данных, определенной в ИСО/МЭК 13250-2. Сериализация определена только неявно, но реализациям следует гарантировать, что для любого экземпляра модели данных сериализация ХТМ, созданная реализацией, при десериализации приведет к новому экземпляру модели данных, канонический вид которой по [1] будет тем же, что и канонический вид исходного экземпляра модели данных.

Входом для процесса десериализации являются:

-элемент документа по [2], представляющий документ ХТМ. (Свойства информационного элемента по [2] указывают как [[имя свойства]] в отличие от свойств по ИСО/МЭК 13250-2);

— абсолютный IRI. Это тот IRI, из которого был получен документ ХТМ; его называют IRI документа. Этот IRI всегда должен быть предоставлен, так какой необходим для присвоения идентификаторов тематических элементов, созданных в ходе десериализации. Если документ ХТМ не был прочитан с какого-либо конкретного IRI, то приложение отвечает за предоставление IRI, который рассматривается как подходящий.

Десериализация осуществляется путем обработки каждого элемента в элементе документа в том порядке, в котором они находятся в документе. Для каждого встретившегося элемента проводится операция, заданная в разделе для данного типа элемента. Входной элемент соответствует разделу в данном документе, когда свойство [[namespace uri]] (uri пространства имен) равно «http://www.topicmaps.org/xtm/» и [[local name]] (локальное имя) соответствует имени типа элемента, заданного в заголовке этого раздела.

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

Примечание — В настоящем стандарте в качестве входа для процесса десериализации требуется экземпляр информационного набора XML, но в большинстве случаев фактическим входом будет документ XML. В настоящем стандарте не установлены ограничения на построение информационных наборов XML из документов XML, но принято, что в большинстве случаев это будет сделано просто путем использования процессора XML.

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

4.3    Общие синтаксические конструкции
4.3.1    Общие декларации

Для краткости в схемах использованы следующие декларации: default namespace = «http://www.topicmaps.org/xtm/» namespace xtm = «http://www.topicmaps.org/xtm/» datatypes xsd = «http://www.w3.org/2001/XMLSchema-datatypes» start = topicMap

reifiable = attribute reifier{xsd:anyURI}?, itemldentity* href = attribute href {xsd:anyURI}

any-markup = (text j element * — xtm:* {attribute * {text }*, any-markup* })*

4.3.2    Атрибут reifier

Атрибут reifier (материализация) используют для ссылки из конструктива тематической карты на то, какой выглядит для темы, материализующей этот конструктив. Ссылка является IRI, соответствующим одному из идентификаторов тематических элементов.

В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут reifier (материализация), разрешается в абсолютный IRI, следуя процедуре 4.3.4. Если существует тематический элемент с этим IRI в его свойстве [item identifiers] (идентификаторы элемента), то этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты. Если такой тематический элемент не существует, то создают новый тематический элемент, добавляют IRI к его свойству [item identifiers] (идентификаторы элемента) и этот тематический элемент устанавливают в качестве значения свойства [reifier] (материализация) обрабатываемого конструктива тематической карты.

2

ГОСТ Р ИСО/МЭК13250-3—2012
4.3.3    Атрибут href

Атрибут href всегда ссылается на информационный ресурс, используя относительный или абсолютный IRI, допустимый по [3] и [4], но смысл ссылки зависит от контекста.

В ходе десериализации значение свойства [[normalized value]] (нормализованное значение) атрибута node (узел), представляющего атрибут href, преобразуют в IRI по процедуре 4.3.4.

4.3.4    Создание IRI из строки

Для создания IRI из строки удаляют управляющие последовательности, заменяя управляющие последовательности % НН на символы, которые они представляют, и декодируют получившуюся последовательность символов из UTF-8 в последовательность абстрактных символов Unicode. Получившуюся строку преобразуют в абсолютный IRI, разрешая его относительно IRI документа.

4.4    Элемент topicMap

Элемент типа topicMap — элемент документа всех документов ХТМ. Элемент действует как контейнер для тематической карты и может быть использован для ее материализации, но не имеет другого значения. Этот элемент декларирован следующим образом: topicMap = element topicMap {reifiable, version, mergeMap*, (topic | association)*} version = attribute version {«2.0»}

Атрибут version (версия) используют для спецификации версии ХТМ, которой соответствует документ. Для документов ХТМ 2.0 он должен быть равен «2.0».

В ходе десериализации элемент topicMap вызывает создание элемента тематической карты.

4.5    Элемент topic

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

Элемент topic (тема) декларирован следующим образом: topic = element topic {id,

(item Identity | subjectLocator | subjectldentifier)*, instanceOf?, (name | occurrence)*} id = attribute id {xsd:ID}

Атрибут id обеспечивает уникальный в пределах документа идентификатор темы, который используют для ссылок на нее.

В ходе десериализации элемент topic (тема) вызывает создание тематического элемента и помещение его в свойство [topics] (темы) элемента тематической карты.

Локатор создают путем сцепления IRI документа, символа «#» и значения свойства [[normalized value]] (нормализованное значение) атрибута в свойстве [[attributes]] (атрибуты) того элемента, свойством [[local name]] (локальное имя) которого является «id». Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) тематического элемента. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2.

4.6    Элемент itemldentity

Элемент itemldentity используют для присвоения идентификатора элемента конструктиву тематической карты, представленному его родительским элементом. Этот элемент декларирован следующим образом:

itemldentity = element itemldentity {href}

В ходе десериализации элемент itemldentity вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3. Этот локатор добавляют к свойству [item identifiers] (идентификаторы элемента) информационного элемента, созданного родительским элементом. Если родительским элементом является элемент topic (тема) и этот тематический элемент в результате становится равным другому тематическому элементу, то два тематических элемента сливаются в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2.

3

4.7    Элемент subjectLocator

Элемент subjectLocator используют для присвоения локатора субъекта теме, которая представлена его родительским элементом topic (тема). Этот элемент декларирован следующим образом: subjectLocator = element subjectLocator {href}

В ходе десериализации элемент subjectLocator вызывает создание локатора из своего атрибута href так, как установлено в 4.3.3, и добавление его к свойству [subject locators] (локаторы субъекта) тематического элемента, созданного родительским тематическим элементом. Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2.

4.8    Элемент subjectldentifier

Элемент subjectldentifier используют для присвоения идентификатора субъекта теме, представленной его родительским элементом topic (тема).

Элемент subjectldentifier декларирован следующим образом: subjectldentifier = element subjectldentifier {href}

В ходе десериализации элемент subjectldentifier вызывает создание локатора из своего атрибута href attribute так, как установлено в 4.3.3. Этот локатор добавляют к свойству [subject identifiers] (идентификаторы субъекта) тематического элемента, созданного родительским элементом topic (тема). Если в результате тематический элемент станет равным другому тематическому элементу, то два тематических элемента сливают в соответствии с процедурой, приведенной в ИСО/МЭК 13250-2.

4.9    Элемент instanceOf

Элемент instanceOf используют для присвоения одного или нескольких типов теме, представленной его родительским элементом. Типы всегда являются темами, указанными дочерними элементами элемента instanceOf. Элемент instanceOf декларирован следующим образом: instanceOf = element instanceOf {topicRef+}

Для каждого дочернего элемента элемента instanceOf создают тематический элемент, следуя процедуре 4.20. Затем для каждого тематического элемента осуществляют следующие шаги:

—    создают новый элемент ассоциации с двумя элементами ассоциативных ролей в его свойстве [roles] (роли) и тематический элемент, представляющий ассоциативный тип-экземпляр (описанный в ИСО/МЭК 13250-2, п. 7.2) в его свойстве [type] (тип). Если такой тематический элемент еще не существует, то его создают, а идентификатор субъекта добавляют к его свойству [subjectidentifiers] (идентификаторы субъекта);

—    для первого элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль типавданной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной дочерним элементом topicRef;

—    для второго элемента ассоциативной роли его свойство [type] (тип) устанавливают равным тематическому элементу, представляющему роль экземпляра в данной ассоциации (см. цитированную выше ссылку), а свойство [player] (исполнитель) устанавливают равным теме, созданной родительским элементом (т.е. текущей темой).

4.10    Элемент name

Элемент name (имя) используют для добавления тематических имен теме, представленной родительским элементом topic (тема). Дочерние элементы элемента name (имя) обеспечивают значения свойства элемента тематического имени.

Элемент name (имя) type декларирован следующим образом: name = element name {reifiable, type?, scope?, value, variant*}

В ходе десериализации элемент name (имя) вызывает создание элемента тематического имени и добавление его к свойству [topic names] (тематические имена) тематического элемента, созданного родительским элементом topic (тема).

Если элемент name (имя) имеет дочерний элемент type (тип), то его обрабатывают в соответствии с процедурой 4.14. В противном случае свойство [type] (тип) элемента тематического имени устанавливают равным тематическому элементу, свойство [subject identifiers] (идентификаторы субъекта) которого содержит «http://psi.topicmaps.org/iso13250/model/topic-name»; если такой тематический элемент не существует, то его создают.

4

ГОСТ Р ИСО/МЭК13250-3—2012
4.11    Элемент value

Элемент value (значение) используют для обеспечения значения тематического имени. Этот элемент декларирован следующим образом: value = element value {text}

В ходе десериализации рассматривают информационные элементы в свойстве [[children]] (потомки) элемента value (значение) и для каждого символьного информационного элемента символы Unicode, заданные свойством [[character code]] (символьный код), добавляют к свойству [value] (значение) элемента тематического имени, созданного родительским элементом name (имя).

4.12    Элемент variant

Элемент variant (вариант) используют для добавления имени варианта к тематическому имени. Этот элемент декларирован следующим образом:

variant = element variant {reifiable, scope, (resourceRef | resourceData)}

В ходе десериализации элемент variant (вариант) вызывает создание элемента варианта и добавление его к свойству [variants] (варианты) элемента тематического имени, созданного родительским элементом name (имя). После обработки дочернего элемента scope (область применения) темы свойства [scope] (область применения) элемента тематического имени, созданного родительским элементом name (имя) добавляют к свойству [scope] (область применения) элемента варианта имени.

4.13    Элемент scope

Элемент scope (область применения) используют для присвоения области применения утверждению, представленному родительским элементом. Этот элемент декларирован следующим образом: scope = element scope {topicRef+}

В ходе десериализации элемент scope (область применения) не имеет прямого влияния на обрабатываемое информационное множество, но изменяет интерпретацию его дочерних элементов. Каждый дочерний элемент topicRef обрабатывают в соответствии с процедурой 4.20 для создания тематического элемента. Созданные тематические элементы собирают в множество, которое присваивают в качестве значения свойству [scope] (область применения) информационного элемента, созданного родительским элементом.

4.14    Элемент type

Элемент type (тип) используют для присвоения типа представленному его родительским элементом конструктиву тематической карты. Тип всегда является темой, указанной дочерним элементом элемента type (тип).

Элемент type (тип) декларирован следующим образом: type = element type {topicRef}

В ходе десериализации дочерний элемент создает тематический элемент, следуя процедуре в 4.20, который устанавливают в качестве значения свойства [type] (тип) информационного элемента, созданного родительским элементом.

4.15    Элемент occurrence

Элемент occurrence (появление) используют для присвоения появления теме, определенной родительским элементом. Этот элемент декларирован следующим образом: occurrence = element occurrence {reifiable,

type, scope?, (resourceRef | resourceData )}

В ходе десериализации элемент occurrence (появление) вызывает создание элемента появления и добавление его к свойству [occurrences] (появления) тематического элемента, созданного родительским элементом topic (тема).

4.16    Элемент resourceData 4.16.1 Общие положения

Элемент resourceData (данные Ресурса) используют для представления информационного ресурса в форме содержимого из документа ХТМ. Этот информационный ресурс может быть вариантом имени или появлением и может иметь тип данных.

Элемент resourceData (данные Ресурса) декларирован следующим образом: datatype = attribute datatype {xsd:anyURI} resourceData = element resourceData {datatype?, any-markup}

5

Атрибут datatype (тип данных) содержит абсолютный IRI, идентифицирующий тип данных ресурса, который представлен элементом resourceData (данные Ресурса).

4.16.2    Десериализация

Элемент resourceData (данные Ресурса) устанавливает свойство [value] (значение) информационного элемента, созданного родительским элементом. Если атрибут datatype (тип данных) отсутствует, то свойство [datatype] (тип данных) устанавливают равным «http://www.w3.Org/2001/XMLSchema#string»; если этот атрибут присутствует, то свойство [datatype] (тип данных) устанавливают равным значению атрибута.

Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyType», то далее следуют по процедуре в соответствии с 4.16.3.

Если свойство [datatype] (тип данных) равно «http://www.w3.Org/2001/XMLSchema#anyURI», то далее следуют по процедуре в 4.3.4 для создания значения свойства [value] (значение) из содержимого элемента resourceData (данные Ресурса). В этом случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса).

В остальных случаях рассматривают информационные элементы в свойстве [[children]] (потомки) и для каждого символьного информационного элемента к свойству [value] (значение) информационного элемента, созданного родительским элементом, добавляют символ Unicode, заданный свойством [[character code]] (символьный код). В данном случае является ошибкой наличие дочерних элементов у элемента resourceData (данные Ресурса).

4.16.3    Канонизация встроенного XML

Документы ХТМ могут содержать внутри элементов resourceData (данные Ресурса) произвольную разметку, которая в модели данных представлена строкой. Строковое представление создают из встроенной разметки, применяя процесс канонизации, описанный в [5]. Входом для процесса канонизации является набор узлов XPath (как требуется в [5]). Набор узлов создают следующим образом:

—    добавляют узлы XPath для всех элементов, атрибутов и символьных информационных элементов, являющихся потомками элемента resourceData (данные Ресурса);

—    удаляют все узлы пространства имен, присоединенные к этим узлам элементов, в которых нет, по крайней мере, одного элемента или атрибута node (узел) с данными IRI и префиксом пространства имен.

Второй параметр процесса канонизации равен false (т. е. комментарии не включают).

Примечание — В [5] выход определен как последовательность октетов, закодированная в UTF-8, и выход определенного выше процесса должен быть эквивалентной строкой.

4.17    Элемент resourceRef

Элемент resourceRef (ссылкаРесурса) используют для ссылки на информационный ресурс. Информационный ресурс может быть появлением, если родительский элемент является появлением, или вариантом имени, если родительский элемент является вариантом.

Элемент resourceRef (ссылка Ресурса) декларирован следующим образом:

resourceRef = element resourceRef {href}

В ходе десериализации элемент resourceRef (ссылка Ресурса) вызывает создание локатора по процедуре в 4.3.3 и вставку его в свойство [value] (значение) информационного элемента, созданного родительским элементом. Свойство [datatype] (тип данных) информационного элемента устанавливают равным «http:/ /www.w3.org/2001 /ХМ LSchema#anyURI»

4.18    Элемент association

Элемент association (ассоциация) представляет ассоциации. Дочерние элементы role (роль) обеспечивают ассоциативные роли ассоциации. Этот элемент декларирован следующим образом: association = element association {reifiable, type, scope?, role+ }

В ходе десериализации элемент association (ассоциация) вызывает создание элемента ассоциации и добавление его к свойству [associations] (ассоциации) элемента тематической карты.

4.19    Элемент role

Элемент role (роль) используют для присвоения ассоциативной роли ассоциации, созданной родительским элементом ассоциации. Этот элемент декларирован следующим образом:

role = element role {reifiable, type, topicRef}

В ходе десериализации элемент role (роль) вызывает создание элемента ассоциативной роли и добавление его к свойству [roles] (роли) элемента ассоциации, созданного родительским элементом association

ГОСТ Р ИСО/МЭК13250-3—2012

(ассоциация). Дочерний элемент topicRef разрешают до темы в соответствии с процедурой в 4.20 и эту тему устанавливают в качестве значения свойства [player] (исполнитель) элемента ассоциативной роли.

4.20    Элемент topicRef

Элемент topicRef ссылается на тему в том же документе XML или внешнюю. Смысл ссылки на тему зависит от контекста. Этот элемент декларирован следующим образом:

topicRef = element topicRef {href}

Атрибут href содержит абсолютную или относительную ссылку IRI, которая является ссылкой на тему. Эта ссылка IRI должна иметь идентификатор фрагмента, который в [6] назван стенографическим (shorthand) указателем.

В ходе десериализации из элемента topicRef создают локатор в соответствии с правилами в 4.3.3. Если модель данных содержит тематический элемент, свойства [subject identifiers] (идентификаторы субъекта) или [item identifiers] (идентификаторы элемента) которого содержат такой же локатор, то этот тематический элемент является тем элементом, который создан данным элементом topicRef. Если такой тематический элемент не существует, то его создают и добавляют локатор к его свойству [item identifiers] (идентификаторы элемента). Полученный тематический элемент является тем, который создан данным элементом topicRef.

4.21    Элемент mergeMap

Элемент mergeMap (карта Слияния) ссылается на внешний документХТМ, который должен быть слит в тематическую карту, содержащую элемент mergeMap. Этот элемент декларирован следующим образом:

mergeMap = element mergeMap {href}

Атрибут href содержит абсолютный или относительный IRI, ссылающийся на документ ХТМ, который должен быть слит. Этот IRI не должен содержать идентификатор фрагмента.

В ходе десериализации создают абсолютный IRI из атрибута href элемента mergeMap следуя процедуре в 4.3.3. IRI внешнего информационного ресурса разрешают и проводят синтаксический разбор этого ресурса с помощью процессора XML в соответствии с [7] для создания информационного множества XML по [2]. Если ресурс не является хорошо сформированным документом XML, то это ошибка. Затем информационное множество XML десериализуют в экземпляр модели данных, используя процедуры раздела 4 с элементом документа и IRI информационного ресурса в качестве входа.

Новый экземпляр модели данных (В) сливают в текущий экземпляр (А), добавляя:

—    все тематические элементы из свойства [topics] (темы) экземпляра В к свойству [topics] (темы) экземпляра А;

—    все элементы ассоциации из свойства [associations] (ассоциации) экземпляра В к свойству [associations] (ассоциации) экземпляра А.

Примечание — Добавление тем и ассоциаций к А может запустить дальнейшие слияния, как описано в ИСО/МЭК 13250-2.

5 Соответствие

Документ ХТМ соответствует требованиям настоящего стандарта при условии, что он:

—    является хорошо сформированным документом XML по [7];

—    соответствует [8];

—    соответствует схеме в приложении А;

—    является десериализуемым в соответствии с процедурами, определенными в разделе 4, без ошибок и нарушений ограничений модели данных.

Процессор ХТМ соответствует настоящему стандарту, при условии, что он удовлетворяет следующим требованиям:

—    процессор ХТМ должен отвергать любой вход, который не является соответствующим документом

ХТМ;

—    процессор ХТМ для всех документов ХТМ должен создавать представление, изоморфное экземпляру модели данных, созданному по процедурам, приведенным в разделе 4.

7

Оцените статью
Комментарии читателей