Summary

  • نشر W3C توصية XForms 1.0 في 14 أكتوبر 2003. قسمت الاستمارة إلى نموذج، وبيانات نسخة XML، وواجهة مستخدم؛ وربطت أوامر الواجهة بعقد البيانات بعلاقات محددة.
  • في مثال الدفع الوارد في التوصية، لا يصبح رقم البطاقة وتاريخ انتهائها سؤالين مناسبين إلا عند اختيار الدفع بالبطاقة. تؤثر خاصية relevant في قابلية استعمال الحقول وفي العقد التي تدخل XML المرسل.

تضع النقود على المنضدة. يعد الموظف الأوراق ثم يسألك عن تاريخ انتهاء بطاقتك الائتمانية. يشير إلى الورقة: «الخانة موجودة». هذا المنطق مألوف في استمارات الويب؛ فالخانة المرسومة تتحول إلى أمر حتى بعد أن أجاب الزبون عن السؤال السابق. توصية W3C بشأن XForms 1.0، المؤرخة في 14 أكتوبر 2003، نقلت قرار ملاءمة السؤال من شكل الشاشة إلى قواعد نموذج البيانات.

وزع XForms الاستمارة على ثلاثة مواضع. يصف النموذج بنية البيانات وشروطها. تحتفظ النسخة بوثيقة XML تمتلئ قيمها أثناء الإجابة. تعرض الواجهة الأوامر التي يستعملها الشخص. تربط خاصية ref كل أمر بعقدته في النسخة. صار ممكناً أن تتغير طريقة عرض السؤال على جهاز آخر، بينما يبقى موضع الإجابة وقاعدتها معروفين.

مثال المواصفة عملية شراء صغيرة: نقد أم بطاقة، ثم رقم البطاقة وصلاحيتها عند الحاجة. يبدأ instance بهيكل XML يضم طريقة الدفع والرقم والانتهاء، ويحدد submission وجهة النتيجة. في الواجهة يقدم select1 الاختيار، ويجمع أمرا input بيانات البطاقة. لكل أمر عنصر label خاص به، ويمده ref بعقدة البيانات المناسبة. تتغير النسخة مع إجابات المشتري، ثم يحولها المعالج إلى XML عند الإرسال.

كان select1 يصف فعل اختيار عنصر واحد، من غير أن يفرض رسماً واحداً للزر على كل جهاز. شاشة مرئية وواجهة صوتية تستطيعان تقديم الاختيار بوسيلتين مختلفتين. تبقى صلة الأمر بعقدة البيانات هي العنوان المشترك. وهذه الحرية في العرض تحتاج إلى دقة من المؤلف؛ فواجهة جميلة توصل سؤال طريقة الدفع إلى عقدة تاريخ الانتهاء ستنتج خطأ أنيقاً وحسب.

تأتي لياقة الاستمارة من bind. في المثال، يحمل رقما البطاقة وانتهائها تعبير relevant الذي يختبر هل تساوي طريقة الدفع cc، أي خيار البطاقة. وفي ذلك المسار تكون القيمتان required ولهما حدود نوعية. يعرض المثال للرقم نمطاً من 14 إلى 18 رقماً، وللانتهاء النوع xsd:gYearMonth. عندما يختار المشتري النقد، يعيد المعالج حساب الشرط. يستطيع الموظف الخيالي أخيراً أن يترك الأوراق النقدية وشأنها.

تصل قاعدة relevant في نص التوصية إلى الملف الخارج من الجهاز. العقدة التي تصبح غير ذات صلة تستبعد من XML المسلسل للإرسال. ويصير أمرها غير متاح، يخرج من ترتيب التنقل ولا يقبل التركيز. إذا اختيرت البطاقة عادت الحقول إلى مسار الإجابة وصارت القيم المطلوبة في موضعها. وإذا اختير النقد خرجت بيانات البطاقة من السجل المرسل أيضاً.

هنا يظهر الفرق بين إسدال ستارة واتخاذ قرار. يمكن إخفاء خانة على الشاشة مع بقاء قيمة قديمة داخل البيانات التي سترسل. ربط XForms ظهور السؤال ومصير القيمة بقاعدة واحدة. يقرر النموذج ما يلائم الوضع الحالي، وينفذ المعالج القرار، وتظهر النتيجة في الواجهة والنسخة المرسلة. ثلاثة مكاتب تتفق على ملف دفع واحد؛ يا له من إنجاز إداري صغير.

وصف إعلان W3C عام 2003 التصميم بفصل الغرض عن العرض والنتيجة. في مثال الشراء، الغرض تسجيل طريقة الدفع، والعرض يتكيف مع الجهاز، والنتيجة وثيقة XML تحوي البيانات المناسبة. بعد كل تلك المصطلحات، تبدو الفائدة إنسانية على نحو طريف: لقد أجبت بالنقد، فلتسكت خانة البطاقة.