XSD - Προσαρμοστικά

Όλες οι ιδιότητες δηλώνονται ως απλοί τύποι.

Τι είναι η ιδιότητα;

Τα απλά στοιχεία δεν μπορούν να έχουν ιδιότητες. Αν ένα στοιχείο έχει ιδιότητες, θα θεωρηθεί ως συνδυασμένος τύπος. Ωστόσο, η ιδιότητα本身 πάντα δηλώνεται ως απλός τύπος.

Πώς να δηλώσετε μια ιδιότητα;

Η γραμματική ορισμού της ιδιότητας είναι:

<xs:attribute name="xxx" type="yyy"/>

Σε αυτό το σημείο, xxx αναφέρεται στο όνομα της ιδιότητας, yyy ορίζει τον τύπο δεδομένων της ιδιότητας. Το XML Schema έχει πολλά εσωτερικά τύπους δεδομένων.

Οι πιο συχνές τύποι είναι:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

Παράδειγμα

Αυτό είναι ένα στοιχείο XML με ιδιότητες:

<lastname lang="EN">Smith</lastname>

Αυτό είναι η αντίστοιχη οριστική περιγραφή της ιδιότητας:

<xs:attribute name="lang" type="xs:string"/>

Προεπιλεγμένες και σταθερές τιμές ιδιοτήτων

Οι ιδιότητες μπορούν να έχουν ορισμένη προεπιλεγμένη τιμή ή σταθερή τιμή.

Όταν δεν ορίζεται άλλη τιμή, η προεπιλεγμένη τιμή θα κατανέμεται αυτόματα στον τύπο του στοιχείου.

Στο παρακάτω παράδειγμα, η προεπιλεγμένη τιμή είναι "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Η σταθερή τιμή θα κατανέμεται αυτόματα στον τύπο του στοιχείου και δεν μπορείτε να ορίσετε άλλη τιμή.

Στο παρακάτω παράδειγμα, η σταθερή τιμή είναι "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Προαιρετικές και υποχρεωτικές ιδιότητες

Από προεπιλογή, η ιδιότητα είναι προαιρετική. Για να ορίσετε την ιδιότητα ως υποχρεωτική, χρησιμοποιήστε την ιδιότητα "use":

<xs:attribute name="lang" type="xs:string" use="required"/>

Περιορισμός περιεχομένου

Όταν το στοιχείο XML ή η ιδιότητα έχει ορισμένο τύπο δεδομένων, προστίθεται περιορισμός στο περιεχόμενό τους.

Εάν ο τύπος του στοιχείου XML είναι "xs:date" και το περιεχόμενό του είναι μια αλφαριθμητική αλυσίδα όπως "Hello World", το στοιχείο δεν θα επαληθευτεί.

Με το XML schema, μπορείτε επίσης να προσθέσετε τους δικούς σας περιορισμούς στα στοιχεία και τις ιδιότητές σας XML. Αυτοί οι περιορισμοί ονομάζονται facet (σημειώσεις: σημαίνει(πολυεδρικό) όψη, μπορεί να μεταφραστεί ως περιοριστική όψη). Θα μάθετε περισσότερα για το facet στο επόμενο κεφάλαιο.