سؤال

هل هناك أي إطار عمل للاستعلام عن بناء جملة XML SQL، لقد سئمت بشدة من التكرار عبر قوائم العقد.


أم أن هذا مجرد تفكير بالتمني (إن لم يكن غبيًا) وبالتأكيد غير ممكن لأن XML ليست قاعدة بيانات علائقية؟

هل كانت مفيدة؟

المحلول

كسكيوري و اكس باث...XQuery هو أكثر ما تبحث عنه إذا كانت بنية SQL مرغوبة.

نصائح أخرى

يمكنك تجربة LINQ إلى XML، ولكنها ليست لغة محايدة.

يوفر .Net Framework LINQ للقيام بذلك أو يمكنك استخدام مساحة الاسم .Net System.Data لتحميل البيانات من ملفات XML.

يمكنك أيضًا إنشاء استعلامات تحتوي على روابط بين الجداول، وما إلى ذلك.

على سبيل المثال، يوفر System.Data.DataTable ReadXml() طريقة.

كسكيوري هي لغة وظيفية الأقرب إلى SQL. XPath عبارة عن تدوين لتحديد موقع العقدة داخل المستند الذي يتم استخدامه كجزء من XSLT وXQuery.

قواعد بيانات XML مثل مارك لوجيك تعمل كمحركات XQuery لبيانات XML، مثلما تعمل قواعد البيانات العلائقية كمحركات SQL للبيانات العلائقية.

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

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

يدعم SQL Server 2005 أكس إم إل دي إم إل على أنها أصلية xml نوع البيانات.

XQuery هو بالتأكيد الطريق إلى الأمام.هذا هو ما تستخدمه قواعد بيانات XML مثل يخرج و مارك لوجيك.

يوجد في عالم Java عدة حلول لتشغيل XQuery على الملفات المسطحة، أبرزها سكسوني

بالنسبة لـ .NET، لا يوجد الكثير متاحًا.لدى Microsoft مكتبة XQuery، على الرغم من أنها تم سحبها من .NET 2 ولم تظهر مرة أخرى مطلقًا. اكس كيو شارب هو بديل .NET أصلي، على الرغم من أنه تم إصدار إصدار سطر أوامر فقط في الوقت الحالي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top