كيفية التحقق من سمات XML باستخدام تعداد XSD؟
-
27-09-2019 - |
سؤال
لدي تسلسل 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 بهذه الطريقة هو الخيار الأفضل ، أو قد يكون من الأفضل تنفيذ نظام آخر يمكنه القيام بالاسم/التحقق من القيمة التي تحتاجها.