Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jenis data ARRAY terdiri dari satu atau beberapa nilai yang semuanya memiliki jenis data yang sama. Array dapat didefinisikan untuk diperbaiki, variabel, atau panjang yang tidak terbatas.
*DataType: ARRAY mengarahkan templat untuk menentukan jenis data majemuk yang anggotanya semuanya adalah tipe data yang sama (juga dikenal sebagai jenis data anggota). Anggota jenis data array akan dihasilkan sebagai elemen turunan XML individual yang termasuk dalam elemen yang mewakili konteks penutup.
Jika setiap elemen turunan mewakili jenis data primitif, jenis data akan ditentukan oleh atribut XML xsi:type di setiap elemen. Jika atribut GDL didefinisikan dari jenis data ARRAY, konteks penutup akan menjadi elemen <GDL_ATTRIBUTE>. Nama elemen dari setiap elemen turunan XML akan menjadi tag yang sesuai yang ditentukan oleh *ElementTags direktif. Jika COMPOSITE itu sendiri adalah anggota dari jenis data majemuk lain, elemen akan dibuat untuk mewakili konteks penutup tersebut. Nama elemen induk ini akan menjadi tag terkait yang ditetapkan oleh templat yang menentukan jenis data gabungan yang diapit.
Direktif berikut digunakan untuk menentukan jenis data ARRAY:
*ElementType (Wajib). Nama templat yang menentukan jenis data semua elemen. Anda hanya dapat menentukan satu jenis data.
*RequiredDelimiter (Wajib). String yang akan secara sintis memisahkan setiap elemen array dari elemen berikutnya. Dua pemisah berturut-turut akan ditafsirkan sebagai elemen yang dihilangkan. Pemisah tidak diperlukan untuk menunjukkan kelalaian elemen berikutnya. Berhati-hatilah jika spasi kosong digunakan sebagai pemisah atau sebagai bagian dari string pemisah. Misalnya, karakter ruang asing akan ditafsirkan oleh pengurai sebagai menunjukkan elemen yang dihilangkan; dan karena Anda mungkin tidak dapat melihat karakter spasi kosong tambahan tersebut, Anda mungkin mengalami kesalahan penguraian yang tidak terduga.
Selain itu, spasi kosong berlebih secara rutin dilucuti dari file sumber dan spasi putih sering ditambahkan ke aliran input sebagai hasil dari pemrosesan praprosesor, makro, dan komentar. Dengan demikian, string aktual yang diurai mungkin memiliki jumlah karakter spasi yang sama sekali berbeda dari yang semula ditentukan.
Anda tidak boleh menggunakan karakter tab sebagai bagian dari string pemisah yang diperlukan karena secara rutin dikonversi ke karakter spasi selama pemrosesan input.
* OptionalDelimiter (Opsional). String apa pun yang terdiri dari karakter yang ditentukan dalam * OptionalDelimiter dan yang tampak berdekatan dengan string *RequiredDelimiter akan dianggap sebagai bagian dari pemisah. Karakter pertama yang ditentukan dalam string *RequiredDelimiter tidak boleh muncul dalam *OptionalDelimiter.
*ElementTags (Wajib). Jika Anda ingin menetapkan setiap elemen dalam array dengan nama elemen yang sama (atau jika array dapat berukuran tidak terbatas), berikan hanya satu tag. Jika tidak, berikan angka yang sama dengan nilai maksimum yang *ArraySize yang tentukan.
Setiap anggota array akan diberi nama dengan tag yang sesuai. Penamaan ini berguna jika satu atau beberapa elemen array dihilangkan. Ketika elemen array dihilangkan, tag yang sesuai dengan elemen yang dihilangkan tidak digunakan. Untuk menghindari membingungkan klien, jangan gunakan nama elemen cadangan rekam jepret GDL (yaitu, CONSTRUCT, ATTRIBUTE, dan Personality,) sebagai nama tag.
*ArraySize (Diperlukan). Gunakan satu bilangan bulat untuk menentukan ukuran array ukuran tetap, atau gunakan dua bilangan bulat untuk menentukan ukuran minimum dan maksimum yang diizinkan untuk array berukuran variabel. Perhatikan bahwa nol diperbolehkan untuk ukuran minimum dan karakter kartubebas GPD (*) dapat digunakan untuk menentukan ukuran atau ukuran maksimum. Menunjukkan nilai yang dihilangkan dalam data instans dengan koma berturut-turut (misalnya,
*DaysOfWeek: (Sunday, Monday, , Wednesday, , Friday,).*ArrayLabel (Opsional). Jika direktif ini ditentukan, daftar elemen array harus diapit oleh tanda kurung dan diawali oleh label *ArrayLabel. Jika tidak ada label yang ditentukan dalam direktif ini, tanda kurung bersifat opsional, dan tidak ada label prefacing yang diizinkan.
Pertimbangkan templat berikut.
*Template: RECTANGLE
{
*Type: DATATYPE
*DataType: ARRAY
*ElementType: INTEGER
*RequiredDelimiter: ","
*OptionalDelimiter: "<20 09>"
*ArrayLabel: "rect"
*ElementTags: (left, top, right, bottom)
*ArraySize: 4
}
Templat ini mendefinisikan array berukuran tetap dengan empat bilangan bulat. Array diberi label (rect) dan setiap elemen dalam array diberi tag elemen unik. Tag ini akan melabeli setiap elemen dalam output XML untuk membantu klien. Setiap elemen dipisahkan dari yang berikutnya dengan koma atau koma ditambah kombinasi karakter spasi dan tab apa pun. Karena ukuran array tetap, tidak ada kelalaian elemen yang diizinkan.
*DataType: array templat tidak menghasilkan skema yang sesuai. Skema templat yang dinamai dalam direktif *ElementType digunakan sebagai gantinya.
Pertimbangkan entri GDL berikut.
*ImageableArea: rect( - 10, 20 , +30, 0x40 )
Dan pertimbangkan templat IMAGERECT.
*Template: IMAGERECT
{
*Name: "*ImageableArea"
*Type: ATTRIBUTE
*ValueType: RECTANGLE
}
Jika entri GDL ditafsirkan oleh templat IMAGERECT, output XML yang dihasilkan akan menjadi.
<GDL_ATTRIBUTE Name="*ImageableArea" >
<left xsi:type="GDLW_int">-10</left>
<top xsi:type="GDLW_int">20</top>
<right xsi:type="GDLW_int">30</right>
<bottom xsi:type="GDLW_int">64</bottom>
</GDL_ATTRIBUTE>
Perhatikan bahwa referensinya adalah untuk jenis yang dibungkus GDLW_int daripada intasli .