سؤال

وأنا بناء المطابقة والتحقق من صحة محلل XML في C ++ ومحاولة لجعله خفيفة الوزن لاستخدامها في كمبيوتر الجيب.

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

وتؤخذ هذه الأحداث من قبل فئة مشتقة الذي يبني شجرة DOM من XML.

وشكوكي يظهر عند محاولة التعامل مع الكيانات أساسا (والتي يمكن أن تحتوي على العناصر بي وتعليقات داخل لو تعرف) وحلها.

لمثل، ويمكنني أن إنشاء فئة XMLEntityRef يشير إلى بعض XMLEntity محددة في بعض وجوه XMLDocType مثل محلل system.xml. NET يفعل.

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

وهكذا، سؤالي هو: ما هي الفائدة من تمرير إلى تطبيق كل كائن أكس كما يظهر والسماح لها (أو فئة المساعد) لبناء، على سبيل المثال، قيمة السمة الناتجة عن طريق وصل النصوص وحلها مراجع كيان؟

إذا أنا جعل استطلاع للرأي، الرجاء الإجابة: لا تحتاج التطبيق الخاص بك لمعرفة علامات CDATA وأين يوجدون في ملف xml، أو يمكنك جعل الامور سهلة ... كنت تريد أن تعرف قيمة المحتوى الكامل لل عنصر في سلسلة دون الحاجة إلى القلق حول كيفية بنى ذلك؟

مع أطيب التحيات، ماورو H. Leggieri

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

المحلول

<اقتباس فقرة>   

وأنا بناء المطابقة والتحقق من صحة محلل XML في C ++ ومحاولة لجعله خفيفة الوزن

وليس هناك شيء مثل خفيفة الوزن المطابقة (ناهيك عن التحقق) محلل. ليكون محلل المطابقة عليك أن تفهم كل الأشياء التي يمكن أن تذهب في مجموعة فرعية الخارجية DTD، وهو عمل نرلي حقا. فمن العار أن مواصفات XML انتهى وزنه إلى أسفل مع كل الخام SGML DTD، ولكن نحن عالقون معها الآن.

<اقتباس فقرة>   

لا يحتاج التطبيق الخاص بك لمعرفة علامات CDATA وأين يوجدون في ملف xml

وعادة لا. لا تتطلب DOM المستوى 3 LS أن أقسام CDATA أن تبقى على العقد CDATASection في DOM افتراضيا، ولكن تقريبا لا يكترث التطبيق.

و(إذا كان السؤال هو حول <م> بلدي تطبيق ثم نعم، لأن <م> بلدي التطبيق هو نظام النموذجيه التي تحافظ على أقسام CDATA حيث كانوا. ولكن لا يزال).

<اقتباس فقرة>   يبدو

وشكوكي عندما تحاول التعامل مع الكيانات أساسا

والله نعم. مراجع كيان هي كارثة. جعل دعم تنفيذ DOM لهم بطريقة غير متوافقة مع DOM المستوى 3 كور / LS جدا معقدة للغاية. تجنب إذا كان ذلك ممكنا.

نصائح أخرى

وعموما أكس ليست خفيفة الوزن. كنت أفضل حالا مع JSON.

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

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