الخلاصة

  • قدم RFC 3023 اصطلاح +xml كي تعلن أنواع media مختلفة عن طبقة XML مشتركة من دون أن تفقد هويتها الخاصة.
  • لم تحمل اللاحقة معنى vocabulary أو ثقة أو إذناً؛ ظل النوع الكامل والبايتات والتحليل والتحقق والتفويض والأثر سجلات منفصلة.

كان انتشار XML في مطلع 2001 قائماً على إمكان بناء لغات كثيرة فوق بنية واحدة. فقد تتشارك رسالة تجارة ورسم متجهي وملف إعداد في العلامات والشجرة، مع أن كل واحد منها يحتاج application مختلفة. لو سميت كلها application/xml لظهر النحو واختفى العقد التطبيقي. ولو حمل كل منها اسماً معتماً تماماً، لبقي العقد لكن أدوات XML العامة لما عرفت أن البنية مشتركة.

وضع RFC 3023 وصلة صغيرة في آخر الاسم. يحتفظ subtype المحدد بهويته وينتهي بـ +xml. ما قبل علامة الجمع يحدد الصيغة، وما بعدها يكشف طبقة التمثيل.

معرفة مشتركة لا تلغي الاختصاص

تستطيع application التي تعرف application/foo+xml تطبيق قواعد foo. أما أداة لا تعرف foo لكنها تعرف XML، فيمكنها فحص الأحرف الأربعة الأخيرة وتقرير ما إذا كان parsing أو البحث أو التحرير العام مناسباً.

جنب ذلك كل أداة قائمة لا تنتهي من vocabularies. ورفض RFC الاعتماد على parameter لأن parameters تعدل subtype ولا تصف طبيعته الثابتة، ولأن dispatchers القائمة نادراً ما تختار handler على أساسها. أما إنشاء top-level type جديد فكان سيغير بنية أكبر من الحاجة. حملت اللاحقة الحد الأدنى من الحقيقة المشتركة.

لكن الاسم الكامل بقي صاحب الدلالة. المعالج الذي لا يعرف XML يعامل +xml بوصفها جزءاً معتماً. لذلك حذر الملحق من إسناد معنى إضافي إلى مجرد وجودها. application/foo وapplication/foo+xml نوعان مستقلان؛ قد تضيف نسخة XML نحواً ومعنى جديدين، ودعم أحدهما لا يثبت دعم الآخر.

نجاح parser لا يثبت صلاحية الطلب

إن Content-Type المستلم ادعاء من sender. يستدعي receiver محلل XML ليتحقق من أن البايتات تطابق التمثيل. وحتى إذا نتجت شجرة سليمة، فلا دليل بعد على قبول namespace أو مطابقة profile أو صحة signature أو سلطة الموقّع.

لا يصبح العنصر المسمى approve قراراً نافذاً لأن parser قرأه. يجب أن تعطيه application معنى، وأن تتحقق policy من صاحب الطلب، وأن يحاول executor العملية، وأن يسجل النظام أثرها. كذلك لا تسمح اللاحقة بحل external entities أو جلب موارد من الشبكة أو تشغيل stylesheet أو استهلاك موارد بلا حدود. هذه ضوابط محلية.

كان نفع اللاحقة ممكناً لأنها كشفت النحو ولم تستول على الثقة.

تحول الاصطلاح إلى سجل منظم

أدخل RFC 6838 structured syntax suffixes في عمارة تسجيل media types: ما يأتي بعد آخر علامة جمع يحدد syntax مسجلة. وسجل RFC 6839 +xml رسمياً وشرح مستويين للمعالجة. يقدم النوع الدقيق semantics الخاصة؛ وتسمح اللاحقة بمعالجة التمثيل عامة عندما لا يحتاج المستقبل إلى تلك semantics ولا إلى معرفة إضافية لفك البنية.

استبدل RFC 7303 الوثيقة RFC 3023 مع إبقاء المبدأ. ينبغي للصيغ الجديدة المبنية على XML استعمال +xml إلا إذا كانت المعالجة العامة غير مناسبة. يستطيع المستقبل اكتشاف اللاحقة، واستدعاء parser للتحقق من الادعاء، ثم اختيار المسار. وتبقى قواعد العرض والتحرير والأمن وruntime وfragment ضمن النوع المحدد.

يعرض سجلا IANA الحاليان الطبقتين معاً: مدخل واحد للاحقة +xml، وأنواع كاملة كثيرة تستخدمها. التشابه في النهاية دليل على عائلة نحوية، لا على تطابق المعنى أو قابلية التبادل.

المصادر

لم يكتب Lu Heng الوثيقة RFC 3023 ولم يؤيدها. تستخدم مقالاته هنا كعدسات تحليلية معلنة.