XSD Karışık Boş Elemanlar

Boş kompleks elementler içeriği içermeyebilir, sadece özellikler içerebilir.

Kompleks boş element:

Boş bir XML elementi:

<product prodid="1345" />

Yukarıdaki "product" elementi hiçbir içerime sahip değil. Boş bir tür tanımlamak için, sadece element içeriği içerebilecek bir tür beyan etmek zorundayız, ancak aslında hiçbir element beyan etmeyeceğiz, örneğin şöyle:

<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>

Yukarıdaki örnekte, bir kompleks içeriğe sahip bir kompleks türü tanımladık. comprehensiveContent elementi verdiğimiz sinyal, bir kompleks türünün içeriğini sınırlamayı veya genişletmeyi planladığımızı belirtirken, integer sınırlama ise bir özellik beyan eder ancak herhangi bir element içeriği eklemeyi içermez.

Ancak, bu "product" elementini daha sıkı bir şekilde beyan da edebilirsiniz:

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

veya bir complexType element için bir ad verebilirsiniz, ardından "product" elementine bir type özelliği ayarlayın ve bu complexType adını (bu yöntemle, birçok element aynı kompleks türüne atıfta bulunabilir):

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