التحقق من صحة XML عرضة للمعلومات الثقافة؟

StackOverflow https://stackoverflow.com/questions/425341

  •  06-07-2019
  •  | 
  •  

سؤال

وقبل يوم من نهاية مشروع أنا واجهت مسألة معقدة: لدي خدمة وتف و 3 تطبيق العميل استخدامه. الخدمة لها ثلاث طرق، كل واحد تلقي وثيقة أكس كحجة والعودة مستند XML. هذه هي الطريقة التي يتواصلون بها. لقد حصلت على بعض الملفات XSD للتحقق من صحة ولدت وتلقى اللاعب أكس. حتى اليوم كل شيء سار على ما يرام. أنا عندي ويندوز البولندية واليوم أركض طلبي على النوافذ الانجليزية. وربما كنت أدرك هذا الآن، حصلت على رسالة من طلبي أن أكس تلقى غير صالح. راجعت ذلك، وقد كتب على قيمة المتغير الذي suppopsed أن تكون مزدوجة في أكس مع فترة (أو غيبوبة، أنا لا أتذكر ولكن كان لا يعمل). أنا أتساءل الآن - هل هناك أي حل جيد لهذه المشكلة؟ يعني أنا التحقق من صحة XML مثل هذا:

public bool IsValid(XDocument xmlDocument, Stream xsdContent)
        {
            XmlSchemaSet schemaSet = new XmlSchemaSet();
            XmlReader reader = XmlReader.Create(xsdContent);
            schemaSet.Add(string.Empty, reader);

            valid = true;
            xmlDocument.Validate(schemaSet, (sender, eventt) => { valid = false; e
= eventt; });

            return valid;
        }

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

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

المحلول

تحدد

XML مخطط المواصفات أن أرقام النقطة العائمة تتمثل باستخدام فترة وليس باستخدام فاصلة. لغة ليس لديها أي تأثير على ما هو XML صالح.

وأنت لا تتضمن خطأ الخاص بك. نأمل أن يشكو أن هناك فاصلة في عدد.

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