Описание структуры документа DTD 
";


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Описание структуры документа DTD



 

Для описания информационных объектов как общего, так и контекстного типов используются шаблоны (templates).

Различают три вида шаблонов: простой, шаблон последовательности и шаблон альтернатив.

Шаблоны используются при создании логической структуры БД конкретного ИЭТР следующим образом:

- простой шаблон указывает, что при создании БД должен быть создан отдельный объект с заданными атрибутами и связями;

- шаблон последовательности указывает, что при создании структуры БД должно быть создано несколько объектов, связанных в указанной последовательности;

- шаблон альтернатив указывает, что в структуре базы данных, используемой для разработки ИЭТР, создается несколько объектов в соответствии со списком, указанным в шаблоне.

Описание шаблона языком SGML аналогично описанию шаблона языком XML.

Пример простого шаблона на языке SGML:

 

<!ELEMENT NODE - - (version*, link*, (NODE | NODE-ALTS |

NODE-SEQ | %primitive;)*) >

<!ENTITY % a.node

"id ID #IMPLIED

Name CDATA #IMPLIED

Type CDATA #IMPLIED

Itemid CDATA #IMPLIED

Cdm NAME #FIXED 'node'

Ref IDREF #CONREF

Version IDREF #IMPLIED”>

 

Здесь:

<!ELEMENT NODE - - - объявляется (декларируется) составной объект;

NODE - раздел «содержание», представляющий собой составной информационный объект и который может включать в себя другие объекты, которые в свою очередь должны соответствовать простому шаблону NODE, шаблону альтернатив NODE-ALTS или шаблону последовательности NODE-SEQ, или могут представлять собой примитивы %primitive;

version - объект, который сравнивает данные с вариантами конфигурации изделия;

link - объект, который задает перечень ссылок на объекты, связанные по смыслу;

a.node – макрос, описывающий обязательные атрибуты соответствующего объекта (id - уникальный идентификатор объекта. Используется для организации ссылок; Name - название раздела документа, содержащегося в данном объекте; Itemid - обозначение изделия, к которому относится данный раздел; Ref - атрибут, используемый для исключения дублирования информации; Type - тип объекта; Cdm - атрибут, указывающий, что объект относится к простому шаблону; Version - ссылка на объект version. Указывает, к какой версии относится данный объект).

В объявлении могут присутствовать индикаторы:

“?” - объект может присутствовать, либо нет (0 или 1),

“*” - объект может присутствовать неограниченное число раз подряд, но может и не присутствовать вовсе (≥0),

“+” - объект должен присутствовать, по крайней мере, один раз (≥1).

Объект может иметь ключевые слова: #PCDATA, ANY и EMPTY.

#PCDATA означает, что объект может содержать произвольные текстовые данные, например: <!ELEMENT title - - (#PCDATA)>

ANY означает, что объект может содержать произвольные данные, например: <!ELEMENT version - - ANY>

EMPTY означает, что объект не должен содержать другие объекты, например: <!ELEMENT br- О EMPTY>

Объекты могут иметь атрибуты, которые могут иметь один из приведенных ниже форматов:

a) NAME - значение атрибута может состоять из букв, цифр, символов “-” и “.”;

с) NMTOKEN - значение атрибута может состоять только из букв и цифр;

c) NUMBER - значение атрибута может состоять из цифр;

d) NUTOKEN - значение атрибута может состоять из букв и цифр, но должно начинаться с цифры;

e) CDATA - значением атрибута могут быть произвольные символьные данные;

f) ID - значением атрибута является уникальный идентификатор данного объекта, состоящий из букв и цифр;

g) IDREF - значением атрибута должен являться идентификатор какого-то другого объекта;

h) Список возможных значений - в скобках через символ “|” перечисляется список возможных значений для данного атрибута.

Кроме того атрибуты могут быть обязательными или необязательными и иметь значения по умолчанию:

а) #REQUIRED - атрибут является обязательным для данного объекта;

б) #IMPLIED - атрибут может отсутствовать;

c) #CURRENT - если значение атрибута не указано, значение будет таким же, как и у аналогичного атрибута последнего обработанного объекта того же типа;

d) #CONREF - в случае, если указано значение для данного атрибута, модель содержимого будет интерпретироваться как EMPTY.

e) любое значение из списка - в случае, если тип документа задан списком возможных значений.

В DTD могут использоваться макроподстановки, в этом случае после ключевого слова ENTITY указывается знак процента, например:

 

<!ENTITY % название объекта «значение объекта»>

 

В рассмотренном примере отсутствует, но в DTD можно с помощью макроса formula описывать формулы:

 

<!ENTITY % formula “#PCDATA | f | sup | sub | heap | frac | sqrt | square | power | root | fence| integral | plex | matrix

 

Объект «формула» объявляется с использованием указанной макроподстановки следующим образом:

 

<!ELEMENT f - - (%formula;)+>

<!ATTLIST f %a.node;>

 

Каждый объект общего типа относится к какому-либо шаблону (простому, шаблону последовательности или шаблону альтернатив). К объектам общего типа (примитивам) могут быть применены различные спецификации стиля, соответствующие CSS.

 

Информационные объекты (примитивы) общего типа предназначены для хранения текстовой, графической, аудио- и видеоинформации. Примитивы общего типа делятся на три группы:

- служебные объекты,

- визуализируемые объекты,

- объекты диалога.

 

1) К служебным (не визуализируемым) объектам относятся link (ссылка) и version (версия). Объект link позволяет пользователю осуществлять навигацию по базе данных, двигаясь по сети возможных переходов от раздела к разделу. Объект version (версия) используется для обозначения вариантов конфигурации или версий изделия. Объект version используется только на этапе разработки ИЭТР. При публикации конкретного ИЭТР выбирается и переносится в БД ИЭТР только та версия, которая актуальна для данного заказчика.

Пример декларации (объявления) ссылки в DTD документе:

 

<!ELEMENT link - - (#PCDATA) >

<!ATTLIST link %a.node; xref IDREF #REQUIRED>

 

Пример применения ссылки в документе SGML (см. рис.2):

 

<text id=34 name= ”Инструкция по...” >

<link xref=278> Переход на техническое описание </link>

<link xref=279> Переход на диагностику неисправностей </link>

 

Инструкция по эксплуатации.........

 

</text>

.........

<techdesc id=278> Техническое описание...... </techdesc>

< faults id=279> Диагностика неисправностей...... </faults>

.........

 

В примерах атрибутxref указывает на целевой объект ссылки, то есть на объект, который будет представлен пользователю, активизировавшему данную ссылку. Текстовые данные (#PCDATA), включенные в модель содержания, представляют собой необязательное текстовое описание данной ссылки.

 

2) Визуализируемые объекты предназначены для составления параграфа ИЭТР - основной смысловой единицы технических данных, представляющей собой линейный гипертекстовый документ.

Параграф ИЭТР представляет собой произвольный набор объектов - примитивов (primitive).

Декларация объекта para, соответствующего простому шаблону, описывается в терминах языка SGML следующим образом:

 

<!ELEMENT para - - (version*,link*,(%primitive)+)>

<!ATTLIST para %a.node;>

 

Пример декларации примитивов в DTD документе приведены ниже:

 

<!ENTITY % text “text | text-alts” >

<!ENTITY % list “list | list-alts” >

<!ENTITY % table “table | table-alts” >

<!ENTITY % graphic “graphic | graphic-alts” >

<!ENTITY % grphprim “grphprim | grphprim-alts”>

<!ENTITY % f “f | f-alts” >

<! ENTITY % audio “audio | audio-alts” >

<! ENTITY % video “video | video-alts” >

<!ENTITY % process “process | process-alts ” > <!-- объект диалога-->

<!ENTITY % dialog “dialog | dialog-alts” ><!-- объект диалога-->

<!ENTITY % object “object | object-alts” >

<!ENTITY % primitive “%text; | %list; | %table; | %graphic; | %f; | %audio;

| %video; | %proces; | %dialog; | %object;” >

 

На экране ЭСО, приведенном на рисунке 7, примитивы, составляющие параграф, отображаются последовательно, в соответствии с указанным порядком и спецификацией стиля.

Кроме того, для поддержки вариантов конфигурации и версий вводится объект para-alts (альтернативный параграф). Каждый альтернативный параграф относится к определенной версии ИЭТР, и только один попадает в ИЭТР для конкретного заказчика.

Пример декларации альтернативного параграфа в DTD документе приведен ниже:

 

<!ELEMENT para-alts - - (para+)>

<!ATTLIST para-alts %a.node-alts;>

 

В представленной выше декларации примитивов в DTD документе приведён перечень примитивов (объектов):

- текстовая информация (text);

- список объектов, каждый из которых может быть примитивом различного типа (list);

- таблица (table);

- графические изображения (graphic) и (grphprim);

- аудиозапись (audio);

- видеозапись (video)

- обращение к внешнему программному процессу с передачей установленных параметров (process) – он относится к объектам диалога;

- интерактивный диалог с пользователем (dialog) – это объект диалога;

- 3D модель (object).

 

 

Рисунок 7 - Отображение параграфа при помощи ЭСО

 

Декларация примитивов в DTD документе:

 

<!ELEMENT text - - (link*,(#PCDATA))>

<!ATTLIST text %a.node;>

<!ELEMENT list - - (link*,(listitem)+)> <!-- список list представляется в виде перечня объектов listitem, каждый из которых может быть примитивом различного типа -->

<!ATTLIST list %a.node;>

<ELEMENT listitem - - (link*,(%primitive)+)> <!-- Каждый объект listitem из списка может содержать произвольное число примитивов различного типа (%primitive)+ -->

<!ELEMENT table - - (link*,caption?,trow+)> <!-- caption – заготовок, trow+ -строки -->

<!ATTLIST table %a.node;>

<!ELEMENT caption - - (text)> <!-- заготовок таблицы содержит текстовые данные -->

<!ATTLIST caption ID #IMPLIED>

<!ELEMENT trow - - (thead | tdata)+> <!-- строка таблицы является либо заголовком - thead, либо данными - tdata -->

<!ATTLIST trowd ID #IMPLIED>

<!ELEMENT (thead | tdata) - - (%primitive)+> <!-- ячейки таблицы (заголовок или данные) содержат примитивы произвольного типа -->

<!ATTLIST (thead | tdata)

id ID #IMPLIED

colspan NUMBER #IMPLIED <!-- число столбцов, которое занимает ячейка -->

rowspan NUMBER #IMPLIED> <!-- число строк, которое занимает ячейка -->

<!ELEMENT graphic - - (link*, grphprim +)> <!-- ссылка на графический приметив -->

<!ATTLIST graphic %a.node;>

<!ELEMENT grphprim -- (link*,#PCDATA)> <!-- текстовое описание граф. примитива -->

<!ATTLIST grphprim %a.node;

x-location NUMBER #IMPLIED <!-- размещение графического приметива -->

y-location NUMBER #IMPLIED

source NUMBER #REQUIRED>

<!ELEMENT audio - - (#PCDATA) > <!-- текстовое описание аудио примитива -->

<!ATTLIST audio %a.node;

source ENTITY #REQUIRED

start (manual | auto) ‘auto’+ <!-- метод воспроизведения -->

play (loop | once) ‘loop’> <!-- количество воспроизведений -->

<!ELEMENT video - - (#PCDATA) > <!-- текстовое описание видео примитива -->

<!ATTLIST video %a.node;

source ENTITY #REQUIRED

start (manual | auto) ‘auto’

play (loop | once) ‘loop’>

<!ELEMENT process - - (link*,parameter*) > <!-- обращение к внешнему программному процессу с передачей установленных параметров -->

<!ATTLIST process %a.node;

source ENTITY #REQUIRED >

<!ELEMENT parameter - - (#PCDATA) > <!-- текстовое описание параметра -->

<!ATTLIST parameter %a.node;

source IDREF #REQUIRED >

<!ENTITY % form “button | choice | radio | input | check | selection” > <!-- form - совокупность объектов диалогового взаимодействия -->

<!ELEMENT dialog - - ((%primitive; | % form;)+,process*) >

<!ATTLIST dialog %a.node;>

<!ELEMENT object - - (link*, #PCDATA) > <!-- текстовое описание объекта -->

<!ATTLIST object %a.node;

source ENTITY #REQUIRED >

 

<!-- далее идёт описание кнопки (button), поля со списком (choice), переключателя (radio), поле ввода текстовых данных (input), флажок для установки значений (check), список значений (selection) -->

 

<!ELEMENT button - - (grphprim?, #PCDATA)> <!ATTLIST button %a.node; target IDREF #IMPLIED> <!-- target определяет объект, на который будет осуществлен переход по нажатию этой кнопки -->
<!ELEMENT choice - - (item+)> <!ATTLIST choice %a.node; default NUMBER #IMPLIED target IDREF #IMPLIED> <!ELEMENT item - - (#PCDATA)> <!-- объекты item, определяют перечень возможных значений -->
<!ELEMENT radio - - (item+)> <ATTLIST radio %a.node; default NUMBER #IMPLIED>
<!ELEMENT input - - (#PCDATA)> <ATTLIST input %a.node;>
<!ELEMENT check - - (#PCDATA)> <!ATTLIST check %a.node;>
<!ELEMENT selection - - (item+)> <!ATTLIST selection %a.node;>

 

Для поддержки версионности вводятся альтернативные объекты для всех примитивов:

 

<!ELEMENT text-alts - - (text+)>»

<!ATTLIST text-alts %a.node-alts;>

<!ELEMENT list-alts - - (list)+>

<ATTLIST list-alts %a.node-alts;>

<!ELEMENT (table-alts - - (table)+>

<!ATTLIST table-alts %a.node-alts;>

<!ELEMENT graphic-alts - - (graphic)+>

<!ATTLIST graphic-alts %a.node-alts;>

<!ELEMENT grphprim-alts - - (grphprim+)>

<!ATTLIST grphprim-alts %a.node-alts;>

<!ELEMENT audio-alts - - (audio)+>

<!ATTLIST audio-alts %a.node-alts;>

<!ELEMENT video-alts - - (video)+>

<!ATTLIST video-alts %a.node-alts;>

<!ELEMENT process-alts - - (process)+>

<!ATTLIST process-alts %a.node-alts;>

<!ELEMENT object-alts - - (object)+>

<!ATTLIST object-alts %a.node-alts;>

<ELEMENT dialog-alts - - (dialog)+>

<!ATTLIST dialog-alts %a.node-alts;>

Простейший примериспользования текста в документе SGML:

 

<text> Корпуса всех блоков и экранирующие оплетки жгутов должны быть заземлены. </text>

 

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

В приведённом выше примере такими примитивами являются: process, dialog.

 

Пример использования диалогов

 

Рассмотрим в качестве примера диалог (рисунок 8), в ходе которого у пользователя запрашиваются параметры неисправности и, в зависимости от указанных параметров, отображаются соответствующие разделы ИЭТР. Например, для идентификации неисправности необходимо запросить у пользователя информацию о проведении самотестирования агрегата, информацию о данных на индикаторе и напряжении на контактах ФП-3. Совокупность запрашиваемых данных можно представить в виде диалога следующего вида:

 

 

Рисунок 8 - Пример диалога с управляющими объектами

 

Данный диалог можно ввести в базу данных при помощи описанных выше объектов общего типа. В терминах SGML изображенный выше диалог будет записан следующим образом:

 

<!ENTITY helmet SYSTEM “data/helmet.jpg”>

<!ENTITY OK SYSTEM “data/OK.jpg” >

<!ENTITY faultdiags SYSTEM “bin/diags.exe” >

............................

<dialog>

<grphprim source= helmet > </grphprim>

<tехt> Параметры неисправности </tехt>

<check id= El Самотестирование агрегата выполнено</check>

<text> На индикаторе: </text>

</radio id=E2>

<item> NO SIGNAL </item>

<item> OVERFLOW </item>

<item> DATA LOST </item>

<item> ---------- </item>

<item> NORMAL </item>

</radio>

<text> Напряжение на контактах ФП-3 </text>

<choice id= E3 >

<item> 0 Вольт </item>

<item> 30 Вольт </item>

<item> 60 Вольт </item>

</choice>

<button target= analisation >

<grphprim source= OK > </grphprim>

Отобразить раздел

</button>

<process id= analisation source:= faultdiags >

<link xref= toSwitch> </link>

<link xref= toLocation> </link>

<link xref= toNoSignal> </link>

<parameter source=Е1> Диагностика </parameter>

<parameter source=Е2> Индикатор </parameter>

<parameter source=ЕЗ> Напряжение </parameter>

</process>

</dialog>

 

Заметим, что в базе данных должны присутствовать разделы с идентификаторами toSwitch, toLocation, toNoSignal, которые (по смыслу) должны описывать методы устранения неисправностей при заданных параметрах. Объект process должен, в зависимости от параметров, указанных пользователем, осуществлять переход на один из этих разделов.

Данный диалог можно более наглядно представить в виде схемы, представленной на рисунке 9.

Описанные выше декларации объектов общего типа составляют в совокупности DTD общего типа.

 

 

Рисунок 9 - Схема диалога

 

Выводы:

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

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

Техническое руководство подготавливается в автоматизированной системе композиции;

Техническое руководство включает в себя всю информацию, относящуюся к области применения технического руководства;

Техническое руководство спроектировано для отображения на электронном дисплее;

Элементы данных в техническом руководстве логически взаимосвязаны так, что пользователь может быстро получить доступ к нужной информации;

Техническое руководство позволяет в интерактивном режиме предоставлять справочную и описательную информацию о проведении эксплуатационных и ремонтных процедур.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-26; просмотров: 234; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.141.6 (0.004 с.)