باستخدام XSD للتحقق من صحة عدد العقدة
سؤال
لا أعتقد أن هذا ممكن ولكني اعتقدت أنني سأرميها هناك. بالنظر إلى هذا XML:
<people count="3">
<person>Bill</person>
<person>Joe</person>
<person>Susan</person>
</people>
هل من الممكن في XSD إجبار قيمة سمة Count على أن تكون العدد الصحيح للعناصر المحددة (في هذه الحالة ، عنصر الشخص)؟ من الواضح أن المثال أعلاه سيكون صحيحًا ولن يتحقق المثال أدناه:
<people count="5">
<person>Bill</person>
<person>Joe</person>
<person>Susan</person>
</people>
المحلول
أنا متأكد من أن XSD لا تستطيع فعل ذلك. ومع ذلك ، إذا كنت ترغب في ضمان أن سمة العد الخاصة بك هي العدد الحقيقي للعناصر أدناه ، فإن تشغيل ورقة أنماط XSLT على المستند يمكن أن يضمن أن هذا صحيح عن طريق تحديد القيمة:
<xsl:template match="people">
<xsl:attribute name="count">
<xsl:value-of select="count(person)"/>
</xsl:attibute>
<xsl:apply-templates/>
</xsl:template>
<!-- insert your identity template here -->
نصائح أخرى
يجب أن يوفر المحللون الذين ينفذون مواصفات XSD 1.1 وظيفة تأكيد يمكن استخدامها للتحقق من صحة محتوى XML مقابل عدد العقد الفرعية
لا تنتمي إلى StackOverflow