• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

HuSsAm Klhasan

اعضاء جدد
  • عدد المشاركات

    23
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

16 عادي

عن HuSsAm Klhasan

  • الرتبة
    عضو جديد
  • تاريخ الميلاد 01/01/1989

طرق الإتصال

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : سوريا الحبيبة
  1. فكرة مشروع تخرج

    اتجه نحو مفهوم XML Database
  2. شكرا اخي الكريم بانتظار المزيد :cool:
  3. مبتدى جدا .. نرجو الدخول

    أخي الكريم ,, يجب أن تتعلم اللغة الانكليزية ولو بالحد الأددنى,,, يجب عليك تعلم مبادئ البرمجة قبل الدخول بتعلم لغة ما,,, يعني لازم تدخل الجو بالمصطلح العامي زبعديت بتتعلم اللغة التي تريد في عالمنا العربي نحنا بحاجة لفهم كيفية تعلم شيئ ما,,, يعني مابصيير اذا بدي اتعلم شغلة فوت عليها فورا,,,,لازم فكر بعمق واكون ملم بالاساسيات
  4. خوارزميات التشفير

    السلام عليكم :) :) كود جافا بيحقق هالخوارزمية وبصراحة كودتو ع السريع :wacko: :wacko: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package caesar; /** * * @author HUSSAM */ public class Caesar { public String Crypt(String pTXT,int key) { String _Cipher=""; int Temp; for (int i=0;i<pTXT.length();i++) { Temp=(((((int)pTXT.charAt(i)))+key)%26); _Ciphar+=(char)j; } return _Ciphar; } public String Decrypt(String cTXT,int key) { String pTXT=""; int Temp; for (int i=0;i<cTXT.length();i++) { j=(((((int)cTXT.charAt(i)))-key)%26); pTXT+=(char)Temp; } return pTXT; } public static void main (String[] args) { Caesar caesar=new Caesar(); int key=1; String Result=ki.Crypt("welcom",key); System.out.print(Result); } }
  5. Native XML Database

    أدرج هنا رابط لمجموعة من قواعد البيانات الأصيلة Native XML Products الرابط
  6. Native XML Database

    مميزات native xml database: -في هذا القسم سوف نناقش وبشكل مختصر عدد من مميزات قواعد البيانات الأصيلة.وبالنهاية سوف نتعرف على المميزات الموجودة حاليا والمتوقع وجودها في المستقبل. Document Collection : العديد من قواعد البيانات الأصيلة تدعم مفهوم إلcollection والذي يلعب دور مشابه للجدول في قاعدة البيانات العلائقية,أو المجلد في نظام الملفات ,على سبيل المثال بفرض لديك قاعدة بيانات أصيلة لتخزين طلبات مبيعات,في هذه الحالة ربما تريد معرفة مجموعة طلبيات مبيعات بحيث الاستعلامات على طلبات المبيعات يمكن تحديدها على مستندات تلك المجموعة. مثال أخر:بفرض أننا نخزن( manuals)طرق الاستخدام لمنتجات شركة في قاعدة بيانات أصيلة,في هذه الحالة ربما تريد أن تعرف هرمية مجموعات بحيث على سبيل المثال لديك مجموعة لكل منتج وخلال هذه المجموعة مجموعات للأقسام(chapters) لكل دليل استخدام manual ,المجموعات يمكن أن تتداخل اعتمادا على قاعدة البيانات. Query Languages: معظم قواعد البيانات الأصيلة تدعم واحدة أو أكثر من لغات الاستعلام والأكثر شيوعا منها xpath,xquery. عندما نتكلم عن قاعدة بيانات أصيلة يجب أن نتأكد من أن لغة الاستعلام المستخدمة تلبي حاجاتنا من طر البحث والاستعلام وغيرها. من الجدير ذكره انه حاليا وفي المستقل جميع قواعد البيانات الأصيلة ستدعم إلxquery المقدمة من w3c. : Updates and Deletes إن قواعد البيانات الأصيلة لديها عدة استراتيجيات متبعة من اجل عمليات الحذف والتعديل للمستندات من حذف أو استبدال مستند موجود إلى التعديل من خلال live Dom tree إلى لغات يمكنها تحديد كيف سنعدل أجزاء من المستند . من الجدير بالذكر أن اغلب هذه الطرق هي proprietary. معظم اللغات المستخدمة في ذلك تتضمن دمج مابين: Xupdate: وهي محققة في العديد من القواعد الحالية. -مجموعة من التوسعات المقدمة لxquery والمقترحة من w3c والتي فيما بعد أصبحت الأساس للشكل القوا عدي لعمليات التحديث والتعديل في لغة xquery. Transactions, Locking, and Concurrency: بشكل افتراضي كل قواعد بيانات native XML تدعم transactions (ومن المحتمل أن تدعم rollbacks ) . القفل locking يكون على مستوى المستند ككل وليس على مستوى العقد ولذلك التنافس قد يكون قليل نسبيا . هذا المفهوم يعتمد على التطبيق وعلى ما يحتويه المستند ,مثلاً : • المستند عبارة عن فصل في كتاب ويقوم الكتاب بتحرير الفصول ,في هذه الحالة القفل على مستوى المستند لن يسبب مشاكل في التنافس فمن غير المحتمل أن يقوم كاتبان بتعديل نفس الفصل في نفس اللحظة . • المستند يخزن بيانات المبيعات لشركة ما ويقوم الباعة والإداريون بإدخال بيانات المبيعات ,القفل على مستوى المستند يسبب مشاكل في التنافس لأن احتمال أن يقوم شخصان بتعديل البيانات بنفس الوقت كبير جدا ويمكن حل هذه المشكلة بإنشاء مستند خاص للمبيعات الخاصة بكل زبون . • المستند يحتوي بيانات تستخدم في تدفق العمل , مثل العقود المالية.في كل خطوة من العمل يتم قراءة البيانات من المستند وإضافة بيانات جديدة .مثلا :في خطوة ما يتم فحص الرصيد وإضافة حاصل الرصيد إلى المستند , وفي خطوة أخرى يتم فحص الحسابات الجارية للعقود الأخرى لنفس الزبون وإضافة الحساب الجاري الكلي .إذا تم القفل على مستوى العقدة يمكن تنفيذ بعض هذه الخطوات على التفرع , أما إذا تم القفل على مستوى المستند فستنفذ هذه الخطوات تسلسليا ,مما يؤدي إلى تأخير غير مقبول في التطبيقات الضخمة . المشكلة في القفل على مستوى العقدة هي كيفية التحقيق . قفل عقدة يتطلب قفل العقدة الأب لها وبالتالي قفل الأب للأخيرة أيضا وهكذا وصولا إلى الجذر مما يعني قفل المستند ككل .ولنشرح سبب ذلك : بفرض أن transation ما قام بقراءة عقدة ورقة بدون الحصول على قفل لسلف هذه العقدة وقام transaction آخر بحذف هذا السلف وبالتالي تلك الورقة .ومن الواضح أن المناقلات الأخرى يجب أن تكون قادرة على تعديل أجزاء أخرى من المستند لا تقع على المسار المباشر للورقة وتتفرع من نفس الجذر . تم إيجاد حل جزئي لهذه المشكلة من قبل Stijn Dekeyser, etal , حيث لم تمنع مشكلة قفل عقد السلف تماما بل تم جعل عملية القفل أكثر مرونة بتعريف مسار العقد التي يجب قفلها وصولا إلى العقدة الهدف مما يتيح لأي transaction أن يتأكد من عدم حدوث تضارب مع الــ transactions الأخرى التي تملك أقفال. عدد قليل فقط من قواعد بيانات native XML تدعم القفل على مستوى العقدة ولكن من المتوقع مستقبلا أن تدعم كل هذه القواعد هذا النوع من القفل . Application Programming Interfaces (APIs) قواعد البيانات الأصيلة تدعم مجموعة من application Programming Interfaces (APIs) والتي تكون بصيغة ODBC LIKE INTERFACE مع مجموعة من الدوال للاتصال بقاعدة المعطيات واستكشاف الميتاداتا وتنفيذ الاستعلامات واسترجاع النتائج. النتائج تسترجع عادة كسلسلة xml string , أو dom tree,أو sax parserأو xmal reader من خلال المستند المعاد. بالنسبة للاستعلامات لتي تعيد عدة مستندات توجد دوال معينة للمرور على النتائج والتعامل معها. بالرغم من أن قواعد البيانات الأصيلة تقدم دوال تتسم بالخاصية proprietary إلا انه وجدت حديثا مجموعة من المنتجات كالتالي: , Two vendor-neutral XML database APIs have been (are being) developed [July, 2004]: • The XML:DB API from XML:DB.org is programming language-neutral, uses Path as its query language, and is being extended to support Query. It has been implemented by a number of native XML databases and may have been implemented over non-native databases as well. • JSR 225: XQuery API for Java (XQJ) is based on JDBC and uses XQuery as its query language. It is being developed through Sun's Java Community Process (JCP) and a draft version is available. Because this initiative is being led by IBM and Oracle, its eventual wide-spread adoption seems likely. معظم قواعد البيانات الأصيلة توفر دعم لتنفيذ استعلامات وإعادة نتائجها من خلال HTTP : Round-Tripping من أهم مميزات قواعد بيانات native XML هي أنها تستطيع أن تتنقل بشكل دائري على مستند الــ XML (round-trip) ,وهذا يعني إمكانية تخزين مستند الـ XML في القاعدة ومن ثم استرجاعه منها .وهذه العملية مهمة للتطبيقات document-centric حيث مقاطع CDATA واستخدام entity والتعليقات ومعالجة التعليمات تمثل كامل المستند . وهي مهمة أيضا للتطبيقات القانونية والطبية حيث نسخ طبق الأصل من المستندات . الــ Round-Tripping أقل أهمية بالنسبة للتطبيقات data-centric والتي تهتم فقط بالعناصر والخصائص والنص والترتيب الهرمي . كل البرمجيات التي تنقل البيانات بين مستندات XML وقواعد البيانات يمكن أن تعمل round-trip للعناصر السابقة . كل قواعد البيانات native XML يمكن أن تعمل round-trip للمستندات على مستوى العناصر والخصائص وPCDATA و ترتيب المستند ,وبعض القواعد توفر أكثر من ذلك . قواعد البيانات text-based native XML تعمل round-trip للمستند تماما,بينما قواعد البيانات model-based native XML تعمل round-trip للمستندات على مستوى document model . بما أن عملية round-trip تعتمد على التطبيق فيمكن أن تكون الخيارات أمامنا مفتوحة أو ضيقة لاختيار قاعدة بيانات native XML . : Remote Data بعض قواعد البيانات الأصيلة يمكن أن تتضمن بيانات بعيدة في المستندات المخزنة ضمنها. وهذه البيانات عادة تكون مسترجعة من قاعدة بيانات علاثقية(ODBC ,OLE DB)ونمذجت باستخدام(TABLE BASED MAPPING, OBJECT RELATIONAL MAPPING)ٍ. -لتحقيق مفهوم البيانات البعيدة لذا فان التعديل في قاعدة البيانات الأصيلة يجب أنا يكون له تعديل مقابل على قاعدة البيانات العلائقية والتي هي عبارة عن القاعدة المصدر التي تم استرجاع البيانات منها.معظم قواعد البيانات الأصيلة من المكن أن تور دعم لهذا المفهوم. Indexes: كل قواعد البيانات الأصيلة تدعم مفهوم الفهرسة لتزيد من سرعة الاستعلام, يوجد لدينا ثلاثة أنواع من الفهارس VALUE INDEXEمفهرس القيمة: "Find all elements or attributes whose value is 'Santa Cruz'." STRUCTURAL INDXEمفهرس البنيوي: "Find all Address elements." يمكن حل هذا الاستعلام باستخدام مفهرس القيمة والمفهرس البنيوي "Find all City elements whose value is 'Santa Cruz'." FULL-TEXT INDEXE: "Find all documents that contain the words 'Santa Cruz'," يمكن حل هذا الاستعلام باستخدام مفهرس النصي والمفهرس البنيوي "Find all documents that contain the words 'Santa Cruz' inside an Address element." -معظم قواعد البيانات الأصيلة تدعم مفهرس القيم والمفهرس البنيوي وبعضها يدعم FULL-TEXT INDEXE External Entity Storage: ٍ السؤال الصعب عند تخزين مستندات الــ XML هو كيف سنتعامل مع الكائنات الخارجية .هل يجب توسعتها وتخزين قيمها في نهاية المستند أم يجب أن نخزن مراجع لهذه الكائنات ؟؟ هناك عدة إجابات لهذا السؤال : على سبيل المثال بفرض لدينا مستند يتضمن كائن خارجي يقوم باستدعاء برنامج CGI لتقرير عن حالة الطقس .إذا استخدمنا المستند في صفحة ويب لإعطاء تقارير عن حالة الطقس , سيكون من الخطأ تخزين مرجع للكائن الخارجي لأن صفحة الويب في تلك الحالة لن تعطي نتائج حديثة .أما إذا كان المستند جزء من مجموعة لإعطاء معلومات تاريخية عن الطقس فسيكون من الخطأ عدم تخزين مرجع للكائن الخارجي لأن المستند في تلك الحالة سيعيد بيانات حالية وليس تاريخية . مثال آخر : ليكن لديناproduct manual والذي يحتوي فقط مراجع لكائنات خارجية توضح فصول الـ manual . لو كانت هذه الفصول مستخدمة في مستندات أخرى مثلا manuals لموديلات مختلفة من المنتج , عندها سيكون من الخطأ تخزين القيم التي تشير إليها هذه المراجع لأن ذلك سيؤدي إلى نسخ متعددة من نفس الفصول . السلام عليكم,,,
  7. Native XML Database

    لماذا نحتاج إلى قواعد بيانات XML الأصلية : الفائدة الأساسية لــ native XML databases من ناحية تطور الــ schema هي إمكانية تخزين مستندات مطابقة لنسخ متعددة ومختلفة من الــ schema . وهذه يحقق ميزات تفوق قواعد البيانات العلائقية التي تتطلب أن تكون بياناتها متطابقة مع schema وحيدة : • يمكن تغيير الــ schema بدون حاجة إلى نقل البيانات كما هو الحال في قواعد البيانات العلائقية .بالنسبة للبيانات الضخمة أو عند الحاجة إلى تغيير الــ schema بشكل متكرر عملية النقل مكلفة جدا .كما أنه من غير الممكن دوما نقل البيانات . • من الممكن تغيير الــ schema بدون نقل البيانات , إذا أردنا إضافة حقل جديد ,في native xml database يمكن إضافة مستندات جديدة في نفس مجموعة المستندات القديمة أما في قواعد البيانات العلائقية فالبيانات الجديدة تخزن ي جدول جديد (عندما لا توجد إمكانية نقل البيانات )وبالتالي في nativeXML الاستعلامات على البيانات القديمة تبقى ممكنة أما في قواعد البيانات العلائقية فلا . • يمكن تخزين البيانات حتى لو كانت مطابقة لنسخة غير معروفة من الــ schema وبالتالي لن تضيع أي بيانات . الفائدة الثانوية لــ native XML databases هي دعمها لــ XQUery ,التعابير الشرطية والتوابع المعرفة من قبل المستخدم في هذه اللغة تكون مفيدة جدا في الاستعلام عن مستندات متعددة الــ schema . هذا لا يعني أن native XML databases تعالج كل مشاكل المتعلقة بتطور الــ schema ( تطور الــ schema يبقى مشكلة تتطلب التفكير والعمل المضني ) ,إلا أن هناك إجماع من المنتجين والزبائن على مرونة قواعد بيانات native XML توفر حلولا لم تكن ممكنة من قبل . وفيما يلي نذكر بعض فوائد native XML databases : • إدارة البيانات المشتركة والمحلية Local and Shared data management : بشكل أساسي تستخدم QuiLogic's SQL/XML-IMDB لإدارة البيانات المحلية .بدلا من استخدام القوائم والأرتال يتم استخدام SQL/XML-IMDB لتخزين البيانات ذات مستويات مختلفة من التعقيد .مما يسمح بتعريف البنى بأسلوب تصريحي باستخدام XQuery و SQL .وبما أن SQL/XML-IMDB تدعم استخدام الذاكرة المشتركة يمكن استخدامها لمشاركة البيانات بين عدة معالجات . • Complete Web site : يمكن استخدام native XML database لبناء مواقع ويب ,يتم تخزين البيانات في قاعدة البيانات كــ XML والاستعلام عنها وتعديلها باستخدام XQuery وتحويلها إلى XHTML باستخدام XQuery أو XSLT . • الأداء performance : لاحظ المنتجون أن الزبائن لا يختارون native XML databases بسبب الأداء , ولكن الأداء يمثل مقياس ثانوي فالتطبيقات التي تستخدم document-centric XML أو بيانات semi-structured والتي كانت بالأصل تستخدم نظام ملفات أو قواعد بيانات علائقية انتقلت لاستخدام native XML databases لأسباب متعلقة بالمميزات التي تتمتع بها الأخيرة والأداء . • Mid-tier data cache : غالبا ماتستخدم قواعد البيانات native XML لتخبئة البيانات في طبق وسطى كما في تكامل البيانات و التجارة الالكترونية (e-commerce) ومواقع الويب وذلك من أجل الأداء وأيضا إدارة البيانات بصيغة موحدة (XML) .
  8. Native XML Database

    مصطلح native XML database أو ما يسمى قواعد بيانات XML الأصلية ظهر أول مرة في الحملة التسويقية لشركة Tamino وبسبب نجاح هذه الحملة انتشر مفهوم قواعد بيانات الـ XML انتشارا واسعا. قواعد بيانات XML الأصلية يجب أن تحقق ما يلي: تعرف نموذج منطقي لمستندات الــ XML يقوم بتخزين واسترجاع المستندات ويجب أن يتضمن العناصر والخصائص (الصفات)والــ PCDATA ويأخذ بعين الاعتبار ترتيب المستند .من الأمثلة عن هذه النماذج XPath مستند الـ XML هو الوحدة الأساسية للتخزين المنطقي لها تماما كما نجد في قواعد البيانات العلائقية أن السطر هو الوحدة الأساسية للتخزين المنطقي . لا تحتاج لنموذج تخزين فيزيائي مخصص مثلا يمكن أن تبنى على قاعدة بيانات علائقية أو أن تخزن في ملفات مفهرسة ومضغوطة. بنية قواعد البيانات Native XML: يوجد نوعين من قواعد البيانات Native XML وفقا للبنية وهما text-based و model-based • Text-based : هي قواعد البيانات التي تخزن الــ XML كنص وذلك يمكن أن يكون ملف في نظام الملفات أو BLOB في قواعد البيانات العلائقية أو نمط تخزين نصي خاص (من المهم أن نلحظ أن قواعد البيانات التي أضافت دعم للــ XML من خلال CLOB Character Large Object تمثل قواعد بيانات XML أصلية ) من المعروف أن قواعد البيانات text-based native XML هي عبارة عن فهارس تسمح لمحرك الاستعلام أن يقفز بسهولة إلى أي نقطة من المستند مما يعطي هذه القواعد سرعة هائلة عند استرجاع المستندات أو أجزاء منها ويعود السبب في ذلك إلى وجود فهرس وحيد (index lookup) و وضع رأس القرص مرة واحدة وذلك بسبب أن الأجزاء الضرورية من المستند تخزن على بايتات متجاورة من القرص وبالتالي يتم استرجاع المستند أو أجزاء منه بعملية قراءة واحدة على عكس ما يتم في قواعد البيانات العلائقية أو بعض قواعد بيانات XML الأصلية من النمط model-based حيث يتم تجميع المستند من أجزاء مما يتطلب فهارس (index lookup) عديدة وكذلك عمليات قراءة متعددة. قواعد بيانات XML الأصلية text-based مشابهة لقواعد البيانات الهيكلية (hierarchical) حيث كل منهما تفوق قواعد البيانات العلائقية في استرجاع البيانات وفقا لهيكلية معرفة مسبقا ولكنهما يمكن أن تواجها مشاكل في الأداء عند استرجاع البيانات بصيغ أخرى مثل عكس الهيكلية أو استرجاع جزء منها على الرغم من أن هذا الأمر غير مثبت بعد إلا أن قواعد البيانات العلائقية تسمح لكل الاستعلامات بنفس درجة التعقيد أن تنفذ بنفس الزمن . • Model-based : بدلا من تخزين مستند الـ XML كنص فإنه يتم بناء object model داخلي للمستند وتخزين هذا الــ model , كيفية تخزين هذا النموذج (model) تعتمد على قاعدة البيانات . بعض قواعد البيانات تخزن الــ model في قاعدة بيانات علائقية أو غرضية التوجه مثلا تخزين الـ DOM في قاعدة بيانات علائقية ينتج جداول مثل : Elements, Attributes, PCDATA, Entities, EntityReferences قواعد أخرى تستخدم أنماط تخزين خاصة بها. قواعد بيانات model-based native XML المبنية على قواعد بيانات أخرى لها أداء مشابه لتلك القواعد . أما قواعد بيانات model-based native XML التي تستخدم أنماط تخزين خاصة بها فأداؤها مشابه لــ text-based عند استرجاع البيانات بنفس الترتيب الذي خزنت به وذلك لأنها تستخدم مؤشرات فيزيائية بين العقد (text-based أسرع عند استرجاع المستندات كنص أما model-based فهي أسرع عند استرجاع المستند كأشجار DOM )و بأسلوب مشابه للــ text-based فإن الـــ model-based تواجه مشاكل عند محاولة استرجاع البيانات بترتيب مختلف عن الترتيب الذي خزنت فيه . >>>>يتبع,, مميزات ,,,منتجات,,,, اخواني ,,,,, هنا بدأت مشاركتي تأخذ المنحى العلمي البحثي,,, ماأذكره عبارة عن دراستي لمجموعة من الكتب ومقالات البحث العلمية في هذا المجال,,, وعلى هذا فهي تحتمل الخطأ والصواب,,, وللامانة أنا ساقوم بذكر المراجع المعتمدة والله ولي التوفيق,,, السلام عليكم
  9. جزاك الله خيرا,,,,,جاري الاستفادة
  10. XPath

    أرجو من المشرفين تثبيت موضوع XML و َْXQuery و XPath,,,,,لكي لاتضيع المعلومة على زوار المنتدى وتصبح قيد الارشيف والاهمال ,,,ولامر متروووك لقيادتكم الجكيمة,,
  11. هل ماتت جافا فعلا ؟

    بالفعل استحواذ اوركل عليها,,,,,أثار الجدال
  12. XPath

    السلام عليكم,,,, الهدف الحقيقي لطرحي هذا الموضوع هو مقالة أضفتها مؤخرا تتحدث عن XQuery وقد \كرت ضمنها الXPath من دون أن أتطرق لها ولو بشكل موجز ,,, بعد اغفالي هذا أحببت أن اعوض هذا الاغفال بمقاصلة قصيرة منفردة,,, وقبل البدء بها سوف اضع لكم اخواني رابط موضوع ال XQuery ورابط موضوع ال Xml لتكون في نهاية مقالي هذا السلسلة اكتملت,,, والترتيب كالتالي : XML XPATH XQUERY رابط موضوع ْْXML رابط موضوع XQUery لنبدأ على بركة الله ,,,, XPath هي لغة لإيجاد المعلومات في مستندات الـ XML XPath Syntax الـ XPath تستخدم Path Expression للوصول إلى عقد في مستند الـ XML . لشرح قواعد الـ XPath سنستخدم مستند الـ XML التالي : <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> من أهم الـPath Expression المستخدمة للوصول إلى عقد معينة: Expression Description nodename اختيار كل العقد الأبناء للعقدة المسماة / الاختيار يبدأ من عقدة الجذر // اختيار العقد بدءاً من العقدة المطابقة الحالية بغض النظر عن مكان وجودها في المستند . اختيار العقدة الحالية (نقطة) .. اختيار العقدة الأب للعقدة الحالية (نقطتين) @ اختيار خاصية لنطبق هذه التعابير على المستند السابق : Path Expression Result bookstore كل العقد الأبناء للعنصر bookstore /bookstore العنصر الجذر bookstore Note: If the path starts with a slash ( / ) it always represents an absolute path to an element! bookstore/book كل العناصر book والتي تمثل أبناء الـ bookstore //book كل العناصر book بغض النظر عن أماكن وجودها في المستند bookstore//book كل العناصر book والتي تمثل descendant للعنصر bookstore بغض النظر عن المستوى الموجودة فيه العناصر //@lang كل الخصائص lang لتحديد عقدة محددة نريد الوصول إليها نستخدم الـ Predicates , في الجدول التالي نعرض أهم التعابير التي نستخدم فيها الـ predicates : Path Expression Result /bookstore/book[1] أول عنصر book والذي يمثل ابن للعنصر bookstore Note: IE5 and later has implemented that [0] should be the first node, but according to the W3C standard it should have been [1]!! /bookstore/book[last()] اّخر عنصر book والذي يمثل ابن للعنصر bookstore /bookstore/book[last()-1] العنصر book قبل الأخير والذي يمثل ابن للعنصر bookstore /bookstore/book[position()<3] أول عنصرين book واللذين يمثلان أبناء للعنصر bookstore //title[@lang] كل العناصر title والتي تملك الخاصية lang //title[@lang='eng'] كل العناصر title والتي تملك الخاصية lang بحيث هذه الخاصية لها القيمة 'eng' /bookstore/book[price>35.00] كل العناصر book للعنصر bookstore والتي تملك عنصر Price وقيمته أكبر من 35.00 /bookstore/book[price>35.00]/title كل العناصرtitle للعنصر book للعنصر bookstore والتي تملك عنصر Priceوقيمته أكبر من 35.00 الجدول التالي يبين كيف يمكن استخدام الـ wildcard في الاستعلام من مستند الـ XML Wildcard Description * يطابق أي عقدة @* يطابق أي عقدة من نوع خاصية node() يطابق أي عقدة من أي نوع ولتطبيق ما سبق على المثال : Path Expression Result /bookstore/* كل العقد الأبناء للعنصر bookstore //* كل العناصر في المستند //title[@*] كل العناصر title والتي تملك أي خاصية كما استخدام | للوصول إلى مسارات متعددة : Path Expression Result //book/title | //book/price كل العناصر title و price للعنصر book //title | //price كل العناصر title و price في المستند /bookstore/book/title | //price كل العناصر title للعنصر book للعنصر bookstore وكل العناصر price في المستند [/ code] XPath Axes تعرف مجموعة من العقد بالنسبة إلى العقدة الحالية [code]AxisName Result ancestor كل العقد التي تمثل سلف للعقدة الحالية (أب , جد ...) ancestor-or-self كل العقد التي تمثل سلف للعقدة الحالية (أب , جد ...) بالإضافة للعقدة الحالية attribute كل الخصائص للعقدة الحالية child كل أبناء العقدة الحالية descendant كل العقدة المنحدرة من العقدة الحالية (ابن ,حفيد ...) descendant-or-self كل العقدة المنحدرة من العقدة الحالية (ابن ,حفيد ...) بالإضافة للعقدة الحالية following كل شيء يلي وسم الإغلاق للعقدة الحالية في المستند following-sibling كل العقد الأخوة والتي تأتي بعد العقدة الحالية namespace كل العقد namespace للعقدة الحالية parent العقدة الأب للعقدة الحالية preceding كل شيء قبل وسم الفتح للعقدة الحالية في المستند preceding-sibling كل العقد الأخوة والتي تأتي قبل العقدة الحالية self العقدة الحالية السلام عليكم,,,
  13. مكتبه اكود vb.net

    lمشكور اخي جار التحميل ولاستفادة,,,,
  14. XQuery

    أخواني M.B.O ,ali_exeسعدت بمروركم ,,,,بارك الله فيكم جميعا,,,
  15. XQuery

    السلام عليكم الـ XQuery بالنسبة للـ XML هي بمثابة الـ SQL لجداول قاعدة المعطيات الـ XQuery مصممة للاستعلام من بيانات الـ XML المخزنة ليس فقط في ملفات الـ XML بل قد تكون مخزنة في قاعدة معطيات,,, الـXQuery 1.0 والـ XPath 2.0 تشتركان بنفس الـ data model وتستخدمان نفس التوابع والعمليات بعض الأمثلة على كيفية استخدام الـ XQuery : بفرض لدينا مستند الـ XML التالي : <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> حتى نصل إلى محتويات المستند السابق نستخدم التابع doc() كالتالي: Doc("books.xml") للتنقل على العناصر نستخدم تعابير الـ XPath ,مثلا: Doc("books.xml")/bookstore/book/title ونتيجة الاستعلام هي : <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title> كما يمكننا استخدام الـ predicates : Doc("books.xml")/bookstore/book[price>40] ونتيجة الاستعلام هي : <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> كيفية الاستعلام من ملف الـ XML باستخدام FLOWER : FLOWER هي تجميع لأوائل الكلمات التالية: For ,Let ,Where ,Order by ,Return لنعد إلى المستند الذي استخدمناه في الأمثلة السابقة وليكن لدينا تعبير الـ Xpath التالي: doc("books.xml")/bookstore/book[price>30]/title تعبير الـ FLOWER المكافئ له هو: For $x in doc("books.xml")/bookstore/book Where $x/price>30 return $x/title ويمكن أن نستخدم الـ FLOWER لترتيب النتائج : For $x in doc("books.xml")/bookstore/book Where $x/price>30 Order by $x/title return $x/title قواعد الـ XQuery : • XQuery حساسة لحالة الأحرف • العناصر والخصائص في الـ XQuery هي متحولات ويجب أن تحقق قواعد التسمية في الـ XML • الـ string يمكن أن تكون بين إشارات تنصيص مفردة أو مزدوجة • يتم تعريف المتحولات باستخدام الـ $ مثلا $bookstore • التعليقات تعرف كالتالي (:XQuery Comment:) التعابير الشرطية : نعبر عنها باستخدام "If-Then-Else" , مثال : for $x in doc("books.xml")/bookstore/book return if ($x/@category="CHILDREN") then <child>{data($x/title)}</child> else <adult>{data($x/title)}</adult> الأقواس في شرط الـ if مطلوبة ويجب وجود الـ else ويمكن أن تكون فقط else() المقارنات في الـ XQuery : يمكن استخدام : =, !=, <, <=, >, >= أو استخدام : eq, ne, lt, le, gt, ge الفرق بينهما : $bookstore//book/@q > 10 هذا التعبير يكون true إذا كانت أي خاصية q تحقق الشرط $bookstore//book/@q gt 10 التعبير السابق يعيد true فقط إذا كانت خاصية واحدة q تحقق الشرط فيمايلي نشرح من خلال الأمثلة قواعد استخدام تعابير الـ FLOWER : • عبارة for : for $x in (1 to 5) return <test>{$x}</test> والنتيجة هي : <test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test> ويمكن استخدام الكلمة المحجوزة at لعد النتائج ,مثلا: for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book> والنتيجة هي: <book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book> ويمكن أن نستخدم تعبير in عدة مرات في عبارة الـ for ,مثلا: for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test> والنتيجة هي: <test>x=10 and y=100</test> <test>x=10 and y=200</test> <test>x=20 and y=100</test> <test>x=20 and y=200</test> • عبارة let :وتستخدم لإسناد قيمة لمتحول ما let $x := (1 to 5) return <test>{$x}</test> والنتيجة هي : <test>1 2 3 4 5</test> • عبارة where : وتستخدم لوضع شرط معين على النتيجة where $x/price>30 and $x/price<100 • عبارة order by : وتستخدم لترتيب النتيجة for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title والنتيجة هي: <title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title> • عبارة return : تحدد النتيجة المعادة (المراد إعادتها ) for $x in doc("books.xml")/bookstore/book return $x/title والنتيجة هي : <title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title> توابع الـ XQuery : كما قلنا سابقا الـ XQuery 1.0 والـ XPath 2.0 تشتركان بنفس التوابع يمكن استخدام التابع في أي مكان يظهر فيه التعبير وفيمايلي بعض الأمثلة : يمكن استخدام التابع ضمن العنصر: <name>{uppercase($booktitle)}</name> أو ضمن الـ predicate : doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'] أو ضمن عبارة let : let $name := (substring($booktitle,1,4)) توابع الـ XQuery المعرفة من قبل المستخدم : لتعريف تابع نستخدم الصيغة التالية: declare function prefix:function_name($parameter AS datatype) AS returnDatatype { ...function code here... } عند تعريف التابع يجب أن نراعي ما يلي : • استخدام الكلمة المحجوزة declare function • يجب أن نحدد الـ prefix لاسم التابع • جسم التابع يجب أن يوضع بين قوسين مثال: declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?) AS xs:decimal? { let $disc := ($p * $d) div 100 return ($p - $disc) } أتمنى لكم كامل الافادة ,,,تسعدني أسئلتكم ومشاركاتكم أخواني والله ولي التوفيق السلام عليكم