Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 22/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων XML Χώροι Ονομάτων (Namespaces)
Η δημιουργία προσωπικών Tags μπορεί να προκαλέσει σύγκρουση στοιχείων: Παράδειγμα <subject> Math </subject> <subject> Thrombosis </subject> 2002 Prentice Hall, Inc. All rights reserved.
Τα XML Namespaces είναι ένας τρόπος για να διαχωρίζουμε στοιχεία και ιδιότητες ενός εγγράφου XML, και προσδιορίζονται με αντιστοίχισή τους σε μοναδικά URI. Η χρήση XML Namespaces επιτρέπει σε ένα μοναδικό έγγραφο XML να περιλαμβάνει κατηγορίες στοιχείων και ιδιοτήτων, οι οποίες τυγχάνουν ειδικής διαχείρισης από συστατικά λογισμικού. Για παράδειγμα, μπορούμε σε ένα έγγραφο XML να χρησιμοποιήσουμε tags της MathML, τα οποία είναι αναγνωρίσιμα και επεξεργάσιμα από ειδικό λογισμικό συστατικών μαθηματικών εκφράσεων.
Τα XML Namespaces είναι μοναδικές λεξεις κλειδιά που χρησιμοποιούνται για το διαχωρισμό των ονομάτων των στοιχείων Δημιουργούν μοναδικά προθέματα για τα στοιχεία που (συνήθως) προέρχονται από διαφορετικά XML αρχεία ή άλλες εφαρμογές αλλά χρησιμοποιούνται μαζί Ορίζουν τη σημασιολογία που πρέπει να ληφθεί υπόψη κατά την επεξεργασία 2002 Prentice Hall, Inc. All rights reserved.
Επιτρέπει τη δημιουργία custom elements XML namespace Συλλογή ονομάτων elements και attributes που αναγνωρίζονται μέσω ενός κοινού ονόματος που παραπέμπει σε ένα μοναδικό URI Uniform Resource Identifier (URI) Προσδιορίζει μοναδικά το namespace Μια γραμμή κειμένου / σειρά χαρακτήρων για τη διαφοροποίηση ονομάτων Οποιοδήποτε όνομα εκτός από δεσμευμένο namespace xml Directory Root element που περιέχει άλλα elements 2002 Prentice Hall, Inc. All rights reserved.
Naming collisions Δύο ή περισσότερα έγγραφα μπορεί να χρησιμοποιούν το ίδιο tag με διαφορετικό τρόπο Για παράδειγμα: Το έγγραφο A μπορεί να χρησιμοποιεί το <name/> για να υποδείξει το όνομα ενός ατόμου Το έγγραφο B μπορεί να χρησιμοποιεί το <name/> για να υποδείξει το όνομα ενός αρχείου Το έγγραφο Α μπορεί να χρησιμοποιεί το <subject> για να υποδείξει το όνομα ενός μαθήματος Το έγγραφο Β μπορεί να χρησιμοποιεί το <subject> για να υποδείξει το θέμα ενός κεφαλαίου
XML Namespaces Διαφοροποιούν elements που έχουν το ίδιο όνομα <school:subject>math</school:subject> <medical:subject>thrombosis</medical:subject> school και medical είναι namespace prefixes Μπαίνουν πριν τα ονόματα elements και attributes Συνδέονται με uniform resource identifier (URI) Γραμμή κειμένου/σειρά χαρακτήρων για τη διαφοροποίηση ονομάτων xmlns= urn:schemas-microsoft-com:customerdata 2002 Prentice Hall, Inc. All rights reserved.
Δημιουργία namespaces Χρήση λέξης κλειδί xmlns Παράδειγμα xmlns:text = urn:deitel:textinfo xmlns:image = urn:deitel:imageinfo Δημιουργία δύο namespace prefixes text και image urn:deitel:textinfo είναι το URI για το πρόθεμα text urn:deitel:imageinfo είναι το URI για το πρόθεμα image Default namespaces Child elements αυτού του namespace δεν χρειάζονται πρόθεμα xmlns = urn:deitel:textinfo 2002 Prentice Hall, Inc. All rights reserved.
1 <?xml version = "1.0"?> 2 3 <!-- Fig. 5.8 : namespace.xml --> XML Namespaces 4 <!-- Namespaces --> 5 6 <directory xmlns:text = "urn:deitel:textinfo" 7 xmlns:image = "urn:deitel:imageinfo"> 8 9 <text:file filename = "book.xml"> 10 <text:description>a book list</text:description> 11 </text:file> 12 13 <image:file filename = "funny.jpg"> 14 <image:description>a funny picture</image:description> 15 <image:size width = "200" height = "100"/> 16 </image:file> 17 18 </directory> Element directory contains two namespace prefixes Use prefix text to describe elements file and description Apply prefix image to describe elements file, description and size 2002 Prentice Hall, Inc. All rights reserved.
1 <?xml version = "1.0"?> 2 3 <!-- Fig. 5.9 : defaultnamespace.xml --> 4 <!-- Using Default Namespaces --> 5 6 <directory xmlns = "urn:deitel:textinfo" 7 xmlns:image = "urn:deitel:imageinfo"> 8 9 <file filename = "book.xml"> 10 <description>a book list</description> 11 </file> 12 13 <image:file filename = "funny.jpg"> 14 <image:description>a funny picture</image:description> 15 <image:size width = "200" height = "100"/> 16 </image:file> 17 18 </directory> urn:deitel:textinfo is default namespace Element file is in default namespace Specify namespace 2002 Prentice Hall, Inc. All rights reserved.
Qualified names contain a prefix (which must be associated with a namespace URI reference in a namespace declaration) and a local part. Qualified names can serve as an element type: Παράδειγμα <x xmlns:edi = http://ecommerce.org/schema > <edi:price units = Euro> 32 </edi:price> <!-- the price element s namespace is http://ecommerce.org/schema --> </x>
Qualified names can serve as attribute names: Παράδειγμα <x xmlns:edi = http://ecommerce.org/schema > <item edi:taxclass = exempt >... </item> <!-- the taxclass attribute s namespace is http://ecommerce.org/schema --> </x>
A namespace declaration applies to the element where it is specified and to all elements within its content, unless it is overriden by another namespace declaration. Παράδειγμα <html:html xmlns:html = http://www.w3.org/tr/rec-html40 > <!-- all elements here are in the HTML namespace --> <html:head><html:title> </html:head></html:title> <html:body> </html:body> </html:html>
Multiple namespace prefixes can be declared as attributes of a single element. Παράδειγμα <bk:book xmlns:book = xmlns:isbn =... > <book:title> </book:title> <isbn:number> </isbn:number> </bk:book>
A default namespace is considered to apply to the element where it is declared (if it has no prefix) and to all the unprefixed element s subelements. The default namespace can be set to the empty string. Παράδειγμα <book xmlns = urn:loc.gov:books xmlns:isbn =... > <!-- unprefixed elements are from namespace urn:loc.gov:books --> <title> </title> <isbn:number> </isbn:number> </book>
Πηγές / Acknowledgements Βιβλιογραφία http://www.w3schools.com/xml/ http://www.w3.org/xml/ http://www.xml.com/ http://www.xml.org/