共用方式為


GDL 架構

GDL 剖析器可讓您建立和實作資料驅動架構。 提供架構時,剖析器會執行驗證架構,並轉換資料。

架構描述相關聯 GDL 來源檔案中資料的結構和格式。 架構可以在 GDL 來源資料檔本身內定義,也可以是 GDL 來源資料檔參考的個別檔案。 架構會定義可出現在每個建構中的資料項目目,以及每個屬性可以定義的次數。 例如,您可以定義描述人員的建構。 您可能想要建構包含人員的名稱、生日、高度、粗細、住家位址,以及一些雇用資訊。

GDL 資料看起來可能類似下列程式碼範例。

*Person: person_ID
{
  *Name:
  *Birthdate:
  *Height:
  *Weight:
  *HomeAddress:
  *EmploymentInfo:
} 

因為 *HomeAddress 和 *EmploymentInfo 代表資訊的邏輯群組,因此也可以定義為建構,如下列程式碼範例所示。

*HomeAddress:
{
  *StreetAddress:
  *Apt_Number:
  *City:
  *State:
  *Zip:
}

*EmploymentInfo:
{
  *Employer:
  *Address:
  *Position:
  *Salary:
  *StartDate:
}

如上述範例所示的 GDL 建構不會定義其結構和內容的任何語法規則。 例如,可能有兩個 *Person 建構的實例,一個指定 *重量,另一個則指定 *重量以磅為單位。 這些多個實例可能會導致不一致。

GDL 架構提供方法來正式指定傳入資料必須符合的結構和內容。 剖析器會針對此架構驗證資料,並在資料或資料結構不符合架構時發出警告。 您可以指定專案是必要專案還是選擇性 (,例如 Apt) ,或是否可以相乘專案。 例如,*Apt_Number可能是選擇性的,而單一人員可以保存兩個作業。

架構允許共用和繼承專案的定義。 例如,*EmploymentInfo 中 *Address 的架構定義可由 *HomeAddress 共用。 架構可讓新的定義衍生自現有的定義。 這兩個 Address 建構不需要相同,因為它們可以是衍生自通用繼承定義的變體。

架構可用來指定指定屬性值的格式。 例如,架構可能需要以 MM-DD-YYYY 格式指定日期值。 您也可以讓剖析器將複雜值運算式分解成組成元件,並將其顯示在快照集中。 例如,用戶端應用程式可能會想要將日期分解成三個不同的欄位,如下列程式碼範例所示。

*Date:
{
  *Month: Jan
  *Day: 1
  *Year: 2001
}

架構支援繼承的能力具有額外的影響。 繼承自然可讓您擴充架構,同時維持相容性。 如果有衍生自另一個架構的架構,則符合衍生架構的資料檔案會自動符合原始架構。 此繼承可讓廠商自訂其架構 (,並藉由隱含其資料檔案) ,同時保留與主要架構 (的相容性,以及需要符合主要架構的所有應用程式) 。 實際上,廠商只能參考定義主要架構的檔案,並建立繼承自主要架構中定義的新定義。 廠商不需要製作主要架構的私人複本,或以任何方式修改主要架構。 在此情況下,如果後續修改主要架構,廠商就不需要採取任何動作。

如上述範例所示,繼承可讓您分解常見的模式,並避免不需重複的定義和隨附的維護。 因此,它們所代表的架構和資料集可以妥善考慮,並以邏輯方式結構化。

如需如何使用繼承架構的詳細資訊,請參閱 GDL 範本