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

  • Таблица 2.8

  • Таблица 2.

  • Таблица

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


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

    2.9. Язык XML Sсhema Definition (XSD)


    Язык XML Schema Definition (XSD) основан на XML и обладает более широкими возможностями описания структуры документа, чем DTD. Он поддерживает типизацию данных, пространства имен, регулярные выражения.

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

    Основным преимуществом языка XML Schema является поддержка строго типизированных данных. При обмене данными между различными приложениями и базами данных задача согласования типов данных всегда остается актуальной, поскольку в разных системах определения типов данных могут отличаться. К таким отличиям относятся: максимальное и минимальное возможные значения, наибольшая длина, поддержка дробных чисел, внутренняя кодировка и внешний формат (например, для даты и времени). Таким образом, несмотря на возможное совпадение названий типов данных, их реализация в различных продуктах может отличаться. Применение типов данных в схемах позволяет проводить необходимую верификацию данных документа при обмене или совместном использовании данных несколькими системами.

    Данные пособие не является подробным руководством по языку XML Schema, поэтому здесь мы ограничимся только базовыми сведениями о языке XSD, которые необходимы для понимания последующего материала.

    XML Schema всегда создается в отдельном файле, имеющем расширение xsd. Файл XML связывается с соответствующей схемой с помощью атрибута schemaLocation пространства имен схемы. Для того чтобы использовать атрибут schemaLocation, необходимо определить пространство имен схемы. Все эти определения указываются в корневом элементе документа XML.

    <КорневойЭлемент

    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"

    xs:schemaLocation="Схема.xsd">

    Рассмотрим основные элементы структуры XML Schema.

    Корневым элементом всегда является элемент . Описание атрибутов элемента приводится в табл. 2.8.

    Таблица 2.8 Описание атрибутов элемента

    Атрибут

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

    Описание

    elementFormDefault

    Нет

    Принимает значения «qualified» и «unqualified» (по умолчанию).

    Значение «qualified» указывет на то, что элементы документа должны уточняться префиксом пространства имен

    attributeFormDefault

    Нет

    Принимает значения «qualified» и «unqualified» (по умолчанию).

    Значение «qualified» указывет на то, что атрибуты элементов документа должны уточняться префиксом пространства имен

    xmlns: xs

    Да

    Всегда принимает значение

    xmlns: xs="http://www.w3.org/2001/XMLSchema"

    Указывает на пространство имен языка XMLSchema для элементов и типов данных схемы. При наличии префикса (в данном примере — xs) все элементы и типы данных схемы должны уточняться этим префиксом (xs: schema). Если префикс отсутствует, то атрибут xmlns указывает для схемы пространство имен по умолчанию.

    Элемент может содержать несколько атрибутов xmlns с разными префиксами, указывающими на используемые в документе пространства имен

    targetNamespace

    Нет

    Пространство имен для элементов

    XML-документа, определенных данной схемой

    version

    Нет

    Версия схемы

    xml: lang

    Нет

    Язык для всех комментариев схемы

    Корневой элемент может содержать следующие дочерние элементы:

    • — используется для определения элементов XML-документа;

    • — используется для определения атрибутов XML-документа;

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

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

    • — позволяет включать в XML-документ документацию;

    • — позволяет использовать компоненты указанной внешней схемы в основной схеме (обеспечивает модульность схем);

    • — добавляет все компоненты указанной внешней схемы в основную схему (обеспечивает модульность схем);

    • < notation> — содержит определение нотации, описывающей формат не-XML-данных в XML-документе;

    • — переопределяет компоненты внешней схемы, имеющей то же пространство имен, что и основная схема;

    • — объявляет простой тип содержимого элемента. Элементы с простым типом данных могут содержать только символьные данные и не могут включать атрибуты и дочерние элементы;

    • — объявляет сложный тип содержимого элемента, который может включать атрибуты и другие элементы.

    XML Schema поддерживает три основные категории типов данных:

    1. предопределенные примитивные типыфундаментальные типы данных, на которые можно ссылаться и применять их к элементам и атрибутам. Примерами примитивных типов данных являются

    String, Float, Double, Time, Date, Decimal, AnyURI;

    1. предопределенные производные типы — встроенные типы, полученные на основании примитивных типов. Примерами производных типов данных являются Integer, Long, Byte, Short, nonPositiveInteger, nonNegativeInteger, ID и др.;

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

    Для описания элементов и атрибутов, имеющих предопределенные (примитивные и производные) типы данных, в XML Schema используются следующие синтаксические конструкции:




    Дополнительно для элементов и атрибутов можно указать атрибуты fixed или default для задания фиксированных значений элементов/атрибутов или значений по умолчанию.



    Если необходимо описать нестандартный тип данных для элемента или атрибута, то это следует делать с помощью тега , описав в нем новый тип данных. простого типа с помощью задания дополнительных ограничений;

    • объединения (union) простых типов;

    • использования списка (list) простых типов.

    Новые нестандартные простые типы данных получают путем: сужения (restriction) встроенного или ранее определенного





    Описание нестандартного типа данных





    Пример использования нового простого типа данных, полученного путем сужения предопределенного типа (на базовый тип String накладываются ограничения на максимально и минимально допустимую длину строки):










    Пример использования нового простого типа данных, полученног о путем объединения базовых типов (элемент или атрибут могут при- нимать неотрицательные или неположительные целые значения):






    Пример использования списка простых типов (атрибут shoeSizes объявляется в качестве списка, содержащего десятичные значения 10.5, 9, 8 и 11):


























    Язык XML Schema использует различные типы ограничений на данные (см. табл. 2.6):

    • ограничения длины (количество символов);

    • границы значений (наибольшее и наименьшее значения как диапазон или порог);

    • ограничения количества цифр десятичного числа (общее количество цифр или количество цифр после запятой);

    • список допустимых значений;

    • шаблоны;

    • обработка символов пробела.

    Примеры использования различных ограничений приведены в табл. 2.9.

    Таблица 2.9
    Примеры использования ограничений

    Тип ограничения

    Теги, задающие ограничения

    Ограничения длины

    — фиксированное количество символов:














    — наибольшая длина значений определяемого типа:











    — наименьшая длина значений определяемого типа:











    Границы значений

    — максимально допустимое значение,

    — минимально допустимое значение

    (в примере допустимы целые значения в диапазоне от 5 до 10, включая 5 и 10):













    — максимально допустимое значение,

    — минимально допустимое значение

    (в примере допустимы целые значения в диапазоне от 5 до 10, исключая 5 и 10):













    Ограничения количества и типа цифр

    — общее количество цифр в определяемом числовом типе — сужении типа decimal,

    — количество цифр в дробной части числа:













    Список допустимых значений

    — элемент списка допустимых значений:















    Шаблоны


    — регулярное выражение, используемое для ограничения внешнего вида или формы значений данных:









    Обработка символов пробела

    — применяется при сужении типа string и определяет способ преобразования пробельных символов (пробел, табуляция, перевод строки).

    Используется в трех вариантах:

    1. все пробельные символы сохраняются:











    1. X ML-процессор заменяет все пробельные символы на пробелы:











    1. X ML-процессор заменяет пробельные символы пробелами, затем убирает начальные и конечные пробелы, а из нескольких подряд идущих пробелов оставляет только один:











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

    Любой простой тип данных может содержать произвольный набор ограничений, который определяется бизнес-логикой приложения, работающего с данными.

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
















    В данном примере определен нестандартный тип данных с именем «Код», базирующийся на типе «string»: он использован как тип данных для элементов «Код1» и «Код2».

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





    Описание сложного типа данных




    При описании сложного типа указываются порядок вхождения дочерних элементов (с помощью специальных тегов — индикаторов порядка, см. табл. 2.9), а также степень кардинальности повторяющихся элементов (с использованием атрибутов minOccurs и maxOccurs).

    Атрибут minOccurs определяет минимальную степень кардинальности, то есть наименьшее возможное количество повторений дочернего элемента. Значение minOccurs, равное нулю, указывает на необязательность (опциональность) элемента.

    Атрибут maxOccurs определяет максимальную степень кардинальности, или наибольшее количество повторений элемента. Максимальная и минимальная степени кардинальности задаются определенными значениями. Для maxOccurs может быть указано значение unbounded (элемент встречается любое количество раз).





















    В данном примере описан сложный тип данных для элемента «Книга», содержащего дочерние элементы «Название», «Автор», «Код», «Цена». Тег является индикатором порядка вхождения дочерних элементов (табл. 2.10), а атрибут maxOccurs показывает максимально допустимое количество повторений элемента «Автор».












    Таблица 2.10

    Теги индикатора порядка

    Тег индикатора порядка

    Описание

    sequence

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

    all

    Все дочерние элементы должны присутствовать в XML-документе. Дочерние элементы могут появляться в любом порядке, но должны встречаться только один раз. Нельзя задать значение степени кардинальности maxOccurs и minOccurs, отличное от единицы

    choice

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

    Индикатор порядка choice указывает, что элемент этого типа «Цена» может содержать либо элемент «Рубли», либо элемент «Доллары», но не оба.
    1   ...   7   8   9   10   11   12   13   14   ...   32


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