سؤال

عندما كنت ترغب في التحقق من بلدي XML docuemnts ضد مخطط في جانب الخادم جافا, يمكنني استخدام المدمج في JRE Xerces تنفيذ javax.xml.التحقق من الصحة.المخطط.أنه يعمل بشكل جيد ولكن عند فشل التحقق من الصحة ، Xerces يعطي رسائل الخطأ التي هي قريبة جدا عديمة الفائدة ، على سبيل المثال:

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

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

لذا سؤالي هو هل استخدام وسيلة بديلة التحقق من صحة XML ضد المخطط أن يعطي أكثر فائدة الإخراج على التحقق من صحة الفشل ؟

يرجى ملاحظة أن هذا هو جانب الخادم جافا, لذا يرجى لا أقول "استخدام XML تجسس" أو ما شابه ذلك.

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

المحلول

في معالج التثبيت, يجب أن تتلقى SAXParseException مع تلك الرسالة ، وكذلك العمود رقم و رقم السطر في ملف XML.ليس هو القضية ؟

نصائح أخرى

نستخدم أوراكل XDK (XML مجموعة تطوير) والتي تشمل xmlparserv2.jar مع التحقق من صحة محلل و XSLT 2.0.ويستخدم JAXB API لذا يجب أن يكون لديك فقط لإضافة إلى classpath وتغيير الواردات.فإنه يلقي الأخطاء التي ليست مثالية, ولكن أود أن أقول أكثر سهولة يفهم من المثال الخاص بك.

xmlstarlet(xmlstar.sourceforge.net/) هي أدوات سطر الأوامر.هل يمكن تشغيله باستخدام وقت التشغيل.exec() معين xml (طالما xml في ملف).

نستخدم الخروع.

الخروع هو مفتوح المصدر ربط البيانات إطار جافا[tm].إنه أقصر طريق بين الكائنات Java, XML الوثائق و الجداول العلائقية.الخروع يوفر جافا إلى XML ملزمة ، جافا إلى SQL استمرار, وأكثر من ذلك.

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

alt text
(المصدر: oxygenxml.com)

بعد ربط المخطط الخاص بك سبيل المثال مستند XML محرر تسليط الضوء على المخالف مجال الوثيقة توفر لك مع وصف المخالفة.

بالإضافة إلى ذلك ، يمكنك استخدام محركات مختلفة لأداء التحقق من الصحة:

الأكسجين لديه المدمج في دعم ل:Xerces, LIBXML, XSV سكسونية SA ، MSXML4.0, MSXML .صافي SQC.

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