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

در مثال بالا، ما یک نوع پیچیده با محتوای ترکیبی تعریف کرده‌ایم. علامت‌های داده شده توسط عنصر contentComplexType نشان می‌دهد که قصد داریم محتوای مدل نوع پیچیده را محدود یا گسترش دهیم، در حالی که محدودیت 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>