التحقق من صحة مجموعات مختلفة من السمات المطلوبة في مخطط XML

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

سؤال

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

مثال 1:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <element firstName="something"/> <!--required -->
    <element lastName="something"/> <!-- required -->
 <element phoneNumber="something"/> <!-- not required -->
<root>

مثال 2:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <element firstName="something"/> <!-- not required -->
    <element lastName="something"/> <!-- required -->
 <element phoneNumber="something"/> <!-- required -->
<root>

هل يمكن تحقيق التحقق من صحة XSD؟

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

المحلول

ريك ،

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

لذا ، بدلاً من وجود Schema1 و Schema2 التي تتكرر لبعضها البعض باستثناء الجزء مختلف ، لديك Schema1 و Schema2 يتضمنان فقط القيود المختلفة ، وكلاهما يستورد مخططًا شائعًا يحدد القيود المشتركة.

مثال على كيفية القيام بذلك هنا.

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

العيب هو أن المخططات تصبح أكثر صعوبة على البشر متابعة ، لأن التعاريف تنقسم بين الملفات المختلفة.

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