Στοιχείο <any> XSD

Το στοιχείο <any> μας δίνει τη δυνατότητα να επεκτείνουμε το XML έγγραφο με στοιχεία που δεν καθορίζονται από το schema!

Το στοιχείο <any>

Το στοιχείο <any> μας δίνει τη δυνατότητα να επεκτείνουμε το XML έγγραφο με στοιχεία που δεν καθορίζονται από το schema!

Ακολουθεί ένα παράδειγμα που αναφέρεται σε ένα κομμάτι του XML schema με το όνομα "family.xsd". Αυτό το κομμάτι δείχνει μια δήλωση για το στοιχείο "person". Χρησιμοποιώντας το στοιχείο <any>, μπορούμε να επεκτείνουμε το περιεχόμενο του "person" με οποιοδήποτε στοιχείο (μετά το <lastname>):

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
      <xs:any minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Τώρα, ελπίζουμε να χρησιμοποιήσουμε το στοιχείο "children" για να επεκτείνουμε το στοιχείο "person". Σε αυτή την περίπτωση μπορούμε να το κάνουμε αυτό, ακόμα και αν ο δημιουργός αυτού του schema δεν έχει δηλώσει καμία στοιχεία "children".

Δείτε αυτό το αρχείο schema, ονομαζόμενο "children.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.com"
elementFormDefault="qualified">
<xs:element name="children">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="childname" type="xs:string"
      maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

Ο παρακάτω αυτός ο XML αρχείο (ονομαζόμενος "Myfamily.xml"), χρησιμοποιεί στοιχεία από δύο διαφορετικά schema, "family.xsd" και "children.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.microsoft.com family.xsd
http://www.codew3c.com children.xsd">
<person>
<firstname>David</firstname>
<lastname>Smith</lastname>
<children>
  <childname>mike</childname>
</children>
</person>
<person>
<firstname>Tony</firstname>
<lastname>Smith</lastname>
</person>
</persons>

Ο παρακάτω αυτός ο XML αρχείο είναι έγκυρο, αυτό οφείλεται στο γεγονός ότι το schema "family.xsd" επιτρέπει την επέκταση του στοιχείου "person" μέσω των επιλογών στοιχείων μετά το στοιχείο "lastname".

Τα στοιχεία <any> και <anyAttribute> μπορούν να χρησιμοποιηθούν για τη δημιουργία εκτεταμένων εγγράφων! Επιτρέπουν στο έγγραφο να περιέχει επιπλέον στοιχεία που δεν έχουν δηλωθεί στο κύριο XML schema.