Конфигурации GDL
GDL позволяет определять зависимости в данных. Клиенту не нужно знать о зависимостях; Вместо этого клиент задает интересующую конфигурацию при запросе snapshot, а средство синтаксического анализа создает snapshot, соответствующую этой конфигурации.
Например, цены, которые взимаются за телефонный звонок, зависят от точек начала и назначения, времени дня и дня недели, в течение которых выполняется звонок, используемого плана звонков и т. д. Цены на все возможные результаты могут быть представлены большим многомерным массивом. Эти данные можно представить с помощью директив GDL для определения параметров для представления различных переменных, таких как точки происхождения и назначения, время суток, план вызова и т. д. Для определения допустимых значений для этих параметров можно использовать другие директивы. Другие директивы определяют, как данные зависят от значения определяемых параметров. После того как данные, представляющие стоимость телефонного звонка (CostOfCall в следующем примере), будут выражены в виде исходного файла GDL, их можно проанализировать, и любой клиент может получить затраты на совершение телефонного звонка, просто создав конфигурацию, которая присваивает нужное значение каждому параметру, определенному в GDL.
Например, клиент может создать конфигурацию, содержащую следующие данные.
OriginationPoint: Seattle
DestinationPoint: SanFrancisco
LengthOfCall: 10minutes
TimeOfDay: Night
CallingPlan: OneRate
А созданный snapshot будет содержать один фрагмент данных (из всех возможных комбинаций), который может выглядеть, как показано в следующем примере.
CostOfCall: $0.49
GDL snapshot может содержать сложную структуру данных с тысячами элементов или всего одним. Каждый элемент в snapshot может иметь собственный набор зависимостей от конфигурации, о которых клиент не знает. Клиент должен просто предоставить интересующую конфигурацию, а средство синтаксического анализа GDL вернет snapshot, представляющее данные, соответствующие этой конфигурации.
Кроме того, GDL позволяет исключить выбранные конфигурации как "не разрешенные". Например, устройство печати может не разрешать дуплексную печать на прозрачном носителе. Интерфейс средства синтаксического анализа GDL содержит методы, позволяющие определить, разрешена или запрещена предоставленная конфигурация; Если конфигурация запрещена, метод минимально изменит конфигурацию, чтобы она была разрешена. Существуют директивы для определения исключенных конфигураций и директивы для указания относительной важности параметров, чтобы можно было исправить конфигурацию для разрешения конфликта, и внести изменения, чтобы сохранить исходное намерение как можно больше.
Дополнительные сведения о создании данных, зависящих от конфигурации, см. в разделе Создание данных GDL Configuration-Dependent.