*  XML في NET **

& مقدمة عن XML في NET:  تكلمنا سابقاً عن المزايا الجديدة في إطار العمل NET و المخصصة للوصول إلى البيانات العلائقية و قمنا بمقارنة بسيطة مع التقنيات التقليدية التي كانت مستخدمة مع ADO

 اصبحت لغة XML و بسرعة اللغة الأساسية على الوب و تم اعتمادها من قبل العديد من التطبيقات , لذا سنذكر  في هذا الجزء على الطريقة التي تدعم بها NET لغة XML:

قدمت منظمة W3C مجموعة من المعايير التي حددت البنية و الواجهات التي  يجب تزويد التطبيقات بها للوصول إلى وثائق XML تسمى هذه المعايير ب  (DOM). و قد تبنت NET دعم هذه التعابير من خلال الأغراض  XmlDocument و XmlDataDocument

توفر هذه الأغراض دعما كاملا لمعابير XML DOM  من الدرجة الثانية:

image-20200309201257-1

وسعت NET الدعم الكبير الموجه من قبلها إلى XML و ذلك عن طريق تقديم وسائل و تقنيات للتعامل مع بعض الوثائق من XML . و أيضاً قوالب XML و الملفات و الأنماط . و المخطط التالي يعطي توضيحاً جيداً للأغراض التي تستخدم من أجل التعامل مع وثائق XML .

image-20200309201257-2  

image-20200309201257-3

image-20200309201257-4

إن أغراض XML   الرئيسية تتوزع في المجموعات التالية :

  • المجموعة الأولى :

عملها قراءة و كتابة و تحويل و تبديل صيغة الملفات XML   و تحوي هذه المجموعة الأغراض : XMLtextreader   و   XMLtextwriter  XMLnodereader    أيضاً xsltransform المختص بخلق ملف و إعطاءه تنسيقات مختلفة عن وثيقة XML   الأساسية .

  • المجموعة الثانية :

تتعلق و تختص بتخزين وثائق XML  و كما يتم التعامل مع هذه الوثائق , و تحوي الأغراض :  XMLdocument    و  XMLdatadocument    و Xpathdocument    

  • المجموعة الثالثة :

تتعلق بالاستعلامات XML   و تستخدم فيها الغرض xpathnavigator كما يوجد تداخل بين وظائفها . من أجل اختبار وثيقة XML   عندما تكون في حالة القراءة نستعمل من أجل ذلك الغرض xmlvalidatingreader و هناك أغراض أخرى تستخدم لإنشاء و تحرير الهياكل XML   .

أيضاً تستخدم الأغراض XMLtransform   من أجل تطبيق استعلام على وثيقة إضافية عبر تحويلها إلى تنسيق آخر .

أغراض Document  : للغرض Document  ثلاثة تقنيات تطبيقية:

  • أولاً الغرض xmlDocument  : يعتبر آلية تطبيقه net لمعايير dom تحوي خواص و أساليب المعارف من قبل w3c من أجل التعامل مع الوثائق XML بالإضافة لبعض الإضافات من جعل  العمليات الرئيسية  أكثر سلاسة .
  • ثانياً الغرض XMLDatadocumeny: يعبر امتداد للغرض xmlDocument   حيث يعطي ذات الخواص و الأساليب أيضاً يعمل كوصلة رئيسية بين XML و طرائق قواعد المعطيات العلائقية
  • ثالثاً الغرض xpathdocument  : تعتبر طريقة سريعة و سلسة من أجل تخزين وثائق XML و يعتبر مخصص بشكل رئيسي من أجل الوصول إلى آلية باستعمال الغرض xpathnavigator باستخدام الإستعلامات xpath  أو التجول ضمن الوثيقة عنصر بعد الآخر باستعمال تقنية pull

الطرق الأساسية لأغراض Document  

 إن العنصر xpathdocument  لا يمتلك أساليب عامة و مفيدة غير الطريقة createvavigator بسبب أنه مصمم خصيصاً ليعمل مع الغرض xpathnavigator من  ناحية أخرى يعطي النوعان الآخران للغرض Document  مجموعة واسعة من الأساليب و الطرائق و هذه الطرق محددة بالمعايير w3c dom .

أيضاً يعطي هذان النوعان المذكور أن مجموعة من الخواص المستعملة كثيراً للعمل مع الوثائق XML حيث تحوي أساليب إنشاء أنواع محددة من العقد و الوصول إلى عقد موجودة.   &

**  الطرق الاساسية لأغراض DOCUMENT **

   image-20200309201257-5

خلافا عما ذكر سابقاً , يوجد ايضاً مجموعة موسعة من الأساليب لتحميل و حفظ XML من و إلى غرض وثيقة XML

image-20200309201257-6

بحال اردنا استخدام الغرض xpathnavigator  في الوثيقة التي نستخدمها حالياً , نقوم بخلقه باستعمال التقنية createnavigator

image-20200309201257-7

يعطي الغرض xmldatadocument  خاصة إضافية عما سبق و هذه الخاصة يعطيها الغرض xmldocument :

image-20200309201257-8

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

image-20200309201257-9

&

**  XPATHNAVIGATOR  **

& من أجل جعل العمل مع وثائق XML  عملاً سهلاً و سلسا يجري تعريف الغرض xpathnavigator  في فضاء الأسماء SYSTEM.xml و هو الذي يكن استعماله من أجل التجول ضمن الوثيقة   XMLأيضاً من أجل الاستعلام و الاستفسار من عناصر في الوثيقة باستعمال تعبير Xpath

أيضاً تجدر الإشارة إلى إمكانية استعمال الغرض xpathnavigator  مع أي غرض وثيقة   XMLو ليس فقط مع XpathDocument  .

و هذا يعني أنه من الممكن خلق غرض xpathnavigator   يقوم على أساس غرض XMLDocument  أو غرض xmldatadocument  

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

يعطي الغرض xpathnavigator مجموعة من التقنيات التي تقبل تعبيرات Xpath أو اسم العقدة أو نمط العقدة و تعيد أيضاً العقدة أو مجموعة عقد مطابقة .

عندها نستطيع التجوال عبر هذه العقد

كما يمكن خلق العنصر xpathnavigator من غرض وثيقة موجودة كما يلي :

image-20200309201257-10   الطرق الأساسية لغرض xpathnavigator

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

أيضاً من أجل تحرير وثيقة XML نستعمل مؤشر إلى العقدة الحالية لهذا الغرض أو غرض Xpathnodeiterator  و هو الذي يضم عدة مجموعات من العقد ثم يتم استدعاء الأساليب المخصصة بعقدة ما من المجموعة ,و أيضاً في الوقت ذاته يوفر الغرض xpathnavigator تفاصيل أكثر  عن العقدة الحالية و بذلك يوجد طريقتين للوصول إلى داتا خاصة بعقدة ما في الوثيقة .

الجدول التالي يوضح أكثر من طرق الغرض xpathnavigator استخداماً.

هناك أساليب للحركة في الوثيقة من أجل جعل عقدة ما هي العقدة الحالية بالنسبة لغرض  xpathnavigator أو لإنشاء غرض xpathnavigator جديد :

image-20200309201257-11

هناك أيضا طرق مخصصة للوصول و اختيار أجزاء من محتوى وثيقة :

image-20200309201257-12

image-20200309201257-13 &

**  XMLTEXTWRITER **

الغرض xmltextwriter:  عندما يتم استعمال xmldocument  من أجل إنشاء وثيقة معينة من النوع XML يجب تشكيل أقسام و إدراجها في الوثيقة بأسلوب خاص , و هو اسلوب معقد جداً و قد ينتج عنه العديد من الأخطاء .

كما يمكن للغرض xmlwriter أن يستعمل لإنشاء وثيقة XML عقدة بعد الأخرى بشكل متتالي بكتابة التأشيرات و المحتوى إلى الناتج باستعمال مجموعة التقنيات التي يعطيها هذا الغرض .

حيث يعتبر الغرض xmltextwriter كمصدر إما غرض xmlwriter الذي يؤشر إلى ملف على القرص و مسار و اسم هذا الملف أو غرض Stream الذي يحتوي وثيقة XML جديدة

  • يقدم هذا الغرض مجموعة من الخواص و العناصر و التقنيات التي يمكن استعمالها من أجل تشكيل عقد XML و محتويات أخرى . و بعد ذلك يقوم بإعادة توجيه النتائج إلى ملف على القرص أو غرض stream بشكل مباشر
  • أيضاً يمكن أن يتم تعيين الغرض xmltextwriter كأداة خرج لطرق في أغراض متعددة حيث يقوم غرض xmltextwriter بتوجيه المحتوى إلى ملف على القرص أو غرض xmlwriter أو غرض stream

الطرق الأساسية لغرض xmltextwriter:

أكثر الطرق استخداماً لهذا الغرض هي التالية :

image-20200309201257-14

**  XMLREADER **

الغرض XMLReader  قد نحتاج في بعض الأحيان إلى قراءة بعض الوثائق XML من مكان أو مصدر بدلاً من كتابتها

كما يعتبر الغرض XMLReader صف قاعدي يرث منه صفان عامان هما XMLtextReader و XMLnodeReader

  • إن الغرض XMLtextReader يعتمد على الغرض  textReader الذي يؤشر إلى ملف XML على القرص و إلى مساره و اسمه أو إلى غرض stream الحاوي على الوثيقة XML.

كما  يمكن قراءة محتوى الوثيقة عقدة عقدة بالتتالي و يعطي الغرض معلومات و بيانات عن كل عقدة من العقد و عن القيمة التي تتضمنها أثناء قراءتها .

  • كما أن الغرض XMLnodeReader يأخذ غرض XMLnode كمصدر أساسي له حيث يسمح بقراءة قسم من وثيقة XML بدلاً من قراءة كل الوثيقة بحال كان الهدف هو الوصول إلى عقدة معينة و العقد أبناؤها .
  • يمكن أن يستخدم الغرضان XMLtextReader  و XMLnodeReader بصورة منفصلة لتوفير وصول سريع و فعال لوثائق XML او كمصدر لأغراض أخرى حيث نقوم تلقائياً بقراءة الوثيقة و تمرير ناتج القراءة إلى الغرض الأب .

إن الأغراض XPathnavigator  و XMLtextReader  تستخدم نمذجة pull من أجل الوصول إلى الداتا المختصة بالعقدة ثم العقدة التي تليها و هكذا .

و ذلك بدلاً من تفريغ كامل الوثيقة كشجرة ضمن الذاكرة . يسمح ذلك بالوصول إلى ملفات كبيرة الحجم دون استهلاك الكثير من الموارد و يجعل عملية كتابة نص البرمجي أسهل بأغلب الحالات .

أيضا تبرز أهمية هذه الأغراض في الحالات التي نبحث فيها عن قيمة معينة عندها لن نضطر إلى قراءة كامل الوثيقة بل يمكننا الوصول إلى عقد محددة بعد قراءة جزء من الوثيقة .

يمتلك الغرضان XMLtextReader   و XMLnodeReader خصائص و طرق متطابقة تقريباً أهم الطرق المستخدمة هي :

image-20200309201257-15

image-20200309201257-16

image-20200309201257-17 &

** XMLVALIDATINGREADER **

الغرض XMLValidatingreader: يوجد أيضاً إضافةً لما سبق الغرض المبني على الصف XmlReader و هو الغرض XMLValidatingReader  

بحيث يمكننا التعامل مع هذا الغرض كغرض Xmltextreader ,و لكن بمهمة تقييم وثيقة بالمقارنة مع هيكل أو مخطط معين .

كما يمكننا أيضاً خلق غرض XMLValidatingreader من غرض XmlReader الموجود مسبقاً , أو من غرض stream أو من سلسلة محارف تحتوي XML ليتم تقييمها و التحقق منها.

الغرض Xsltransform : كما تعتبر الحاجة إلى تحويل الوثيقة باستخدام XSL او XSTL من أهم متطلبات  العمل مع وثائق XML , كما تقدم NET الغرض Xsltransform المصمم خصيصاً لإجراء عمليات التحويل باستخدام XSL او XSTL .

الطرق الأساسية لغرض Xsltransform: تقدم Xsltransform طريقتين أساسيتين هما :

image-20200309201257-18

مثال :

من الملاحظ بشكل خاص في المثال أنه تم استعمال الغرض ثم تم تحميل ملف إليه و بعد ذلك استخدمنا طريقة GetElementByTagname  لإيجاد جميع العقد التي يكون اسم التأشيرة فيها هو  AutherName  ثم قمنا بالدوران ضمن النتائج و إظهارها .

image-20200309201257-19

image-20200309201257-20

image-20200309201257-21

image-20200309201257-22

image-20200309201257-23

image-20200309201257-24 image-20200309201257-25 image-20200309201257-26 image-20200309201257-27

مثال :

فيما يلي سنذكر مثال و سنقوم باستعمال غرض XmlDocument  ثم يتم تحميل وثيقة XML إليه عن طريق Load بعد ذلك يتم تعريف تابع ليقوم بإعادة نوع العقدة خلال الوثيقة بناءً على الرقم الذي تعيده الطريقة NodeType و بعد ذلك سيتم تعريف تابع ثاني مهمته باستعراض العقد و فحص العقد الأبناء لكل عقدة .

image-20200309201257-28   

image-20200309201257-29

image-20200309201257-30 image-20200309201257-31 image-20200309201257-32 image-20200309201257-33 image-20200309201257-34

 

إنشاء حساب جديد

قم بتنزيل تطبيق eMufeed Android الآن