Наследование шаблонов GDL
Связь между одним шаблоном GDL и другим определяется наследованием. Шаблон может наследовать свойства только от одного другого шаблона. Многие шаблоны могут наследовать от одного базового шаблона. Множественное наследование (т. е. наследование от нескольких шаблонов) не поддерживается.
Наследование шаблонов создает компактные определения, устраняет необходимость простого и понятного выражения вариантов базового типа, а также четко показывает структуру и организацию данных. Наследование шаблонов также позволяет расширять и создавать базовые платформы без необходимости изменять или переопределить базовую платформу.
Поскольку содержимое данных зависит от контекста, в котором происходит конструкция, связи шаблонов не определяются схемой ТИПА XML. Например, конструкция *Options, которая отображается в приложении PaperSize *Feature, имеет элементы, отличные от конструкции *Options, которая отображается в разделе Разрешение *Feature. Благодаря объектно-ориентированной концепции наследования связь между конструкциями данных может быть точной без неоднозначности.
Наследование шаблонов также требует понимания структуры данных. Например, все конструкции *функций имеют общие свойства. Эти свойства наиболее правильно определяются шаблоном базового компонента. Затем вы можете получить определенные определения функций из базового шаблона, добавив свойства или ограничения, относящиеся к конкретному компоненту. Наследование каждого шаблона от базового шаблона компонента гарантирует, что все производные шаблоны наследуют все основные свойства, общие для всех определений признаков. Если всегда учитывать, какие свойства должен определять конкретный шаблон и какие свойства следует оставить производным шаблонам, можно сосредоточиться на организации, структуре и связях между данными.