عناصر مركبة فارغة XSD

لا يمكن أن يحتوي العنصر المركب الفارغ على محتوى، بل يمكن أن يحتوي فقط على خصائص.

عنصر مركب فارغ:

عنصر XML فارغ:

<product prodid="1345" />

لا يحتوي العنصر "product" هذا على أي محتوى. من أجل تعريف نوع لا يحتوي على محتوى، يجب علينا إعلان نوع يمكنه أن يحتوي فقط على عناصر، ولكننا لن نُعلن أي عناصر، مثل هذا:

<xs:element name="product">
  <xs:complexType>
    <xs:complexContent>
      <xs:restriction base="xs:integer">
        <xs:attribute name="prodid" type="xs:positiveInteger"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

في المثال السابق، قمنا بتعريف نوع معقد يحتوي على محتوى مركب. يُعطي علامة "complexContent" إشارة إلى أننا نعزم على تحديد أو توسيع نموذج محتوى نوع معقد، بينما يُعلن المحدد "integer" عن خاصية لكنه لا يُدخل أي محتوى عنصر.

لكن، يمكن أيضًا التعبير عن عنصر "product" هذا بشكل أكثر ت密度ًا:

<xs:element name="product">
  <xs:complexType>
    <xs:attribute name="prodid" type="xs:positiveInteger"/>
  </xs:complexType>
</xs:element>

أو يمكنك تسمية عنصر complexType، ثم تعيين نوع "product" الخاص بالعنصر وإشارة إلى هذا complexType (باستخدام هذا الأسلوب، يمكن لمجموعة من العناصر مراجعة نفس النوع المركب):

<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
  <xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>