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

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

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

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

Ανάμεσα σε αυτές τις παραδείξεις βρίσκεται ένα κομμάτι από το XML σχήμα με το όνομα "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.