سؤال

لدي تسلسل XML التالي

<property name="a"  value="x" />
<property name="b"  value="xx" />

اريد الحد "a" إلى قائمة القيم ، مثل [x ، y ، z] و "b" إلى قائمة أخرى مثل [xx ، yy ، zz

هل من الممكن القيام بذلك باستخدام XSD ، وإذا كان ذلك؟

إذا لم يكن هذا ممكنًا ، فكيف تنصح بتغيير تنسيق XML من أجل جعله جاهزًا للتحقق من صحة XSD؟ (لدي أكثر من اثنين property أزواج الاسم/القيمة)

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

المحلول

يقوم XSD بإنجاز ما تريد (التحقق الشرطي) باستخدام التعشيش.

لذا ، على الرغم من أنه لا يمكنك استخدام XSD لجعل قيم سمة واحدة مشروطة بقيم أخرى (AS يقول فيودور سويكين في إجابته) ، يمكنك استخدام XSD لجعل قيم السمة مشروطة على العنصر نفسه:

<propertyNameA value="x"/>
<propertyNameB value="xx"/>

في هذه الحالة ، تكون كل خاصية عنصرها الخاص ، وكل سمة "قيمة" لها تعدادها الخاص.

إنه يمنحك فائدة إضافية تتمثل في التمكن من تقييد عدد كل خاصية مسماة يمكنك الحصول عليها ، ولكن العيب هو أنك تحتاج إلى إدارة المزيد من العناصر.

اعتمادًا على تفاصيل موقفك ، قد يكون استخدام XSD بهذه الطريقة هو الخيار الأفضل ، أو قد يكون من الأفضل تنفيذ نظام آخر يمكنه القيام بالاسم/التحقق من القيمة التي تحتاجها.

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