لغة وصف البيانات المفتوحة
لغة وصف البيانات المفتوحة ( OpenDDL ) هي لغة نصية عامة مصممة لتخزين البيانات المختلفة بتنسيق موجز وسهل القراءة. يمكن استخدامها كوسيلة لتبادل المعلومات بسهولة بين العديد من البرامج، أو ببساطة كطريقة لتخزين بيانات البرنامج بتنسيق قابل للتعديل.
تم وصف الصيغة الدقيقة لـ OpenDDL على موقع الويب openddl.org وكذلك في ملحق من مواصفات Open Game Engine Exchange . [ 1 ]
الهياكل
يتكون ملف OpenDDL من سلسلة من البنى التي قد تكون أنواعًا معرفة من قبل المستخدم أو أنواع بيانات أساسية مضمنة. يتألف تعريف البنية من مُعرِّف متبوعًا باسم اختياري، وقائمة خصائص اختيارية، وأخيرًا، محتويات البنية محصورة بين قوسين معقوفين. تُخزَّن البيانات الأولية دائمًا داخل البنى التي تكون مُعرِّفاتها من أنواع البيانات الموضحة في القسم التالي. على سبيل المثال، يمكن تعريف بنية Pointتحتوي على إحداثيات الفاصلة العائمة لنقطة ثلاثية الأبعاد كما يلي.
نقطة { float {1.0, 2.0, 3.0} }يمكن أن تحمل الهياكل أسماءً تُمكّن من الرجوع إليها من أجزاء أخرى من الملف. قد تكون الأسماء عامة (فريدة في جميع أنحاء الملف) أو محلية (فريدة داخل الهيكل المُحيط). يتكون الاسم العام من علامة الدولار متبوعةً بمعرّف، بينما يتكون الاسم المحلي من علامة النسبة المئوية متبوعةً بعلامة الدولار. Pointيمكن إعطاء الهيكل المذكور أعلاه الاسم العام "position" كما يلي.
النقطة $position { float {1.0, 2.0, 3.0} }ويمكن أن يتضمن هيكل آخر إشارة إلى هذه النقطة باستخدام refنوع البيانات التالي:
ref {$position}أنواع البيانات
يُعرّف OpenDDL أنواع البيانات الأولية الخمسة عشر الموضحة في الجدول التالي. لكل نوع اسم طويل واسم مختصر. بالإضافة إلى ذلك، لكل نوع من أنواع الأعداد العشرية اسم طويل واسم مختصر بديلان.
| يكتب | وصف |
|---|---|
bool،b | نوع منطقي يمكن أن يأخذ القيمة trueأو false. |
int8،i8 | عدد صحيح موقع مكون من 8 بتات يمكن أن تكون له قيم في النطاق [ − 2 7 , 2 7 − 1 ]. |
int16،i16 | عدد صحيح موقع مكون من 16 بت يمكن أن تكون له قيم في النطاق [ − 2 15 , 2 15 − 1 ]. |
int32،i32 | عدد صحيح موقع مكون من 32 بت يمكن أن تكون له قيم في النطاق [ − 2 31 , 2 31 − 1 ]. |
int64،i64 | عدد صحيح موقع 64 بت يمكن أن تكون له قيم في النطاق [ − 2 63 , 2 63 − 1 ]. |
uint8،u8 | عدد صحيح غير موقع مكون من 8 بتات يمكن أن تكون له قيم في النطاق [0، 28 - 1 ]. |
uint16،u16 | عدد صحيح غير موقع مكون من 16 بت يمكن أن تكون له قيم في النطاق [0، 2 16 − 1]. |
uint32،u32 | عدد صحيح غير موقع مكون من 32 بت يمكن أن تكون له قيم في النطاق [0، 232 - 1]. |
uint64،u64 | عدد صحيح غير موقع 64 بت يمكن أن تكون له قيم في النطاق [0، 264 - 1]. |
half، float16، h،f16 | نوع بيانات ذو فاصلة عائمة 16 بت متوافق مع تنسيق S1E5M10 القياسي. |
float، float32، f،f32 | نوع بيانات ذو فاصلة عائمة 32 بت متوافق مع تنسيق S1E8M23 القياسي. |
double، float64، d،f64 | نوع بيانات ذو فاصلة عائمة 64 بت متوافق مع تنسيق S1E11M52 القياسي. |
string،s | سلسلة أحرف محاطة بعلامات اقتباس مزدوجة، ومحتوياتها مشفرة بنظام UTF-8 . |
ref،r | سلسلة من أسماء الهياكل، أو الكلمة المفتاحية null. |
type،t | نوع تكون قيمه عبارة عن معرّفات تُسمّي الأنواع في العمود الأول من هذا الجدول. |
base64،z | بيانات ثنائية عامة مشفرة بصيغة Base64 . |
مراجع
روابط خارجية
- تنسيقات تسلسل البيانات
- التنسيقات المفتوحة
