Μπορεί να έχετε ακούσει για την επεκτάσιμη γλώσσα σήμανσης (XML) και μπορεί να έχετε ακούσει πολλούς λόγους για τους οποίους η εταιρεία σας θα πρέπει να την χρησιμοποιεί. Αλλά τι ακριβώς είναι η XML; Αυτό το άρθρο εξηγεί τα βασικά στοιχεία της XML — τι είναι και πώς λειτουργεί.
Σε αυτό το άρθρο
Μια σύντομη ματιά στους όρους επισήμανση, σήμανση και ετικέτες
Για να κατανοήσετε την XML, είναι χρήσιμο να κατανοήσετε την έννοια της επισήμανσης δεδομένων. Οι άνθρωποι χρησιμοποιούν τα έγγραφα εδώ και αιώνες και, όλο αυτό το διάστημα, συνηθίζουν να προσθέτουν επισημάνσεις σε αυτά τα έγγραφα. Για παράδειγμα, οι καθηγητές προσθέτουν όλη την ώρα επισημάνσεις στα έγγραφα των μαθητών τους. Υποδεικνύουν στους μαθητές να μετακινήσουν παραγράφους, να διευκρινίσουν προτάσεις, να διορθώσουν τυχόν ορθογραφικά λάθη και ούτω καθεξής. Η επισήμανση ενός εγγράφου είναι ένας τρόπος ορισμού της δομής, της σημασίας και της οπτικής εμφάνισης των πληροφοριών που περιλαμβάνονται στο έγγραφο. Εάν έχετε χρησιμοποιήσει ποτέ τη δυνατότητα "Παρακολούθηση αλλαγών" στο Microsoft Office Word, τότε έχετε χρησιμοποιήσει μια αυτοματοποιημένη μορφή επισήμανσης.
Στους υπολογιστές, ο όρος "επισήμανση" έχει εξελιχθεί σε "σήμανση". Η σήμανση είναι η διαδικασία χρήσης κωδικών που ονομάζονται "ετικέτες" (ή ορισμένες φορές "διακριτικά") για τον καθορισμό της δομής, της οπτικής εμφάνισης και, στην περίπτωση της XML, της σημασίας των δεδομένων.
Ο κώδικας HTML που χρησιμοποιείται για αυτό το άρθρο είναι ένα καλό παράδειγμα σήμανσης υπολογιστή στην εργασία. Εάν περιηγηθείτε σε αυτόν (στον Microsoft Internet Explorer, κάντε δεξί κλικ στη σελίδα και, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή προέλευσης), θα δείτε ένα συνδυασμό από αναγνώσιμο κείμενο και από ετικέτες Γλώσσας σήμανσης υπερκειμένου (HTML), όπως οι <p> και <h2>. Οι ετικέτες στα έγγραφα HTML και XML είναι εύκολο να αναγνωριστούν, καθώς περικλείονται από αγκύλες. Στον πηγαίο κώδικα αυτού του άρθρου, οι ετικέτες HTML εκτελούν διάφορες εργασίες, όπως το να ορίζουν την αρχή και το τέλος κάθε παραγράφου (<p> ... </p>) και να επισημάνουν τη θέση κάθε εικόνας.
Τι είναι λοιπόν αυτό που την κάνει XML;
Τα έγγραφα HTML και XML περιέχουν δεδομένα που περικλείονται από ετικέτες, όμως, αυτή είναι και η μοναδική ομοιότητα μεταξύ των δύο γλωσσών. Στην HTML, οι ετικέτες ορίζουν την εμφάνιση και την αίσθηση των δεδομένων σας — οι τίτλοι τοποθετούνται εδώ, οι παράγραφοι ξεκινούν από εκεί και ούτω καθεξής. Στην XML οι ετικέτες ορίζουν τη δομή και τη σημασία των δεδομένων σας — ποια είναι τα δεδομένα.
Όταν περιγράφετε τη δομή και τη σημασία των δεδομένων σας, αποκτάτε τη δυνατότητα επαναχρησιμοποίησης αυτών των δεδομένων με διάφορους τρόπους. Για παράδειγμα, εάν έχετε ένα σύνολο δεδομένων πωλήσεων όπου κάθε στοιχείο του προσδιορίζεται με σαφήνεια, μπορείτε να εισαγάγετε μόνο τα στοιχεία που χρειάζεστε σε μια αναφορά πωλήσεων και τα υπόλοιπα στοιχεία να τα εισαγάγετε σε μια βάση δεδομένων λογιστικής. Με άλλα λόγια, μπορείτε να χρησιμοποιήσετε ένα σύστημα για να δημιουργήσετε τα δεδομένα και να τα επισημάνετε με ετικέτες XML και, στη συνέχεια, να επεξεργαστείτε αυτά τα δεδομένα σε οποιονδήποτε αριθμό από άλλα συστήματα, ανεξάρτητα από την πλατφόρμα υλικού ή το λειτουργικό σύστημα. Αυτή η δυνατότητα μεταφοράς είναι ο λόγος για τον οποίο η XML είναι σήμερα μία από τις πιο δημοφιλείς τεχνολογίες ανταλλαγής δεδομένων.
Καθώς προχωράτε, να θυμάστε αυτά τα δεδομένα:
-
Δεν μπορείτε να χρησιμοποιήσετε HTML στη θέση της XML. Ωστόσο, μπορείτε να αναδιπλώσετε τα δεδομένα XML σε ετικέτες HTML και να τα εμφανίσετε σε μια ιστοσελίδα.
-
Η HTML περιορίζεται σε ένα προκαθορισμένο σύνολο ετικετών που μοιράζονται όλοι οι χρήστες.
-
Η XML σάς επιτρέπει να δημιουργήσετε οποιαδήποτε ετικέτα χρειάζεστε για να περιγράψετε τα δεδομένα σας και τη δομή αυτών των δεδομένων. Για παράδειγμα, υποθέστε ότι πρέπει να αποθηκεύσετε και να θέσετε σε κοινή χρήση πληροφορίες σχετικά με κατοικίδια. Μπορείτε να δημιουργήσετε τον παρακάτω κώδικα XML:
<?xml version="1.0"?> <CAT> <NAME>Izzy</NAME> <BREED>Siamese</BREED> <AGE>6</AGE> <ALTERED>yes</ALTERED> <DECLAWED>no</DECLAWED> <LICENSE>Izz138bod</LICENSE> <OWNER>Colin Wilcox</OWNER> </CAT>
Μπορείτε να δείτε ότι οι ετικέτες XML σάς δίνουν τη δυνατότητα να γνωρίζετε ακριβώς τι είδους δεδομένα που ψάχνετε. Για παράδειγμα, γνωρίζετε ότι τα δεδομένα αφορούν μια γάτα, οπότε, μπορείτε εύκολα να βρείτε το όνομα της γάτας, την ηλικία της και ούτω καθεξής. Η δυνατότητα δημιουργίας ετικετών που καθορίζουν σχεδόν οποιαδήποτε δομή δεδομένων είναι αυτό που κάνει την XML "επεκτάσιμη".
Ωστόσο, μην συγχέετε τις ετικέτες που βλέπετε σε αυτό το παράδειγμα κώδικα με τις ετικέτες ενός αρχείου HTML. Για παράδειγμα, εάν επικολλήσετε αυτή τη δομή XML σε ένα αρχείο HTML και προβάλετε το αρχείο στο πρόγραμμα περιήγησής σας, τα αποτελέσματα θα μοιάζουν κάπως έτσι:
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
Το πρόγραμμα περιήγησης παραβλέπει τις ετικέτες XML και εμφανίζει μόνο τα δεδομένα.
Λίγα λόγια σχετικά με τα σωστά μορφοποιημένα δεδομένα
Ενδέχεται να ακούσετε κάποιον χρήστη από το τμήμα IT της εταιρείας σας να μιλά για "σωστά μορφοποιημένη" XML. Ένα αρχείο XML που έχει μορφοποιηθεί σωστά συμμορφώνεται με ένα σύνολο πολύ αυστηρών κανόνων που ελέγχουν την XML. Εάν ένα αρχείο δεν συμμορφώνεται με αυτούς τους κανόνες, η XML σταματά να λειτουργεί. Για παράδειγμα, στο προηγούμενο παράδειγμα κώδικα, κάθε ετικέτα ανοίγματος έχει και μια ετικέτα κλεισίματος, έτσι ώστε να το δείγμα να συμμορφώνεται με έναν από τους κανόνες σωστής μορφοποίησης. Εάν καταργήσετε μια ετικέτα και προσπαθήσετε να ανοίξετε αυτό το αρχείο σε ένα από τα προγράμματα του Office, θα δείτε ένα μήνυμα σφάλματος και το πρόγραμμα θα σας εμποδίσει να χρησιμοποιήσετε το αρχείο.
Δεν χρειάζεται να γνωρίζετε απαραίτητα τους κανόνες για τη δημιουργία μιας σωστά μορφοποιημένης XML (αν και είναι εύκολο να τους κατανοήσετε), όμως, πρέπει να θυμάστε ότι μπορείτε να θέσετε τα δεδομένα XML σε κοινή χρήση μεταξύ προγραμμάτων και συστημάτων μόνο όταν τα δεδομένα είναι σωστά μορφοποιημένα. Εάν δεν μπορείτε να ανοίξετε ένα αρχείο XML, το πιθανότερο είναι αυτό το αρχείο να μην έχει μορφοποιηθεί σωστά.
Η XML δεν εξαρτάται επίσης από την εκάστοτε πλατφόρμα, που σημαίνει ότι οποιοδήποτε πρόγραμμα που έχει σχεδιαστεί για να χρησιμοποιεί την XML μπορεί να διαβάσει και να επεξεργαστεί τα δεδομένα XML, ανεξάρτητα από το υλικό ή το λειτουργικό σύστημα. Για παράδειγμα, με τις κατάλληλες ετικέτες XML, μπορείτε να χρησιμοποιήσετε ένα πρόγραμμα υπολογιστή για να ανοίξετε και να εργαστείτε δεδομένα από έναν κεντρικό υπολογιστή. Επίσης, ανεξάρτητα από το ποιος δημιουργεί ένα σώμα δεδομένων XML, μπορείτε να εργαστείτε με τα ίδια δεδομένα σε πολλά προγράμματα του Office. Λόγω της εξαιρετικής της φορητότητας, η XML έχει γίνει μια από τις πιο δημοφιλείς τεχνολογίες για την ανταλλαγή δεδομένων μεταξύ βάσεων δεδομένων και χρηστών επιτραπέζιων υπολογιστών.
Εκτός από τα δεδομένα που περικλείονται σε ετικέτες και είναι σωστά μορφοποιημένα, τα συστήματα XML χρησιμοποιούν συνήθως δύο πρόσθετα στοιχεία: τα σχήματα και τους μετασχηματισμούς. Οι παρακάτω ενότητες περιγράφουν πώς λειτουργούν αυτά τα πρόσθετα στοιχεία.
Μια γρήγορη ματιά στα σχήματα
Μην αφήνετε τον όρο "σχήμα" να σας φοβίσει. Το σχήμα είναι απλά ένα αρχείο XML που περιέχει τους κανόνες για το τι πρέπει και τι δεν πρέπει να βρίσκεται σε ένα αρχείο δεδομένων XML. Συνήθως, τα αρχεία σχήματος χρησιμοποιούν την επέκταση ονόματος αρχείου .xsd, ενώ τα αρχεία δεδομένων XML χρησιμοποιούν την επέκταση .xml.
Τα σχήματα επιτρέπουν στα προγράμματα να επικυρώνουν δεδομένα. Παρέχουν το πλαίσιο για τη δόμηση των δεδομένων και εξασφαλίζουν ότι βγάζουν νόημα για το δημιουργό και για οποιονδήποτε άλλο χρήστη. Για παράδειγμα, εάν ένας χρήστης εισαγάγει μη έγκυρα δεδομένα, όπως κείμενο σε ένα πεδίο ημερομηνίας, το πρόγραμμα μπορεί να ζητήσει από το χρήστη να εισαγάγει τα σωστά δεδομένα. Δεδομένου ότι τα δεδομένα σε ένα αρχείο XML συμμορφώνονται με τους κανόνες ενός συγκεκριμένου σχήματος, οποιοδήποτε πρόγραμμα που υποστηρίζει XML μπορεί να χρησιμοποιήσει αυτό το σχήμα για να διαβάσει, να ερμηνεύσει και να επεξεργαστεί τα δεδομένα. Για παράδειγμα, όπως φαίνεται στην παρακάτω εικόνα, το Excel μπορεί να επικυρώσει τα δεδομένα <CAT> σε σχέση με τη διάταξη CAT.
Τα σχήματα μπορεί να γίνουν πολύπλοκα και η εκμάθηση του τρόπου δημιουργίας τους είναι πέρα από το πεδίο εφαρμογής αυτού του άρθρου. (Εκτός αυτού, πιθανότατα έχετε κάποιο τμήμα ΙΤ που γνωρίζει τη συγκεκριμένη διαδικασία.) Ωστόσο, είναι χρήσιμο να γνωρίζετε πώς μοιάζουν τα σχήματα. Το παρακάτω σχήμα καθορίζει τους κανόνες για το σύνολο ετικετών <CAT>... </CAT>.
<xsd:element name="CAT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NAME" type="xsd:string"/>
<xsd:element name="BREED" type="xsd:string"/>
<xsd:element name="AGE" type="xsd:positiveInteger"/>
<xsd:element name="ALTERED" type="xsd:boolean"/>
<xsd:element name="DECLAWED" type="xsd:boolean"/>
<xsd:element name="LICENSE" type="xsd:string"/>
<xsd:element name="OWNER" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Μην ανησυχείτε αν δεν καταλαβαίνετε όλα τα στοιχεία του δείγματος. Απλώς να θυμάστε ότι:
-
Τα στοιχεία γραμμής στο δείγμα σχήματος ονομάζονται "δηλώσεις". Εάν χρειάζεστε περισσότερες πληροφορίες σχετικά με κάποιο ζώο, όπως το χρώμα ή τα σημάδια του, το πιθανότερο είναι ότι το τμήμα ΙΤ θα προσθέσει μια δήλωση στο σχήμα. Μπορείτε να αλλάζετε το σύστημα XML, καθώς η επιχείρησή σας εξελίσσεται.
-
Οι δηλώσεις δίνουν εξαιρετικό έλεγχο όσον αφορά τη δομή των δεδομένων. Για παράδειγμα, η δήλωση <xsd:sequence> σημαίνει ότι οι ετικέτες, όπως οι <NAME> και <BREED> , πρέπει να παρουσιάζονται με τη σειρά που αναφέρονται παραπάνω. Οι δηλώσεις μπορούν επίσης να ελέγχουν τους τύπους δεδομένων που μπορούν να εισάγουν οι χρήστες. Για παράδειγμα, στο παραπάνω σχήμα, απαιτείται ένας θετικός αριθμός για την ηλικία της γάτας και μια δυαδική τιμή (TRUE ή FALSE) τιμές για τις ετικέτες ALTERED και DECLAWED.
-
Όταν τα δεδομένα σε ένα αρχείο XML συμμορφώνονται με τους κανόνες που παρέχονται από ένα σχήμα, τότε, τα δεδομένα αυτά είναι έγκυρα. Η διαδικασία για τον έλεγχο ενός αρχείου δεδομένων XML σε σχέση με ένα σχήμα ονομάζεται (λογικά) "επικύρωση". Το μεγάλο πλεονέκτημα της χρήσης σχημάτων είναι ότι μπορούν να σας βοηθήσουν να αποτρέψετε την ύπαρξη κατεστραμμένων δεδομένων. Επίσης, διευκολύνει την εύρεση κατεστραμμένων δεδομένων, επειδή σταματά την XML όταν παρουσιάζεται κάποιο πρόβλημα.
Μια γρήγορη ματιά στους μετασχηματισμούς
Όπως αναφέρθηκε προηγουμένως, η XML παρέχει επίσης ισχυρούς τρόπους για να χρησιμοποιήσετε ή να επαναχρησιμοποιήσετε ξανά δεδομένα. Ο μηχανισμός επαναχρησιμοποίησης των δεδομένων ονομάζεται Μετασχηματισμός Extensible Stylesheet Language (XSLT) ή απλώς, μετασχηματισμός.
Μπορείτε (εντάξει, όχι εσείς, το τμήμα IT της εταιρείας σας) επίσης να χρησιμοποιήσετε μετασχηματισμούς για την ανταλλαγή δεδομένων μεταξύ συστημάτων διακομιστών, όπως είναι οι βάσεις δεδομένων. Για παράδειγμα, ας υποθέσουμε ότι η Βάση δεδομένων Α αποθηκεύει τα δεδομένα πωλήσεων σε μια δομή πίνακα που είναι κατάλληλη για το τμήμα πωλήσεων. Η Βάση δεδομένων B αποθηκεύει τα δεδομένα εσόδων και εξόδων σε μια δομή πίνακα που είναι προσαρμοσμένη για το τμήμα λογιστικής. Η Βάση δεδομένων B μπορεί να χρησιμοποιήσει ένα μετασχηματισμό για να αποδεχτεί δεδομένα από την Α και να γράψει αυτά τα δεδομένα στους σωστούς πίνακες.
Ο συνδυασμός αρχείου δεδομένων, σχήματος και μετασχηματισμού αποτελεί ένα βασικό σύστημα XML. Η παρακάτω εικόνα δείχνει πώς λειτουργούν συνήθως τα συστήματα αυτά. Το αρχείο δεδομένων επικυρώνεται σε σχέση με το σχήμα και, στη συνέχεια, αποδίδεται με οποιονδήποτε αριθμό χρησιμοποιήσιμων τρόπων μέσω ενός μετασχηματισμού. Σε αυτή την περίπτωση, ο μετασχηματισμός αναπτύσσει τα δεδομένα σε έναν πίνακα μιας ιστοσελίδας.
Το ακόλουθο δείγμα κώδικα εμφανίζει τον τρόπο σύνταξης ενός μετασχηματισμού. Φορτώνει τα δεδομένα <CAT> σε έναν πίνακα μιας ιστοσελίδας. Όμως, ο σκοπός του δείγματος δεν είναι να σας δείξει πώς να συντάξετε έναν μετασχηματισμό αλλά να σας δείξει μια από τις μορφές που μπορεί να πάρει ένας μετασχηματισμός.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<TABLE>
<TR>
<TH>Name</TH>
<TH>Breed</TH>
<TH>Age</TH>
<TH>Altered</TH>
<TH>Declawed</TH>
<TH>License</TH>
<TH>Owner</TH>
</TR>
<xsl:for-each select="CAT">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD>
<xsl:value-of select="NAME"/>
</TD>
<TD>
<xsl:value-of select="BREED"/>
</TD>
<TD>
<xsl:value-of select="AGE"/>
</TD>
<TD>
<xsl:value-of select="ALTERED"/>
</TD>
<TD>
<xsl:value-of select="DECLAWED"/>
</TD>
<TD>
<xsl:value-of select="LICENSE"/>
</TD>
<TD>
<xsl:value-of select="OWNER"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
Αυτό το δείγμα δείχνει πώς μπορεί να φαίνεται ένας τύπος μετασχηματισμού όταν κωδικοποιείται, αλλά να θυμάστε ότι μπορείτε απλώς να περιγράψετε τι χρειάζεστε από τα δεδομένα σε απλά Αγγλικά. Για παράδειγμα, μπορείτε να μεταβείτε στο τμήμα IT της εταιρείας σας υποθέτοντας ότι θέλετε να εκτυπώσετε τα δεδομένα πωλήσεων συγκεκριμένων περιοχών για τα τελευταία δύο έτη, "με αυτή τη συγκεκριμένη εμφάνιση". Το τμήμα IT μπορεί, στη συνέχεια, να συντάξει (ή να αλλάξει) έναν μετασχηματισμό για να κάνει αυτή τη δουλειά.
Αυτό που κάνει ακόμα πιο εύκολη αυτή την διαδικασία είναι ότι η Microsoft και όλο και περισσότεροι άλλοι προμηθευτές δημιουργούν μετασχηματισμούς για διάφορες εργασίες. Στο μέλλον, το πιθανότερο είναι ότι θα μπορείτε να κάνετε λήψη μετασχηματισμών που είτε θα ανταποκρίνονται στις ανάγκες σας είτε θα μπορείτε να τους προσαρμόσετε στις δικές σας ανάγκες. Αυτό σημαίνει ότι η χρήση της XML θα κοστίζει ολοένα και λιγότερο στη διάρκεια του χρόνου.
Μια ματιά στην XML στο σύστημα του Microsoft Office
Οι επαγγελματικές εκδόσεις του Office παρέχουν εκτεταμένη υποστήριξη XML. Το Microsoft Office χρησιμοποιεί τις μορφές αρχείων που βασίζονται σε XML, όπως .docx, .xlsx και .pptx. Επειδή η XML αποθηκεύει τα δεδομένα σε μορφή κειμένου αντί για μια συγκεκριμένη δυαδική μορφή, οι πελάτες σας μπορούν να ορίζουν τα δικά τους σχήματα και να χρησιμοποιούν τα δεδομένα σας με πολλούς τρόπους, χωρίς να χρειάζεται να πληρώσουν δικαιώματα. Για περισσότερες πληροφορίες σχετικά με τις νέες μορφές, ανατρέξτε στο θέμα Μορφές Open XML και επεκτάσεις ονομάτων αρχείων. Υπάρχουν επίσης και τα εξής πλεονεκτήματα:
-
Μικρότερα μεγέθη αρχείου. Η νέα μορφή χρησιμοποιεί την τεχνολογία ZIP και άλλες τεχνολογίες συμπίεσης για να μειώσει το μέγεθος του αρχείου μέχρι και 75 τοις εκατό σε σύγκριση με τις δυαδικές μορφές που χρησιμοποιούνται σε παλαιότερες εκδόσεις του Office.
-
Ευκολότερη ανάκτηση πληροφοριών και μεγαλύτερη ασφάλεια. Η XML είναι αναγνώσιμη από τους χρήστες, επομένως, εάν ένα αρχείο καταστραφεί, μπορείτε να ανοίξτε το αρχείο με το Σημειωματάριο της Microsoft ή ένα άλλο πρόγραμμα ανάγνωσης κειμένου και να ανακτήσετε τουλάχιστον ορισμένες από τις πληροφορίες σας. Επίσης, τα νέα αρχεία είναι πιο ασφαλή, επειδή δεν μπορεί να περιέχουν κώδικα VBA (Visual Basic for Applications). Εάν χρησιμοποιείτε τη νέα μορφή για τη δημιουργία προτύπων, τυχόν στοιχεία ελέγχου ActiveX και μακροεντολές VBA θα βρίσκονται σε μια ξεχωριστή, πιο ασφαλή ενότητα του αρχείου. Επιπλέον, μπορείτε να χρησιμοποιήσετε εργαλεία, όπως η Επιθεώρηση εγγράφου, για να καταργήσετε τυχόν προσωπικά δεδομένα. Για περισσότερες πληροφορίες σχετικά με τη χρήση της δυνατότητας "Επιθεώρηση εγγράφου", ανατρέξτε στο άρθρο Κατάργηση κρυφών δεδομένων και προσωπικών πληροφοριών με έλεγχο εγγράφων.
Μέχρι στιγμής είναι καλό, αλλά τι γίνεται εάν έχετε δεδομένα XML χωρίς σχήμα; Τα προγράμματα του Office που υποστηρίζουν XML έχουν τις δικές τους προσεγγίσεις για να σας βοηθήσουν να εργαστείτε με τα δεδομένα. Για παράδειγμα, το Excel εξάγει ένα σχήμα εάν ανοίξετε ένα αρχείο XML που δεν διαθέτει ήδη ένα σχήμα. Στη συνέχεια, το Excel σάς παρέχει την επιλογή φόρτωσης αυτών των δεδομένων σε έναν πίνακα XML. Μπορείτε να χρησιμοποιήσετε τις λίστες και τους πίνακες XML για να ταξινομήσετε, να φιλτράρετε ή να προσθέσετε υπολογισμούς στα δεδομένα.
Ενεργοποίηση των εργαλείων XML στο Office
Η καρτέλα "Προγραμματιστής" δεν εμφανίζεται από προεπιλογή, αλλά θα χρειαστεί να την προσθέσετε στην κορδέλα όταν θέλετε να χρησιμοποιήσετε τις εντολές XML του Office. Ανατρέξτε Εμφάνιση της καρτέλας Προγραμματιστής.