rusmarcxml/slim: xml-схема для библиографических...
TRANSCRIPT
УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. А. М. ГОРЬКОГО ЦЕНТР КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
RUSMARCXML/Slim: "Тонкая" XML-схема для библиографических записей в формате RUSMARC
Екатеринбург 2003 г.
Оглавление Предварительные замечания ....................................................................................................3 Назначение .................................................................................................................................4 Общие принципы разработки...................................................................................................5 Аналоги.......................................................................................................................................6 RUSMARCXML/Slim и ISO 2709 ............................................................................................7 Структура документа RUSMARCXML/Slim ..........................................................................8 Тип leaderType .......................................................................................................................8 Элемент leader ...................................................................................................................9 Тип subfieldIdentifier ..............................................................................................9 Тип subfieldType.............................................................................................................9 Элемент subfield ..............................................................................................................9 Тип controlTag ...............................................................................................................10 Тип controlType .............................................................................................................10 Элемент control...............................................................................................................10 Тип fieldTag ....................................................................................................................11 Тип indicatorType ........................................................................................................11 Тип fieldType..................................................................................................................12 Элемент field....................................................................................................................12 Тип built-inType...........................................................................................................12 Элемент built-in ............................................................................................................13 Тип recordType ...............................................................................................................13 Элемент record .................................................................................................................13 Элемент collection........................................................................................................14 Общие атрибуты ..................................................................................................................14 Разметка записи ...................................................................................................................14 Запись ...............................................................................................................................14 Маркер записи..................................................................................................................14 Справочные (контрольные) поля ...................................................................................14 Поля данных.....................................................................................................................14 Поля, имеющие встроенные поля ..................................................................................15 Данные, неконвертируемые из исходного формата.....................................................15 Полный пример................................................................................................................15
Техническое описание.............................................................................................................17 XML-схема ...............................................................................................................................25 Стандарты и спецификации....................................................................................................27
2
Предварительные замечания Настоящий документ описывает XML-схему для библиографических записей в формате RUSMARC, разработанную Центром компьютерных технологий Уральского государственного университета им А. М. Горького (ЦКТ УрГУ) и предлагаемую в качестве рабочего материала для обсуждения в Национальной службе развития системы форматов RUSMARC.
В основу разработки положены результаты исследований специалистов ЦКТ УрГУ в рамках гранта РФФИ 2002 г.
Наименование схемы: RUSMARCXML/Slim.
Формат: XML Schema.
Статус: предложения.
Версия: 3 октября 2003 г.
3
Назначение Схема RUSMARCXML/Slim разработана в целях формализованного описания структуры XML-документов, предназначенных для обмена библиографическими данными в форматах семейства MARC в XML-ориентированной среде.
Схема RUSMARCXML/Slim может служить средством, позволяющим осуществлять проверку целостности записей (корректности структуры записи) средствами XML-парсера. Указанный механизм может быть использован при отладке программных систем, обрабатывающих библиографические данные, а также для фильтрации поврежденных записей, возникающих в результате сбоев при обработке и передаче данных.
Схема RUSMARCXML/Slim не является средством, предназначенным для контроля корректности содержания записи средствами XML-парсера. В этих целях целесообразно использовать специализированную XML-схему, жестко определяющую структуру и содержание данных.
4
Общие принципы разработки • формирование XML-документа из MARC-записи в стандарте ISO 2709 без потерь
данных;
• возможность проверки целостности записи (корректности структуры записи) средствами XML-парсера;
• учет специфических особенностей формата RUSMARC;
• максимальная независимость от диалектов формата MARC;
• устойчивость к изменениям в формате RUSMARC;
5
Аналоги Аналогом схеме RUSMARCXML/Slim является MARC 21 XML Schema, разработанная Библиотекой конгресса США (http://www.loc.gov/standards/marcxml///).
Указанная схема, вообще говоря, не является строго ориентированной на формат MARC 21. Она определяет лишь иной, чем стандарт ISO 2709, синтаксис разметки записи, полностью сохраняя структурные элементы стандарта (маркер записи, контрольные поля, поля данных и т. п.)
MARC 21 XML Schema (версия от 21.05.2002 г.) несколько сужает стандарт ISO 2709, налагая дополнительные ограничения на длины и значения индикаторов и идентификаторов (кодов) подполей.
Хотя MARC 21 XML Schema, по своей сути, не является зависимой от диалекта формата MARC, существуют серьезные препятствия использованию данной схемы применительно к формату RUSMARC. В частности, указанной схемой не предусмотрена разметка встроенных полей и данных, неконвертируемых из другого формата, что существенно снижает эффективность применения этой схемы. Имеются также расхождения в допустимых значениях индикаторов полей (MARC 21 XML Schema не допускает в качестве значения индикатора символа-заполнителя – “|”).
6
RUSMARCXML/Slim и ISO 2709 Соответствие компонентов ISO 2709, формата RUSMARC и схемы RUSMARCXML/Slim представлено в следующей таблице:
ISO 2709 RUSMARC RUSMARCXML/Slim Запись Запись Элемент record Маркер записи Маркер записи Элемент leader Справочник Справочник (определен
стандартом ISO 2709). Компонент отсутствует. Функциональность реализуется атрибутом tag, а также открывающимися и закрывающимися тэгами элементов control, field и built-in.
Справочное (контрольное) поле
Поле Элемент control
Поле данных Поле Элементы field, built-in Метка поля Код поля Атрибут tag Идентификатор (подполя) Код подполя Атрибут code Индикатор Индикатор 1, индикатор 2 Атрибут i1, атрибут i2 Разделитель поля Разделитель поля
(определен стандартом ISO 2709).
Компонент отсутствует. Функциональность реализуется открывающимися и закрывающимися тэгами элементов control, field и built-in.
Подполе Подполе Элемент subfield. Разделитель подполей Разделитель подполей
(определен стандартом ISO 2709).
Компонент отсутствует. Функциональность реализуется открывающимися и закрывающимися тэгами элемента subfield.
Разделитель записей Разделитель записей (определен стандартом ISO 2709).
Компонент отсутствует. Функциональность реализуется открывающимся и закрывающимся тэгами элемента record.
7
Структура документа RUSMARCXML/Slim В соответствии с RUSMARCXML/Slim библиографические данные (группа из одной или более записей) представляются в виде XML-документа, корневым элементом которого является элемент collection, который, в свою очередь, имеет один или более дочерних элементов record.
Элемент record содержит структурированные данные, соответствующие библиографической записи стандарта ISO 2709. Указанный элемент может иметь в качестве дочерних элементы leader, control, field и built-in. Указанный элемент имеет атрибуты type (тип формата) и format (диалект формата).
Элемент leader содержит неструктурированные символьные данные, соответствующие маркеру записи стандарта ISO 2709.
Элемент control содержит неструктурированные символьные данные, соответствующие справочному (контрольному) полю стандарта ISO 2709. Метка (код) поля задается атрибутом tag.
Элемент field содержит структурированные данные, соответствующие полю данных стандарта ISO 2709. Указанный элемент имеет в качестве дочерних элементы subfield. Индикаторы поля задаются атрибутами i1 и i2. Метка (код) поля задается атрибутом tag.
Элемент built-in содержит структурированные данные, соответствующие полю формата RUSMARC, имеющему встроенные поля. Указанный элемент имеет в качестве дочерних элементы control и field. Индикаторы поля задаются атрибутами i1 и i2. Метка (код) поля задается атрибутом tag.
Элемент subfield содержит данные произвольной структуры, соответствующие подполю стандарта ISO 2709. Идентификатор (код) подполя задается атрибутом code.
Ограничения и структура указанных элементов определяются перечисленными ниже типами данных.
Тип leaderType Тип leaderType описывает ограничения, накладываемые на маркер записи. Содержимое Строка символов. Ограничения • Длина строки – 24 символа.
• Позиции 0–4, 12–16 содержат десятичные цифры. • Позиции 5–9, 17–19, 23 содержат десятичные цифры, буквы
латинского алфавита в верхнем или нижнем регистре, символ « » (пробел).
• Позиции 10–11 содержат последовательность символов «22». • Позиции 20–22 содержат последовательность символов «450».
Атрибуты Нет. Сужение ISO 2709 • Значения позиций 5 (статус записи), 6–9 (коды применения), 17–19
(коды систем пользователя), 23 (зарезервировано) ограничены символом « » (пробел), десятичной цифрой или буквой латинского алфавита в нижнем или верхнем регистре.
• Значения позиций 10 (длина индикатора) и 11 (длина идентификатора) ограничены последовательностью символов «22».
• Значения позиций 20–22 (плана справочника) ограничены последовательностью символов «450».
Расширение ISO 2709 Нет. Сужение RUSMARC Нет.
8
Расширение RUSMARC Учитывая возможные изменения формата RUSMARC в процессе его развития, перечень значений для позиций 5–9, 17–19, 23 расширен: допустимо использование цифр, букв латинского алфавита в верхнем и нижнем регистре, а также символа « » (пробел). Данное расширение не противоречит стандарту ISO 2709.
Элемент leader Элемент leader соответствует маркеру записи стандарта ISO 2709. Назначение Контейнер для маркера записи. Родительский элемент record Обязательность Обязательный для каждого элемента record. Повторяемость Не повторяется внутри элемента record. Тип leaderType
Аналог MARC 21 XML Schema leader
Тип subfieldIdentifier Тип subfieldIdentifier описывает ограничения, накладываемые на идентификаторы (коды) подполей. Содержимое Строка символов. Ограничения • Длина строки – 1 символ.
• Строка может содержать десятичную цифру из диапазона от 0 до 9 или букву латинского алфавита в верхнем или нижнем регистре.
Атрибуты Нет. Сужение ISO 2709 См. Ограничения Расширение ISO 2709 Нет. Сужение RUSMARC Нет. Расширение RUSMARC Учитывая возможные изменения формата RUSMARC в процессе его
развития, перечень значений для кодов подполей расширен: допустимо использование цифр и букв латинского алфавита в верхнем и нижнем регистре. Данное расширение не противоречит стандарту ISO 2709.
Тип subfieldType Тип subfieldType описывает структуру подполей полей данных. Содержимое Данные произвольной структуры. Ограничения Нет. Атрибуты code – идентификатор (код) подполя.
Обязательный. Тип: subfieldIdentifier.
id, idref – см. «Общие атрибуты». Сужение ISO 2709 Нет. Расширение ISO 2709 Атрибуты id, idref. Сужение RUSMARC Нет. Расширение RUSMARC Нет.
Элемент subfield Элемент subfield соответствует подполю поля данных стандарта ISO 2709. Назначение Контейнер для подполя поля данных. Родительский элемент field Обязательность Обязательный для элемента field. Повторяемость Повторяется. Тип subfieldType Аналог MARC 21 XML Schema subfield
9
Тип controlTag Тип controlTag описывает ограничения, накладываемые на метки (коды) справочных (контрольных) полей. Содержимое Строка символов. Ограничения • Длина строки – 3символа.
• Позиции 1–2 содержат последовательность символов «00» (два нуля). • Позиция 3 содержит либо десятичную цифру из диапазона от 1 до 9,
либо букву латинского алфавита в верхнем или нижнем регистре. Атрибуты Нет. Сужение ISO 2709 Нет. Расширение ISO 2709 Нет. Сужение RUSMARC Нет. Расширение RUSMARC Учитывая возможные изменения формата RUSMARC в процессе его
развития, перечень значений для последнего символа метки (кода) справочного (контрольного) поля расширен: допустимо использование цифр от 1 до 9 и букв латинского алфавита в верхнем и нижнем регистре. Данное расширение не противоречит стандарту ISO 2709.
Тип controlType Тип controlType описывает структуру справочных (контрольных) полей. Содержимое Строка символов. Ограничения Длина строки больше нуля. Атрибуты tag – метка (код) поля.
Обязательный. Тип: controlTag.
id, idref – см. «Общие атрибуты». Сужение ISO 2709 Нет. Расширение ISO 2709 Атрибуты id, idref. Сужение RUSMARC Нет. Расширение RUSMARC Нет.
Элемент control Элемент control соответствует справочным (контрольным) полям стандарта ISO 2709.. Назначение Контейнер для справочного поля. Родительский элемент record, field Обязательность Обязательный для каждого элемента record. Повторяемость Повторяется. Тип controlType Аналог MARC 21 XML Schema controlfield
10
Тип fieldTag Тип fieldTag описывает ограничения, накладываемые на метки (коды) полей данных. Содержимое Строка символов. Ограничения • Длина строки – 3 символа.
• Строка содержит десятичные цифры и буквы латинского алфавита в верхнем или нижнем регистре.
• Для позиций 1–2 в качестве значения не допускается последовательность символов «00» (два нуля).
Атрибуты Нет. Сужение ISO 2709 Нет. Расширение ISO 2709 Нет. Сужение RUSMARC Нет. Расширение RUSMARC Учитывая возможные изменения формата RUSMARC в процессе его
развития, перечень символов для формирования меток (кодов) полей данных расширен: допустимо использование цифр и букв латинского алфавита в верхнем и нижнем регистре. Данное расширение не противоречит стандарту ISO 2709.
Тип indicatorType Тип indicatorType описывает ограничения, накладываемые на индикаторы полей данных. Содержимое Строка символов. Ограничения • Длина строки – 1 символ.
• Строка содержит либо десятичную цифру из диапазона от 0 до 9, либо букву латинского алфавита в верхнем или нижнем регистре, либо символ « » (пробел), либо символ «|» (вертикальная черта).
Атрибуты Нет. Сужение ISO 2709 См. Ограничения. Расширение ISO 2709 Нет. Сужение RUSMARC Нет. Расширение RUSMARC Учитывая возможные изменения формата RUSMARC в процессе его
развития, перечень значений для индикаторов полей данных расширен: допустимо использование цифр, букв латинского алфавита в верхнем и нижнем регистре, символа « » (пробел) и символа «|» (вертикальная черта). Данное расширение не противоречит стандарту ISO 2709.
11
Тип fieldType Тип fieldType описывает структуру полей данных. Содержимое Элементы subfield. Ограничения Необходимо наличие по крайней мере одного элемента subfield. Атрибуты tag – метка (код) поля.
Обязательный. Тип: fieldTag.
i1 – индикатор 1. Обязательный. Тип: indicatorType.
i2 – индикатор 2. Обязательный. Тип: indicatorType.
id, idref – см. «Общие атрибуты». Сужение ISO 2709 Нет Расширение ISO 2709 Атрибуты id, idref. Сужение RUSMARC Нет. Расширение RUSMARC Нет.
Элемент field Элемент field соответствует полям данных стандарта ISO 2709. Назначение Контейнер для поля данных. Родительский элемент record, built-in Обязательность Не обязательный. Повторяемость Повторяется. Тип fieldType
Аналог MARC 21 XML Schema datafield
Тип built-inType Тип built-inType описывает структуру полей, имеющих встроенные поля. Содержимое Элементы control, field. Ограничения Необходимо наличие по крайней мере одного из элементов control или
field. Атрибуты tag – метка (код) поля.
Обязательный. Тип: fieldTag.
i1 – индикатор 1. Обязательный. Тип: indicatorType.
i2 – индикатор 2. Обязательный. Тип: indicatorType.
id, idref – см. «Общие атрибуты». Сужение ISO 2709 В ISO 2709 отсутствует Расширение ISO 2709 В ISO 2709 отсутствует Сужение RUSMARC Нет. Расширение RUSMARC Нет.
12
Элемент built-in Элемент built-in соответствует полям формата RUSMARC, имеющим встроенные поля. Назначение Контейнер для поля данных. Родительский элемент record
Обязательность Не обязательный. Повторяемость Повторяется. Тип Built-inType
Аналог MARC 21 XML Schema Нет.
Тип recordType Тип recordType описывает структуру записи. Содержимое Элементы leader, control, field, built-in. Ограничения • Элемент leader является обязательным для каждого элемента
record. • Элемент leader не повторяется и предшествует всем остальным
элементам. • Элемент control является обязательным и не может следовать за
элементами field или built-in. Атрибуты type – тип формата.
Не обязательный. Возможные значения: • Bibliographic - библиографический; • Authority - авторитетный; • Holdings - зарезервировано; • Classification - зарезервировано; • Community - зарезервировано.
format – диалект. Не обязательный. Возможные значения (перечень может быть расширен): • MARC21; • RUSMARC; • UNIMARC.
id, idref – см. «Общие атрибуты». Сужение ISO 2709 Нет. Расширение ISO 2709 Атрибуты type, format, id, idref.
Элемент built-in. Сужение RUSMARC Нет. Расширение RUSMARC Нет.
Элемент record Элемент record соответствует библиографической записи стандарта ISO 2709. Назначение Контейнер для единичной записи. Родительский элемент collection Обязательность Обязательный. Повторяемость Повторяется. Тип recordType Аналог MARC 21 XML Schema record
13
Элемент collection Элемент record соответствует группе библиографических записей в стандарте ISO 2709. Назначение Корневой элемент документа.
Контейнер для неограниченного набора записей. Обязательность Обязательный. Повторяемость Не повторяется. Родительский элемент Нет. Аналог MARC 21 XML Schema collection
Общие атрибуты Для всех элементов, кроме collection и leader введены атрибуты id и idref, предназначенные для идентификации элементов внутри документа и организации перекрестных связей между ними.
Атрибут id – уникальный идентификатор элемента внутри XML-документа. В соответствии со спецификацией языка XML, значением этого атрибута является строка символов, состоящая из букв, цифр и символов «_» (подчеркивание), «:» (двоеточие), «.» (точка), «-» (дефис). Первым символом обязательно должна быть буква, символ «_» (подчеркивание) или символ «:» (двоеточие).
Атрибут idref – ссылка на элемент внутри XML-документа. Значением этого атрибута является значение атрибута id того элемента, на который устанавливается ссылка.
Разметка записи Запись
Запись открывается тэгом <record> с опциональными атрибутами type и format, указывающими тип и диалект формата, и закрывается тэгом </record>.
Пример: <record type=”Bibliographic” format=”RUSMARC”> . . .
</record>
Маркер записи
Маркер записи открывается тэгом <leader> и закрывается тэгом </leader>.
Пример: <leader>00584nam2#2200181#i#450#</leader>
Справочные (контрольные) поля
Справочное (контрольное) поле открывается тэгом <control> с атрибутом tag, задающим код поля, и закрывается тэгом </control>.
Пример поля 001: <control tag=”001”>RU/NLR/bibl/31527</control>
Поля данных
Поле данных открывается тэгом <field> с атрибутом tag, задающим код поля, и закрывается тэгом </field>. Значения индикаторов указываются в атрибутах i1 и i2. Подполе открывается тэгом <subfield> с атрибутом code, задающим код подполя, и закрывается тэгом </subfield>.
Пример поля 200:
14
<field tag="200" i1="1" i2="#"> <subfield code="a">Красное колесо</subfield> <subfield code="e">Повествованье в отмер. сроках</subfield> <subfield code="h">Узел 4</subfield> <subfield code="i">Апрель семнадцатого [(12 апр.-5 мая)</subfield> <subfield code="i">Гл. 92-186]</subfield> <subfield code="a">На обрыве повествования</subfield> <subfield code="h">[Узлы 5-20]</subfield> </field>
Поля, имеющие встроенные поля
Поле, имеющее встроенные поля открывается тэгом <built-in> с атрибутом tag, задающим код поля, и закрывается тэгом </built-in>. Значения индикаторов указываются в атрибутах i1 и i2. Встроенные поля размечаются как справочные (контрольные) поля и/или поля данных.
Пример поля 461: <built-in tag="461" i1="#" i2="0"> <control tag="001">RU\NLR\bibl\2580</control> <field tag="200" i1="1" i2="#"> <subfield code="a">Собрание сочинений</subfield> <subfield code="f">Александр Солженицын</subfield> <subfield code="v">Т. 20</subfield> </field> <field tag="700" i1="#" i2="1"> <subfield code="a">Солженицын</subfield> <subfield code="b">А. И.</subfield> <subfield code="f">1918- </subfield> <subfield code="g">Александр Исаевич</subfield> <subfield code="3">RU\NLR\indavt\230</subfield> </field> </built-in>
Данные, неконвертируемые из исходного формата
Данные, неконвертируемые из исходного формата, могут быть помещены в подполе $b поля 886 в той разметке, в которой они представлены в исходной записи (ISO 2709, XML и пр.).
Примеры поля 886: <field tag="886" i1="2" i2="#"> <subfield code="2">usmarc</subfield> <subfield code="a">010</subfield> <subfield code="b">##$agb 89039974</subfield> </field>
Если исходная запись была представлена в виде XML-документа (например, MARC 21 XML), То поле 886 будет выглядеть следующим образом:
<field tag="886" i1="2" i2="#"> <subfield code="2">usmarc</subfield> <subfield code="a">010</subfield> <subfield code="b"> <datafield tag=”010” ind1=" " ind2=" "> <subfield code="a">gb 89039974</subfield> </datafield> </subfield> </field>
Полный пример <collection> <record type="Bibliographic" format="RUSMARC">
15
<leader>00584nam2#2200181#i#450#</leader> <control tag="001">RU\NLR\bibl\2464</control> <control tag="005">19990702164148.0</control> <field tag="100" i1="#" i2="#"> <subfield code="a">19980706d1991####u##y0rusy0102####ca</subfield> </field> <field tag="101" i1="0" i2="#"> <subfield code="a">rus</subfield> </field> <field tag="102" i1="#" i2="#"> <subfield code="a">US</subfield> <subfield code="a">FR</subfield> </field> <field tag="105" i1="#" i2="#"> <subfield code="a">y###z###00|a|</subfield> </field> <field tag="200" i1="1" i2="#"> <subfield code="a">Красное колесо</subfield> <subfield code="e">Повествованье в отмер. сроках</subfield> <subfield code="h">Узел 4</subfield> <subfield code="i">Апрель семнадцатого [(12 апр.-5 мая)</subfield> <subfield code="i">Гл. 92-186]</subfield> <subfield code="a">На обрыве повествования</subfield> <subfield code="h">[Узлы 5-20]</subfield> </field> <field tag="210" i1="#" i2="#"> <subfield code="d">1991</subfield> </field> <field tag="215" i1="#" i2="#"> <subfield code="a">564, [1], 136 с.</subfield> </field> <built-in tag="461" i1="#" i2="0"> <control tag="001">RU\NLR\bibl\2580</control> <field tag="200" i1="1" i2="#"> <subfield code="a">Собрание сочинений</subfield> <subfield code="f">Александр Солженицын</subfield> <subfield code="v">Т. 20</subfield> </field> <field tag="700" i1="#" i2="1"> <subfield code="a">Солженицын</subfield> <subfield code="b">А. И.</subfield> <subfield code="f">1918- </subfield> <subfield code="g">Александр Исаевич</subfield> <subfield code="3">RU\NLR\indavt\230</subfield> </field> </built-in> <field tag="801" i1="#" i2="0"> <subfield code="a">RU</subfield> <subfield code="b">NLR</subfield> <subfield code="c">19980702</subfield> <subfield code="g">PSBO</subfield> </field> <field tag="899" i1="#" i2="#"> <subfield code="a">NLR</subfield> <subfield code="j">97-5/2495</subfield> </field> </record> </collection>
16
Техническое описание
Elements Complex types Simple types
collection built-inType controlTag
record controlType fieldTag
fieldType indicatorType
recordType leaderType
subfieldType notEmptyString
subfieldIdentifier
element collection
diagram
children record
source <xs:element name="collection"> <xs:complexType> <xs:sequence> <xs:element ref="record" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element>
element record
diagram
type recordType
children leader control field built-in
used by element collection
attributes Name Type Use Default Fixed Annotation
type xs:string optional
format xs:string optional
source <xs:element name="record" type="recordType"/>
17
complexType built-inType
diagram
children control field
used by element recordType/built-in
attributes Name Type Use Default Fixed Annotation
tag fieldTag required
i1 indicatorType required
i2 indicatorType required
id xs:ID optional
idref xs:IDREF optional
source <xs:complexType name="built-inType"> <xs:choice maxOccurs="unbounded"> <xs:element name="control" type="controlType"/> <xs:element name="field" type="fieldType"/> </xs:choice> <xs:attribute name="tag" type="fieldTag" use="required"/> <xs:attribute name="i1" type="indicatorType" use="required"/> <xs:attribute name="i2" type="indicatorType" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType>
element built-inType/control
diagram
type controlType
facets minLength 1
attributes Name Type Use Default Fixed Annotation
tag controlTag required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="control" type="controlType"/>
18
element built-inType/field
diagram
type fieldType
children subfield
attributes Name Type Use Default Fixed Annotation
tag fieldTag required
i1 indicatorType required
i2 indicatorType required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="field" type="fieldType"/>
complexType controlType
diagram
type extension of notEmptyString
used by elements recordType/control built-inType/control
facets minLength 1
attributes Name Type Use Default Fixed Annotation
tag controlTag required
id xs:ID optional
idref xs:IDREF optional
source <xs:complexType name="controlType"> <xs:simpleContent> <xs:extension base="notEmptyString"> <xs:attribute name="tag" type="controlTag" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType>
19
complexType fieldType
diagram
children subfield
used by elements recordType/field built-inType/field
attributes Name Type Use Default Fixed Annotation
tag fieldTag required
i1 indicatorType required
i2 indicatorType required
id xs:ID optional
idref xs:IDREF optional
source <xs:complexType name="fieldType"> <xs:sequence> <xs:element name="subfield" type="subfieldType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="tag" type="fieldTag" use="required"/> <xs:attribute name="i1" type="indicatorType" use="required"/> <xs:attribute name="i2" type="indicatorType" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType>
element fieldType/subfield
diagram
type subfieldType
attributes Name Type Use Default Fixed Annotation
code subfieldIdentifier
required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="subfield" type="subfieldType" maxOccurs="unbounded"/>
20
complexType recordType
diagram
children leader control field built-in
used by element record
attributes Name Type Use Default Fixed Annotation
type xs:string optional
format xs:string optional
source <xs:complexType name="recordType"> <xs:sequence> <xs:element name="leader" type="leaderType"/> <xs:element name="control" type="controlType" maxOccurs="unbounded"/> <xs:choice maxOccurs="unbounded"> <xs:element name="field" type="fieldType"/> <xs:element name="built-in" type="built-inType"/> </xs:choice> </xs:sequence> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Bibliographic"/> <xs:enumeration value="Authority"/> <xs:enumeration value="Holdings"/> <xs:enumeration value="Classification"/> <xs:enumeration value="Community"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="format" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="UNIMARC"/> <xs:enumeration value="RUSMARC"/> <xs:enumeration value="MARC21"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType>
element recordType/leader
diagram
type leaderType
facets pattern \d{5}[ 0-9A-Za-z]{5}22\d{5}[ 0-9A-Za-z]{3}450[ 0-9A-Za-z]
source <xs:element name="leader" type="leaderType"/>
21
element recordType/control
diagram
type controlType
facets minLength 1
attributes Name Type Use Default Fixed Annotation
tag controlTag required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="control" type="controlType" maxOccurs="unbounded"/>
element recordType/field
diagram
type fieldType
children subfield
attributes Name Type Use Default Fixed Annotation
tag fieldTag required
i1 indicatorType required
i2 indicatorType required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="field" type="fieldType"/>
element recordType/built-in
diagram
type built-inType
children control field
attributes Name Type Use Default Fixed Annotation
tag fieldTag required
i1 indicatorType required
i2 indicatorType required
id xs:ID optional
idref xs:IDREF optional
source <xs:element name="built-in" type="built-inType"/>
22
complexType subfieldType
diagram
used by element fieldType/subfield
attributes Name Type Use Default Fixed Annotation
code subfieldIdentifier
required
id xs:ID optional
idref xs:IDREF optional
source <xs:complexType name="subfieldType" mixed="true"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:any processContents="lax"/> </xs:sequence> <xs:attribute name="code" type="subfieldIdentifier" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType>
simpleType controlTag
type restriction of xs:string
used by attribute controlType/@tag
facets pattern 00[1-9a-zA-Z]
source <xs:simpleType name="controlTag"> <xs:restriction base="xs:string"> <xs:pattern value="00[1-9a-zA-Z]"/> </xs:restriction> </xs:simpleType>
simpleType fieldTag
type restriction of xs:string
used by attributes fieldType/@tag built-inType/@tag
facets pattern (0[1-9][0-9])|([1-9][0-9]{2})
source <xs:simpleType name="fieldTag"> <xs:restriction base="xs:string"> <xs:pattern value="(0[1-9][0-9])|([1-9][0-9]{2})"/> </xs:restriction> </xs:simpleType>
simpleType indicatorType
type restriction of xs:string
used by attributes fieldType/@i1 built-inType/@i1 fieldType/@i2 built-inType/@i2
facets whiteSpace preserve
pattern [\da-z \|]
source <xs:simpleType name="indicatorType"> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> <xs:pattern value="[\da-z \|]"/> </xs:restriction> </xs:simpleType>
23
simpleType leaderType
type restriction of xs:string
used by element recordType/leader
facets pattern \d{5}[ 0-9A-Za-z]{5}22\d{5}[ 0-9A-Za-z]{3}450[ 0-9A-Za-z]
source <xs:simpleType name="leaderType"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}[ 0-9A-Za-z]{5}22\d{5}[ 0-9A-Za-z]{3}450[ 0-9A-Za-z]"/> </xs:restriction> </xs:simpleType>
simpleType notEmptyString
type restriction of xs:string
used by complexType controlType
facets minLength 1
source <xs:simpleType name="notEmptyString"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType>
simpleType subfieldIdentifier
type restriction of xs:string
used by attribute subfieldType/@code
facets pattern [\da-zA-Z]
source <xs:simpleType name="subfieldIdentifier"> <xs:restriction base="xs:string"> <xs:pattern value="[\da-zA-Z]"/> </xs:restriction> </xs:simpleType>
24
XML-схема <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="collection"> <xs:complexType> <xs:sequence> <xs:element ref="record" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="record" type="recordType"/> <xs:complexType name="recordType"> <xs:sequence> <xs:element name="leader" type="leaderType"/> <xs:element name="control" type="controlType" maxOccurs="unbounded"/> <xs:choice maxOccurs="unbounded"> <xs:element name="field" type="fieldType"/> <xs:element name="built-in" type="built-inType"/> </xs:choice> </xs:sequence> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Bibliographic"/> <xs:enumeration value="Authority"/> <xs:enumeration value="Holdings"/> <xs:enumeration value="Classification"/> <xs:enumeration value="Community"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="format" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="UNIMARC"/> <xs:enumeration value="RUSMARC"/> <xs:enumeration value="MARC21"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:simpleType name="notEmptyString"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="leaderType"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}[ 0-9A-Za-z]{5}22\d{5}[ 0-9A-Za-z]{3}450[ 0-9A-Za-z]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="controlTag"> <xs:restriction base="xs:string"> <xs:pattern value="00[1-9a-zA-Z]"/> </xs:restriction> </xs:simpleType> <xs:complexType name="controlType"> <xs:simpleContent> <xs:extension base="notEmptyString"> <xs:attribute name="tag" type="controlTag" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/>
25
<xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:simpleType name="fieldTag"> <xs:restriction base="xs:string"> <xs:pattern value="(0[1-9][0-9])|([1-9][0-9]{2})"/> </xs:restriction> </xs:simpleType> <xs:complexType name="fieldType"> <xs:sequence> <xs:element name="subfield" type="subfieldType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="tag" type="fieldTag" use="required"/> <xs:attribute name="i1" type="indicatorType" use="required"/> <xs:attribute name="i2" type="indicatorType" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType> <xs:simpleType name="indicatorType"> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> <xs:pattern value="[\da-z \|]"/> </xs:restriction> </xs:simpleType> <xs:complexType name="built-inType"> <xs:choice maxOccurs="unbounded"> <xs:element name="control" type="controlType"/> <xs:element name="field" type="fieldType"/> </xs:choice> <xs:attribute name="tag" type="fieldTag" use="required"/> <xs:attribute name="i1" type="indicatorType" use="required"/> <xs:attribute name="i2" type="indicatorType" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType> <xs:simpleType name="subfieldIdentifier"> <xs:restriction base="xs:string"> <xs:pattern value="[\da-zA-Z]"/> </xs:restriction> </xs:simpleType> <xs:complexType name="subfieldType" mixed="true"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:any processContents="lax"/> </xs:sequence> <xs:attribute name="code" type="subfieldIdentifier" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute name="idref" type="xs:IDREF" use="optional"/> </xs:complexType> </xs:schema>
26
Стандарты и спецификации • ГОСТ 7.14-98 (ИСО 2709-96).Система стандартов по информации, библиотечному
и издательскому делу. Формат для обмена информацией. Структура записи: Межгос. стандарт / Межгос. совет по стандартизации, метрологии и сертификации. - Взамен ГОСТ 7.14-84; Введ. 01.06.99. - Минск: Изд-во стандартов, 1999. - 7 с. -Группа Т62.
• Российский коммуникативный формат представления библиографических записей в машиночитаемой форме (российская версия UNIMARC). URL: http://www.rba.ru:8101/rusmarc/.
• Extensible Markup Language (XML) 1.0 (Second Edition). W3C Recommendation 6 October 2000. URL: http://www.w3.org/TR/REC-xml.
• XML Schema Part 1: Structures. W3C Recommendation 2 May 2001. URL: http://www.w3.org/TR/xmlschema-1/.
• XML Schema Part 2: Datatypes. W3C Recommendation 02 May 2001. URL: http://www.w3.org/TR/xmlschema-2/.
27