Статус документа
Статус документа

ГОСТ Р 70317-2022 (ISO/TS 19115-3:2016) Пространственные данные. Метаданные. Часть 3. Реализация XML-схемы для основных понятий

     8.3 Подход к реализации для разделения XML-пакетов

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

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

Ассоциации между классами UML могут быть смоделированы как значения атрибутов или концы ассоциаций. Подход реализации необходим в тех случаях, когда необязательный атрибут или ассоциация имеет тип свойства, который является классом из пакета, отличного от пакета, содержащего элемент. Экземпляры документов XML следует проверять с/без импорта пространства имен, которое реализует необязательный класс типа свойства. Это достигается путем использования абстрактного класса для типа значения свойства в схеме для родительского элемента (MD_Metadata на рисунке 2) и конкретной заменой этого абстрактного класса в схеме для элемента-потомка (LI_Lineage на рисунке 2), который обеспечивает фактическую реализацию класса значения свойства.

Шаблон более подробно показан на рисунке 3; реализация XML-схемы представлена в примерах 1-3. Класс MD_Metadata входит в пространство имен базы метаданных (mdb), которое импортирует абстрактный класс _Lineagelnformation из пространства имен общих классов метаданных (mcc). Пространство имен mcc включено во все классы соответствия. Конкретной реализацией класса _Lineagelnformation является класс LI_Lineage, определенный в пространстве имен метаданных о происхождении ресурса (mrl). Соответствующие экземпляры документов не должны импортировать пространство имен mrl, если они фактически не включают информацию о происхождении. Пространство имен метаданных о происхождении ресурса (mrl) не должно импортировать пространство имен базы метаданных (mdb) для проверки, что позволяет использовать его в качестве автономного модуля в другой прикладной схеме, которая может связать происхождение с каким-либо элементом модели.

Пример 1 - Ассоциация от базового класса метаданных к абстрактному типу свойства. В пространстве имен базового класса (mdb) определяется базовый элемент метаданных, который имеет необязательное свойство для различных классов деталей метаданных (см. рисунок 2). Базовый класс импортирует пространство имен, которое содержит определения совместно используемых абстрактных элементов.

Примечание - На диаграмме имена пакетов представлены префиксными именами, за которыми следует "::". Пакет информации о метаданных требует пакет информации о происхождении только в тех случаях, в которых будет заполнен экземпляр Ll_Lineage.

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

<import namespace="http://standards.iso.org/iso/19115/-3/mcc/1.0/"

=http://standards.iso.org/iso/19115/-3/mcc/1.0/schemaLocation="../../mcc/1.0/mcc.xsd"/>

<!-- элементы схемы пропущены -->

<!-- корневая сущность, которая определяет метаданные о ресурсе или ресурсах -->

<element name="MD_Metadata" substitutionGroup="gco:AbstractObject"

type="mdb:MD_Metadata_Type"/>

<!-- определение типа для корневого элемента, сложное содержимое - это

последовательность свойств -->

<complexType name="MD_Metadata_Type">