سؤال

لدي المخطط التالي ، الذي أستخدمه للتأكد من أن الشخص PhoneNumber و PhoneNumberType (المنزل ، العمل ، وما إلى ذلك) ليس أطول من 10 أحرف. ومع ذلك ، أريد تحسين هذا المخطط PhoneNumberType غير مطلوب إذا أ PhoneNumber لم يتم توفيره ، ولكن مطلوب إذا كان PhoneNumber متوفر. هل هناك طريقة للقيام بذلك في مخطط XML 1.0؟

أدرك أن هذا يمكن إنجازه في مخطط XML 1.1 باستخدام <xs:assert/>, ، لكن لسوء الحظ أنا عالق مع Schema XML 1.0.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PhoneNumber">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="PhoneNumberType">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xsd:schema>

نصائح أخرى

يبدو لي أن هذه علاقة "لها".

إذا كان لديك عنصر عقيد ، فيجب أن يكون له خاصية من النوع PhonEnumberType. بدلاً من العبث بالتحقق من التحقق من صحة والقيود ، أود أن أقترح عليك تحويل الصوتية إلى عنصر معقد وجعل خاصية مطلوبة لها.

قد يكون متأخراً للغاية ، ولكن يمكنك وضعها في مجموعة مثل هذه

<xs:group name="group">
<xs:sequence>
    <xs:element ref="PhoneNumber"/>
    <xs:element ref="PhoneNymberType" />
</xs:sequence>

وجعل هذه المجموعة مطلوبة أم لا

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