Главная страница
Навигация по странице:

  • Таблица 2.2

  • Таблица 2.3

  • Таблица 2.4

  • Оператор количества элементов Описание Пример

  • Таблица 2.5

  • Тип атрибута Описание

  • Ключевое слово Описание Пример

  • Тип логического компонента Формат описания (пример)

  • Пример

  • Источник данных

  • МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем


    Скачать 2.76 Mb.
    НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
    Дата12.04.2023
    Размер2.76 Mb.
    Формат файлаdoc
    Имя файлаМУ_ЛР_ЛиПОАС.doc
    ТипМетодические указания
    #1057976
    страница10 из 32
    1   ...   6   7   8   9   10   11   12   13   ...   32

    2.8. Описание структуры XML-документов


    Каждый XML-документ несет информацию о данных и их структуре (описание метаданных).

    XML-документы могут быть двух типов:

    1. документы, созданные с учетом логических и структурных правил;

    2. документы, не использующие никаких правил, кроме синтаксических правил оформления XML-документов.

    Проверку документов первого типа на соответствие заданным правилам осуществляет XML-процессор. Проверка документов второго типа выполняется разработчиком.

    При создании документа первого типа описание его структуры может быть выполнено с использованием таких языков, как Document Type Definitions (DTD), XML Schema, RELAX NG, XML Data-Reduced и др. [24, 31]. Наибольшее распространение получили языки DTD и XML Schema.

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

    Язык Document Type Definitions (DTD)

    Язык Document Type Definitions (DTD) не базируется на XML. Этот язык имеет ряд ограничений в описании метаданных: не является расширяемым, не поддерживает строгое типизирование данных, ограниченно поддерживает пространства имен. Описание структуры на языке DTD постепенно вытесняется технологией XML Schema, однако до настоящего времени продолжает использоваться (иногда совместно с XML Schema).

    Приведем краткое изложение правил использования основных конструкций DTD.

    Описание структуры на языке DTD может быть включено в XMLдокумент (внутреннее подмножество) или размещено в отдельном файле, также возможен вариант смешанного описания. Во всех случаях для определения DTD необходимо использовать объявление . В табл. 2.2 приведены правила включения DTDописания в XML-документ.

    Таблица 2.2

    Правила включения DTD-описания в XML-документ

    Вариант описания структуры

    Правила записи

    Внутренне описание DTD

    ] >

    где ROOT — имя корневого элемента;

    — описание структуры на языке DTD

    Внешнее описание DTD

    где ROOT — имя корневого элемента;

    SYSTEM_ID — место расположения файла внешнего DTD.

    Например,

    где SYSTEM_ID и PUBLIC_ID — место размещения файла внешнего DTD;

    PUBLIC_ID не зависит от места размещения XML-файла

    (например, место в локальной сети);

    "SYSTEM_ID" будет использовано только в том случае, если нет доступа к "PUBLIC_ID".

    Например,

    Язык DTD позволяет описать требования к элементам и атрибутам документа. При описании элементов указываются:

    Для описания элемента используется конструкция следующего вида:

    Правила записи модели содержимого представлены в табл. 2.3.

    Таблица 2.3

    Правила записи модели содержимого

    Модель содержимого

    Описание

    Пример

    ANY

    Элемент может содержать любые дочерние элементы или текст



    EMPTY

    Элемент не может содержать дочерние элементы или текст, может иметь атрибуты



    (#PCDATA)

    Элемент может содержать только текст



    (NAME1, NAME2)

    Элемент содержит указанные дочерние элементы в указанном порядке, не может содержать текст



    (NAME1|NAME2)

    Элемент содержит один из указанных взаимоисключающих элементов, не может содержать текст



    Смешанная модель

    Элемент может содержать текст и дочерние элементы



    Name, Phone) >

    Ограничения на количество дочерних элементов задается следующим образом (табл. 2.4).

    Таблица 2.4

    Ограничения на количество дочерних элементов

    Оператор количества элементов

    Описание

    Пример

    Нет

    Допустимо использовать один экземпляр элемента



    *

    Элемент может повторяться ноль и более раз



    +

    Элемент может повторяться один и более раз



    ?

    Элемент может повторяться ноль или один раз



    Атрибуты элементов объявляются для каждого элемента, если это необходимо, с помощью объявления ATTLIST.

    При описании атрибутов указываются:

    • тип атрибута;

    • ограничения на употребление атрибута.

    Для описания атрибутов элемента используется конструкция следующего вида:

    (Значение_по_умолчанию | Ключевое_слово)

    Имя_атрибута2 Тип_атрибута (Значение_по_умолчанию | Ключевое_слово) >

    Правила описания допустимых типов атрибутов и ключевых слов приведены в табл. 2.5.

    Таблица 2.5

    Правила описания допустимых типов атрибутов и ключевых слов

    Тип атрибута

    Описание

    CDATA

    Строка символов

    ID

    Уникальное в рамках документа значение (аналог первичного ключа в базе данных), элемент не может иметь больше одного атрибута типа ID

    IDREF

    Ссылка на элемент, обладающий атрибутом ID с тем же самым значением, что и значение заданного атрибута IDREF. Используется для создания связей и перекрестных ссылок в документе. Аналог отношения «один-к-одному» в реляционной базе данных

    IDREFS

    Последовательность ссылок IDREF, разделенных пробелами. Позволяет смоделировать отношение «один-ко-многим»

    ENTITY

    Определяет имя внутренней или внешней сущности, предназначенной для повторного использования. В том числе используется для определения имени примитива, игнорируемого анализатором. Позволяет ссылаться на данные, структура которых нарушает разметку по правилам XML (в частности, использовать в XML-документах ссылки на двоичные файлы)

    ENTITIES

    Перечень значений ENTITY, разделенных пробелами

    NMTOКEN

    Имя, содержащее только символы, применяемые в именах (строка, состоящая из букв, цифр и символов «.», «-», «_», «:»). Может содержать имена других элементов или атрибутов

    NMTOКENS

    Перечень значений NMTOКEN, разделенных пробелами

    Ограничения на использование атрибутов задаются с помощью следующих ключевых слов (табл. 2.6).

    Таблица 2.6
    Ограничения на использование атрибутов

    Пример'>Ключевое слово

    Описание

    Пример

    #REQUIRED

    Обязательный атрибут

    ClientID ID #REQUIRED

    #IMPLIED

    Необязательный атрибут

    Address Region #IMPLIED

    «Значение по умолчанию»

    Если атрибут отсутствует, то анализатор принимает в качестве его значения значение, заданное по умолчанию. Если атрибут имеется, то он может принимать любое значение




    #FIXED «Значение»

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

    Клиент Тип #FIXED «ФЛ»

    В качестве примера рассмотрим XML-документ и соответствующее ему DTD-описание.




    System="CRM">

    Mary
    +7.677.444.1111

    +7.555.444.3333

    +7.666.333.2222
    Mary@qq.com

    Russia




    ClientID ID #REQUIRED

    ClientType CDATA #REQUIRED

    Class CDATA #IMPLIED

    System NMTOКEN #FIXED "CRM">
    Для описания логического компонента, многократно используемого разными XML-документами, применяются примитивы, которые задаются путем указания типа атрибута ENTITY. Примитивы могут быть внутренними (логический компонент повторно используется в одном документе) и внешними (повторно используется логический элемент из внешнего файла).

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

    XML-документ, использующий нотации, играет роль унифицирующего документа, объединяющего разнородные данные.

    Форматы описания логических компонентов XML приведены в табл. 2.7.

    Таблица 2.7
    Форматы описания логических компонентов XML

    Тип логического компонента

    Формат описания (пример)

    Внутренний примитив



    Пример

    Строка DTD

    В DTD используется примитив Система, имеющий значение 1С:Предприятие.

    Строка XML

    <Клиент ИсточникДанных="&Система;">

    В XML-документе атрибуту Источник данных тега Клиент будет

    присвоено значение 1С:Предприятие

    Внешний примитив, обрабатываемый анализатором

    Имя_примитива SYSTEM "SYS_ID"> или ENTITY Имя_примитива PUBLIC "PUBL_ID" "SYS_ID">, где " SYS_ID" — ссылка на реально существующий внешний файл (URL);

    "PUBL_ID" — идентификатор ресурса (URI), не обязательно реально существующий.

    Пример

    Строка DTD

    В DTD используется внешний примитив Описание, который определяет внешний файл C:/Discription.xml, содержащий описание клиента.

    Строка XML

    <Клиент>&Описание;

    В тег Клиент будет вставлено содержимое файла C:/Discription.xml

    Внешний примитив, игнорируемый анализатором

    Имя_примитива SYSTEM "SYSTEM_ID" NDATA Имя нотации>,

    где " SYSTEM_ID" — ссылка на реально существующий внешний файл (URL);

    Имя_нотации — имя нотации, содержащей информацию о программе-обработчике не-XML-данных.

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

    , где Т ип_данных — имя формата данных;

    SYSTEM_ID — внешняя программа-обработчик.

    Пример

    Фрагмент DTD

    image ENTITY #REQUIRED>

    Фрагмент XML





    < Book image="support" />

    В XML-документ будут вставлены соответствующие графические файлы
    1   ...   6   7   8   9   10   11   12   13   ...   32


    написать администратору сайта