عناصر ترکیبی خالی 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>

در مثال بالا، ما یک نوع ترکیبی با محتوای ترکیبی تعریف کرده‌ایم. علامت داده شده توسط عنصر completeContent نشان‌دهنده این است که قصد داریم محتوای مدل ترکیبی یک نوع ترکیبی را محدود یا گسترش دهیم، و محدودیت integer یک ویژگی را اعلام می‌کند اما هیچ عنصر محتوایی را معرفی نمی‌کند.

اما، می‌توان این عنصر "product" را به صورت更加 خلاصه‌ای بیان کرد:

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

یا می‌توانید برای یک عنصر complexType یک نام بگذارید و سپس برای عنصر "product" یک ویژگی type تنظیم کنید و این نام complexType را به آن ارجاع دهید (با استفاده از این روش، چندین عنصر می‌توانند به یک نوع ترکیبی مشترک اشاره کنند):

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