سؤال

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

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

المحلول

بعض نقاط القوة:

  • يمكنك التحقق من صحة بيانات XML مقابل XSD
  • يمكنك توفيرها بسهولة انكماش (مثل XSD) إلى الأطراف الأخرى التي يجب عليها إما إنشاء/استهلاك بيانات XML، دون وصفها حرفيًا
  • يمكن أن يكون لديك علاقة واحدة إلى عدة علاقات في مستويات متعددة في تمثيل بيانات XML
  • يمكن القول إن XML أكثر قابلية للقراءة من ملف CSV
  • XML مدعوم أصلاً بواسطة إطار عمل .net

على سبيل المثال لا الحصر من أعلى رأسي.

نصائح أخرى

وملفات .csv جيدة عندما تكون البيانات الخاص بك هو جدول صارم وأنت تعرف هيكلها. بمجرد البدء في إقامة علاقات بين مستويات مختلفة من البيانات الخاصة بك، أكس يميل إلى العمل بشكل أفضل لأن علاقات يمكن إجراء واضح (حتى من دون مخططات) فقط عن طريق التعشيش.

لقد أصبحت XML الافتراضي لكثير من فوائده أن الكثير من الناس الآخرين قد سبق ذكرها. لذا فإن السؤال يصبح حقا "عندما ولماذا هو أفضل من CSV XML؟".

وأشعر CSV يفضل XML في الحالات التالية: - كنت تقوم بتحميل البيانات جدولي بسيط - كنت في السيطرة على كل جيل واستهلاك ملف البيانات - ورقة العمل كبير

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

ولقد فعلت ذلك لاختبار تحميل سريع ~ 8000 يسجل كل منها 6 حقول النص. استغرق التحميل وتحليل XML ~ 8 ثوان. تحميل أخذت CSV أقل من 1 ثانية.

ومقدار الحمل XML يستحق ذلك في الكثير من الحالات، ولكن عندما النجوم محاذاة، CSV أكثر منطقية.

وCSV مفيد عندما يكون لديك مجرد سلسلة من القيم التي تتصل بعض قطعة من المعلومات وكنت أعلم أنك سوف تخزن دائما القيم لكل حقل.

وXML له الاستفادة من وجود بيانات واصفا النفس (العلامات) وجود التسلسل الهرمي - والتي تعطيك الكثير من المرونة في الطريقة التي تقوم بتخزين البيانات

هل يمكن أن يكون التسلسل الهرمي أكثر تعقيدا من ذلك بكثير، وغيرها، وهيكل مع XML مقابل CSV. ويقدم الكثير من المرونة.

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

و"حاولت تجربة ستيفن من زاوية مختلفة. ملأت وXP إكسل جدول مع عدد من رقم واحد، حفظه في كل XML وفي ملف نصي بفواصل (CSV). I ثم ضغطها على حد سواء مع برنامج لضغط الملفات ومن ثم افتتح كل من مع Excel. وإليك ما وجدته:

وكان ملف XML 840MB، وCSV 34MB - فرق 2500٪ المضغوطة، وكان ملف XML 2.5MB، وCSV 0.00015MB (150KB) - وهو 1670٪ الفرق.

ومثيرة بنفس القدر هو الوقت الذي استغرقه لإلغاء ضغط وتقديم الملفات كما جداول البيانات إكسل: استغرق نحو 20 دقيقة مع ملف XML. وCSV استغرق 1 دقيقة - فرق 2000٪ "

http://www.xml.com/pub/ و/ 2004/12/15 / deviant.html

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

اليومية WTF: XML مقابل CSV الاختيار هو واضح تساعدك على اتخاذ قرارك ؛)

يُفضل استخدام XML على CSV عندما تكون البيانات غير منظمة (مخطط غير معروف) وسيتم قراءتها بواسطة الإنسان.

يمكن القول، ما لم تحتوي البيانات على نص في الغالب، فإن ملف CSV مخصص أيضًا للاستهلاك البشري.

ومن المناسب أيضًا أن تكون بياناتك ثنائية أو ثلاثية الأبعاد.يعتبر ملف CSV هو الأكثر ملائمة للنص ثنائي الأبعاد، ونظرًا لإسهابه، فإن XML يعمل بشكل جيد مع البيانات ثلاثية الأبعاد.

"المعيارية" الكاملة لـ XML هي مبالغة، ولا ينبغي أن تؤخذ حرفيًا.يحتوي XML على مشكلات تقنية كبيرة والعديد من الحلول ليست أنيقة بشكل خاص، أو مفيدة في كثير من الحالات:

  1. ويستخدم النص لتحديد ترميز النص الخاص به (الدجاج والبيض؟)
  2. لا تعمل أي من لغات المخطط الأكثر شيوعًا لـ XML بشكل جيد.
  3. الطريقة القديمة والشائعة لإنشاء لغات الترميز باستخدام <tags> ليست مفيدة بشكل خاص كمعيار.
  4. يحاول XML دمج لغات ترميزية أكثر قوة بأثر رجعي، مثل اللغات المستندة إلى SGML، في نفسه، مما يؤدي إلى فوضى من الإرث غير المتوافق.
  5. لا يزال يتعين تحديد ما إذا كانت تسلسلات الهروب النصية بتنسيق XML يمكن أن تعمل في أي شيء غير الحالات البسيطة (على سبيل المثال.بيانات ودية).

لكي نكون واضحين، من المحتمل أن يكون XML هو الاختيار غير الصحيح لـ 90٪ من تبادل البيانات الذي يتم استخدامه حاليًا، نظرًا لأن هذه الاستخدامات تكسر بعض أو كل الافتراضات المذكورة أعلاه.

وبالإضافة إلى إجابات أخرى، يسمح XML لك تحديد أي حرف تعيين المستند في.

ولقد وجدت من أعظم مزايا XML أن تكون وظيفة تحليل والمصادقة الصارم الذي يخرج من بين مربع مع معظم المكتبات XML. إصرار على formedness جيدا ورسالة خطأ سهلة الفهم (س ع ص ليست مغلقة في خط س، عمود ص) هي مساعدة حقيقية مقارنة الصيد القيم مكسورة، أو سلوك غير معروف، بسبب وجود خطأ في ملف CSV.

وCSV هو أكثر خفيفة الوزن إذا كنت ترغب في تحريك الأمور منذ حوالي بشكل طبيعي 2 مرات أصغر من XML

وXML هو المعيار، ولن يكون ضرب من قبل الإصدار OS'es مختلفة من CSV

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

وأود أن أقول استخدام XML (وأو JSON) لأنه يوما ما أو شخص ما (مع الانفعال ومجموعة بندقية كبير) قد يكون للذهاب وجدت خطأ في البيانات CSV.

ولذا نعم، أنا أقول قراءة، لا ننسى أن نفكر في الرجل الآخر! انه قد يكون التفكير عنك.

وXML يوفر وسيلة لوضع علامات على البيانات الخاصة بك مع البيانات الوصفية (التي قدمتها أسماء العلامات وأسماء السمة)، في حين CSV لا. زوجان هذا مع القدرة على تحديد التسلسلات الهرمية تنظيما ويجعل XML أسهل للفهم عندما قدمت مع البيانات فقط، في حين CSV يتطلب أداة المرفقة أو وثيقة لوصف كيف يتم تفسير كل قيمة.

يمكنك التنقل بسهولة عبر بيانات XML حتى عندما تكون لديك بيانات معقدة.

تحقق من هذه الروابط:

ومرة أخرى واحد آخر لـ XML:ال X في XML لتقف على هxtensible (أعلم أنه ليس تذكيرًا حقًا :-P).وهذا يعني أنه بمساعدة آلية مساحة اسم XML، يمكنك ضم أي لغتين من لغات XML التي تريدها ودمجهما في نفس وثيقة.نظرًا لوجود "لغة" CSV واحدة فقط (بدون احتساب عدد لا يحصى من أنماط المحددات)، يمكن لـ XML التعامل مع الكثير من التعقيد، وذلك بطريقة معيارية.

ومع ذلك، هذه هي ميزة CSV:إذا كان لديك بالفعل بيانات جدولية، فغالبًا ما يكون بناء جملة XML مبالغًا فيه.

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

وSSMS يحب لاقتطاع CSV للمتعة.

والهيكلية والبشرية للقراءة، وأسهل للتعديل، والمصادقة، parsability، transformability، الكتابة، بمساحات والمكتبات قوية وراء ذلك، كلها من بين العديد من الأسباب.

وقبل كل شيء على الرغم من أنه هو المعيار.

  1. يوجد محللون وبواعث موجودون لها في كل لغة وقاعدة بيانات
  2. إنهم يتعاملون مع الترميز بالنسبة لي
  3. إنهم يتعاملون مع الهروب من أجلي

هذا كل ما يهمني.

بالتأكيد، هناك طريقة شبه قياسية للقيام بالهروب في ملف CSV (أي "الطريقة التي يقوم بها برنامج Excel")، وليس من الصعب تمامًا أن تكتب بنفسك، ولكنه يستغرق بعض الوقت.ومن ثم يتعين عليك الموافقة ضمنيًا على ترميز الأحرف خارج النطاق.ولكن بعد ذلك، ولأن الأمر بسيط للغاية، يحاول الأشخاص كتابته بأنفسهم، ودائمًا ما يخطئون في رقم 2 أو رقم 3.

يلتقي JSON أيضًا بالرقم 2 ورقم 3 ويقترب من تلبية الرقم 1.كما يمكن القول إنها أبسط، على الأقل بالنسبة للملفات غير المستندية.وليس من المستغرب أن أجد نفسي أستخدمه أكثر فأكثر، داخليًا وخارجيًا.

وأنا أفضل أيضا لأنه هو أكثر قابلية للقراءة الكثير.

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