XSD - كيف يمكنني التأكد من وجود عنصر معين بسمة معينة؟

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

  •  08-07-2019
  •  | 
  •  

سؤال

أحاول إضافة التحقق الإضافي إلى jdpl ملفات تعريف العملية باستخدام XSD.

لدينا بعض القواعد التي نريد إضافتها؛ولكن الشيء الذي يسبب لي المشاكل هو أنه يجب أن يكون هناك عنصر "عقدة" واحد بسمة "الاسم" الخاصة به = "مشكلة".

لذلك هذا صحيح:

<process-definition name='sample'>
    <node name="Problem">
    </node>
    <node name="Do Work">
    </node>
</process-definition>

وهذا ليس كذلك

<process-definition name='sample'>
    <node name="Do Work">
    </node>
</process-definition>

لذا، لتلخيص، القواعد التي أحتاج إلى تطبيقها هي

  • سمة العقدة التي لها قيمة "مشكلة"
  • وجود عقدة واحدة بالاسم = "مشكلة"
  • السماح بأي عدد من العقد بأسماء أخرى

أي أفكار هناك؟

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

المحلول

آسف، هذا غير ممكن مع XSD.

نظرًا لأسباب تتعلق بالأداء، تم تصميم XML-Schema بحيث لا يتطلع أبدًا إلى الأمام ولا ينظر إلى الوراء أبدًا إلى ما هو أبعد من العقدة الحالية.وهذا يعني أنه يجب دائمًا تحديد مكان وجود أداة التحقق من الصحة في شجرة المخطط.وهذا يجعل متطلبات مثل هذه مستحيلة التحديد باستخدام XSD.

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