سؤال

لقد حاولت القراءة http://www.w3.org/tr/xml-infoset/ و ال دخول ويكيبيديا. لكن بصراحة ما زلت غير متأكد من الفرق.

الإقتباس :

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

من دخول ويكيبيديا يبدو أنه غير منطقي. كيف يمكن لمستند غير صالح أن يكون له أي دلالات ، وبالتالي كيف يمكن أن يكون "معلومات"؟

ما هذا "infoset"

تم تشكيلها جيدًا وتلبي مساحة الاسم المقيدة

XML لديه؟ وبأي طريقة مفيدة في حد ذاتها. بمعنى آخر لماذا ، من الناحية الدلالية ، ضرورية لتحديد XML Infoset؟ هل هناك أي معلومات لا يمكن تمثيلها في XML؟ إذا كان الأمر كذلك ، فبإمكاني أن أرى مجموعة الحد من Infoset XML ، ولكن إذا لم يكن بالتأكيد ، فإن XML Infoset لا معنى له مثل "معلومات" المصطلح؟

شكرا لك على الإجابات المثيرة للاهتمام: ما زلت لا أستطيع فهم سبب وجود أي غرض من XML INFOSET بدلاً من مصطلح Infoset. لكنكم أعطوني الإجابة المباشرة على السؤال.

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

المحلول

طريقة مفيدة للتفكير في التمييز بين نص XML و XML Infoset هي النظر Infoset السريع. هذا هو تمثيل ثنائي لـ XML Infoset.

لذلك لديك "Infoset" مجردة وهو نموذج مفاهيمي يمثل بيانات XML (العقد ، والعناصر ، والسمات ، إلخ). يمكن تمثيل ذلك جسديًا كدخل XML نص ، أو كدفق سريع. كلاهما يمثل نفس البيانات ، ولكن بطرق مختلفة جذريًا.

نصائح أخرى

XML ليس نصًا. XML "هو" XML Infoset. يمكن بعد ذلك تسلسل هذا إلى نص في مستند XML ، ولكن هذا هو الواقع هو الواقع.

قد توجد infoset في الذاكرة كشجرة دوم ، على سبيل المثال. إنه موجود في الذاكرة كتطبيق لنموذج كائن مجردة.

ماذا لو قمت بتسلسلها على أنها UTF-8 ثم كـ UTF-16. من المحتمل أن تكون النتائج مجموعتين مختلفتين من البتات ، ولكن نفس infoset.

فكر أيضًا في أنه من المنطقي القيام بأشياء مثل تسلسل السلسلة. أنت لا ترغب في تسلسل "<" في منتصف عنصر XML. عليك أن تشفره أولاً. لماذا يجب عليك القيام بذلك إذا كان مجرد نص؟ إذا استخدمت DOM ، على سبيل المثال ، فستقول فقط element.innertext = "<" ؛ عند التسلسل ، سيتم تشفير "<" إلى "<". ومع ذلك فهي نفس Infoset.

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

تحرير: أنا جديد في هذا المجال من XML ، ولكن يبدو أن Infoset هو وصف "المستوى التجريدي" لأجزاء مستند XML ، بغض النظر عن التنفيذ الفني الفعلي - والذي يمكن أن يكون ، على سبيل المثال ، نموذج كائن المستند تطبيق.

XML Infoset هي مجموعة مجردة من المفاهيم مثل السمات والكيانات التي يمكن استخدامها لوصف مستند XML صالح. وفقًا للمواصفات ، "تتكون مجموعة معلومات وثيقة XML من عدد من عناصر المعلومات ؛ المعلومات التي يتم تعيينها لأي مستند XML الذي تم تشكيله جيدًا سيحتوي على عنصر معلومات مستند على الأقل وعدد آخر."

لمجرد أن مستند XML هو infoset لا يعني أنه يتوافق مع XSD وهو مستند XML صالح.

يرجى الاطلاع على هذا الرابط من MSDN.http://msdn.microsoft.com/en-us/library/aa468561.aspx

إنه تفسير جيد حقًا للمفاهيم ونأمل أن أوضح لك.

مثال جيد لقد جئت للتو في ديفيد تشابيل WCF PDF. هذه هي الطريقة التي تعمل بها عند استخدام TCP على سبيل المثال:

للسماح بالأداء الأمثل عندما يتم بناء كلا الطرفين في الاتصال على WCF ، فإن ترميز الأسلاك المستخدم في هذه الحالة هو إصدار ثنائي محسّن من الصابون. لا تزال الرسائل تتوافق مع بنية البيانات الخاصة برسالة الصابون ، التي يشار إليها باسم Infoset ، لكن تشفيرها يستخدم تمثيلًا ثنائيًا لهذا التنسيق الدنيوي بدلاً من تنسيق زاوية ونصًا قياسيًا لـ XML. سيكون باستخدام هذا الخيار منطقيًا للتواصل مع تطبيق عميل مركز الاتصال ، نظرًا لأنه مبني أيضًا على WCF ، والأداء مصدر قلق رائع.

XML هي لغة ، وبالتالي فإنها تحتوي على بناء جملة ، و XML Infoset لديها مواصفات لنموذج البيانات ، وهذا يرجع إلى أن التطبيقات تحتاج إلى حاجة إلى نموذج البيانات بدلاً من بناء الجملة ؛ يأتي XML قبل XML Infoset ؛ المرجع: اعتبارات البروتوكول للوصول إلى Web LinkBase

XML Infoset هو شرط حول كيفية تنظيم مستند XML التسلسلي.

يمكن أن يكون لـ XML المسلسل أشكالًا مختلفة ، مثل بعض التنسيق الثنائي (Infoset السريع) أو نص (الشكل الأكثر شعبية).

بشكل أساسي لتنسيق مستند XML (نص) ، يجب تحديد كل عنصر وسمة في مساحة الاسم المقابلة XSD.

هنا ستجد مثالاً.

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