Όταν ένα αρχείο XML συσχετίζεται με ένα DTD ή ένα σχήμα XML, δεσμεύεται από τυχόν κανόνες δομής που περιέχονται στο DTD ή το σχήμα XML. Για να θεωρηθεί έγκυρο αρχείο XML, το έγγραφο θα πρέπει να συνοδεύεται από ένα DTD (ή ένα σχήμα XML), και να συμμορφώνεται σε όλες τις δηλώσεις στο DTD (ή στο σχήμα XML).
Υπάρχουν δύο διαφορετικοί τρόποι συσχέτισης αρχείων XML με DTD ή σχήματα XML.
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">
InvoiceId είναι η δημόσια ταυτότητα του αρχείου DTD. Χρησιμοποιείται για τη συσχέτιση του αρχείου XML με ένα αρχείο DTD (στη συγκεκριμένη περίπτωση, το αρχείο DTD είναι το Invoice.dtd). Αν η δημόσια ταυτότητα InvoiceId αντιστοιχεί στο Κλειδί της καταχώρησης στον κατάλογο XML για το Invoice.dtd, τότε το URI της καταχώρησης στον κατάλογο XML (που περιέχει πληροφορίες σχετικά με τη θέση του Invoice.dtd) χρησιμοποιείται για τον εντοπισμό του DTD. Σε διαφορετική περίπτωση, για τον εντοπισμό του DTD χρησιμοποιείται η ταυτότητα συστήματος του DOCTYPE ( "C:\mydtds\Invoice.dtd"), η οποία παραπέμπει απευθείας στη θέση του DTD στο σύστημα αρχείων.
Σημείωση: Μπορείτε επίσης να χρησιμοποιήσετε μία ταυτότητα συστήματος ως κλειδί σε μια καταχώρηση καταλόγου XML. Αν χρησιμοποιήσετε μια ταυτότητα συστήματος ως κλειδί, ένα προσδιοριστικό DOCTYPE όπως το ακόλουθο προστίθεται σε ένα αρχείο XML:
<!DOCTYPE Root-name SYSTEM "MyDTD.dtd">
όπου MyDTD.dtd είναι η ταυτότητα του συστήματος που αντιστοιχεί στο κλειδί μιας καταχώρησης καταλόγου XML.
Αν ένα αρχείο XML έχει συσχετιστεί με ένα σχήμα XML, ένα ή περισσότερα γνωρίσματα θέσης σχήματος περιλαμβάνονται στο αρχείο XML. Οι πληροφορίες στο schemaLocation παρέχονται ως υποδείξεις για τον επεξεργαστής XML. Στα ακόλουθα παραδείγματα εμφανίζονται γνωρίσματα schemaLocation.
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd"> <shipTo country="US"> ...
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com PO.xsd"> <shipTo country="US"> ....
Στο παράδειγμα 1, η υπόδειξη του schemaLocation ('C:\myschemas\PurchaseOrder.xsd') παραπέμπει απευθείας στη θέση του σχήματος XML στο σύστημα αρχείων ή στο URI του. Σε αυτήν την περίπτωση, το αρχείο σχήματος θα εντοπιστεί άμεσα από τον επεξεργαστής XML.
Στο παράδειγμα 2, η υπόδειξη του schemaLocation ('PO.xsd') παραπέμπει σε μια καταχώρηση σε κατάλογο XML. Το PO.xsd αντιστοιχεί στο κλειδί της καταχώρησης στον κατάλογο XML για το PurchaseOrder.xsd, και το URI της καταχώρησης στον κατάλογο XML (η οποία περιέχει πληροφορίες σχετικά με τη θέση του PurchaseOrder.xsd) θα χρησιμοποιείται για τον εντοπισμό του σχήματος XML.
Και στα δύο παραδείγματα, το http://www.ibm.com στο προσδιοριστικό xsi:schemaLocation είναι ένα URI που προσδιορίζει το χώρο ονομάτων για το σχήμα XML.
<purchaseOrder xmlns:="www.ibm.com" xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">
Το γνώρισμα schemaLocation παραπέμπρει τόσο στο κλειδί όσο και στην πραγματική θέση του σχήματος.
Το DTD ή το σχήμα XML βρίσκεται σε έναν απομακρυσμένο εξυπηρετητή
Πολλές λειτουργίες στη λειτουργία επεξεργασίας XML, όπως η επικύρωση και η αυτόματη συμπλήρωση περιεχομένου, απαιτούν να είναι διαθέσιμο ένα DTD ή ένα σχήμα XML. Η τεκμηρίωση για το προϊόν παρέχει πληροφορίες χρήσης για περιπτώσεις όπου το DTD ή το σχήμα XML βρίσκονται στον τοπικό υπολογιστή σας. Σε πολλές περιπτώσεις όμως το DTD ή το σχήμα XML βρίσκεται σε έναν απομακρυσμένο εξυπηρετητή, για παράδειγμα:
<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">
Συνήθως, η περίπτωση αυτή δεν δημιουργεί προβλήματα, επειδή το DTD ή το σχήμα XML μπορούν να ανακτηθούν από τον απομακρυσμένο εξυπηρετητή. Αν, ωστόσο, το σύστημά σας προστατεύεται από τείχος προστασίας, και δεν διαθέτετε ένα σύστημα με SOCKS, ο πάγκος εργασίας δεν σας δίνει τα μέσα να καθορίσετε έναν εξυπηρετητή SOCKS για την ανάκτηση ενός DTD ή ενός σχήματος XML. Αν δεν έχετε δυνατότητα να εφαρμόσετε το πρωτόκολο SOCKS στο σύστημά σας, ο τρόπος παράκαμψης αυτού του προβλήματος είναι να ανακτήσετε ένα αντίγραφο του DTD ή του σχήματος XML (για παράδειγμα, χρησιμοποιώντας ένα πρόγραμμα πλοήγησης στο διαδίκτυο) και να αποθηκεύσετε το αντίγραφο αυτό στον τοπικό σας υπολογιστή. Στη συνέχεια, μπορείτε να τοποθετήσετε ένα τοπικό αντίγραφο στο ίδιο έργο με αυτό του XML αρχείου σας ή να χρησιμοποιήσετε τον κατάλογο XML για να συσχετίσετε μια δημόσια ταυτότητα με την (τοπική) θέση του DTD.
Σημείωσηe: Αν ένα αρχείο XML έχει συσχετιστεί με ένα σχήμα XML ή ένα DTD το οποίο βρίσκεται σε διαφορετική θέση στο δίκτυο και εργάζεστε σε έναν υπολογιστή που δεν είναι συνδεδεμένος στο δίκτυο, μπορείτε να ακολουθήσετε τα βήματα που περιγράφηκαν παραπάνω αν θέλετε να χρησιμοποιήσετε την αυτόματη συμπλήρωση περιεχομένου ή να επικυρώσετε το XML αρχείο σας.
Αν δημιουργήσετε μια απευθείας συσχέτιση μεταξύ ενός αρχείου XML και ενός σχήματος XML ή ενός αρχείου DTD, κάθε φορά που αλλάζετε τη θέση του σχήματος ή του DTD θα πρέπει να εντοπίσετε και να ενημερώσετε όλα τα αρχεία XML που παραπέμπουν σε αυτό με τη νέα θέση του αρχείου DTD ή του σχήματος. Αν, ωστόσο, συσχετίσετε ένα αρχείο XML με ένα σχήμα XML ή ένα κλειδί DTD, όταν αλλάζετε τη θέση του σχήματος ή του DTD, θα χρειαστεί να ενημερώσετε μόνο την καταχώρηση στον κατάλογο XML, χωρίς να πρέπει να ενημερώσετε κάθε μεμονωμένο αρχείο XML.
Για παράδειγμα, ας υποθέσουμε ότι έχετε ένα DTD με το όνομα "Building.dtd", το οποίο έχει συσχετιστεί με 5 αρχεία XML - Office.xml, House.xml, Apartment.xml, Bank.xml και PostOffice.xml. Μεταφέρετε το αρχείο DTD "Building.dtd" σε μια νέα θέση. Αν μεταξύ του Building.dtd και όλων των αρχείων XML ισχύει μια απευθείας συσχέτιση, θα πρέπει να ενημερώσετε όλες τις δηλώσεις <DOCTTYPE> σε κάθε αρχείο XML για να αντικατοπτριστεί η νέα θέση του Building.dtd. Αν, ωστόσο, ισχύει συσχέτιση με κατάλογο XML, και όλα τα αρχεία XML απλά παραπέμπουν στο κλειδί του Building.dtd, τότε χρειάζεται απλά να ενημερώσετε το URI και όλα τα αρχεία XML θα παραπέμπουν στη νέα θέση του Building.dtd.
Αφού ενημερώσετε μια καταχώρηση στον κατάλογο XML, ίσως
να χρειαστεί να ανανεώσετε την προβολή της λειτουργίας επεξεργασίας XML έτσι ώστε να χρησιμοποιεί τις νέες πληροφορίες. Για
να το κάνετε αυτό, πατήστε το κουμπί Επανάληψη φόρτωσης εξαρτήσεων στη γραμμή εργαλείων
και η προβολή θα ενημερωθεί χρησιμοποιώντας τις τρέχουσες ρυθμίσεις καταλόγου XML.
Είναι απαραίτητο να ανανεώσετε την προβολή της λειτουργίας επεξεργασίας XML όταν έχετε ένα αρχείο XML ανοιχτό, το οποίο
παραπέμπει στην καταχώρηση στον κατάλογο XML που ενημερώθηκε.
Για περισσότερες πληροφορίες, ανατρέξτε στις σχετικές εργασίες.
(c) Copyright 2001, World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University).