Σύνθετα στοιχεία XSD

Το συνδυασμένο στοιχείο περιέχει άλλα στοιχεία και/ή ιδιότητες.

Τι είναι το συνδυασμένο στοιχείο;

Το συνδυασμένο στοιχείο αναφέρεται σε στοιχεία XML που περιέχουν άλλα στοιχεία και/ή ιδιότητες.

Υπάρχουν τέσσερα τύποι συνδυασμένων στοιχείων:

  • Κενά στοιχεία
  • Στοιχεία που περιέχουν άλλα στοιχεία
  • Στοιχεία που περιέχουν μόνο κείμενο
  • Στοιχεία που περιέχουν στοιχεία και κείμενο

Σημείωση:Τα παραπάνω στοιχεία μπορούν να περιέχουν ιδιότητες!

Παράδειγμα συνδυασμένου στοιχείου

Το συνδυασμένο στοιχείο, "product", είναι κενό:

<product pid="1345"/>

Το συνδυασμένο στοιχείο, "employee", περιέχει μόνο άλλα στοιχεία:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Το συνδυασμένο στοιχείο, "food", περιέχει μόνο κείμενο:

<food type="dessert">Ice cream</food>

Το συνδυασμένο στοιχείο, "description", περιέχει στοιχεία και κείμενο:

<description>
Αυτό συνέβη στις <date lang="norwegian">03.03.99</date> ....
</description>

Πώς ορίζεται ένας συνδυασμένος στοιχείο;

Δείτε αυτό το συνδυασμένο στοιχείο XML, "employee", το οποίο περιέχει μόνο άλλα στοιχεία:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Στο XML Schema, έχουμε δύο τρόπους να ορίσουμε συνδυασμένα στοιχεία:

1. Με την ονομασία αυτού του στοιχείου, μπορείτε να δηλώσετε άμεσα το στοιχείο "employee", όπως αυτό:

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Αν χρησιμοποιήσετε τον παραπάνω περιγραφόμενο τρόπο, τότε μόνο το "employee" μπορεί να χρησιμοποιήσει τον καθορισμένο τύπο συνδυασμένου στοιχείου. Προσέξτε ότι τα υποστοιχεία, "firstname" και "lastname", περιλαμβάνονται μέσα στο δείκτη <sequence>. Αυτό σημαίνει ότι τα υποστοιχεία πρέπει να εμφανίζονται στην τάξη που αναφέρονται. Δείκτες XSD Αυτό το κεφάλαιο μάθετε περισσότερα για τους δείκτες.

2. Ο τύπος στοιχείου "employee" μπορεί να χρησιμοποιήσει την ιδιότητα type, η οποία αναφέρεται στο όνομα του τύπου συνδυασμένου στοιχείου που χρησιμοποιείται:

<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Αν χρησιμοποιήσετε τον παραπάνω περιγραφόμενο τρόπο, τότε διάφορα στοιχεία μπορούν να χρησιμοποιήσουν τον ίδιο τύπο συνδυασμένου στοιχείου, όπως αυτό:

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Επίσης, μπορείτε να προσθέσετε στοιχεία πάνω σε υπάρχοντα συνδυασμένα στοιχεία, βασισμένα σε κάποιο συνδυασμένο στοιχείο, όπως αυτό:

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>