ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Σχετικά έγγραφα
Σημασιολογικός Ιστός (Semantic Web) - XML

Εισαγωγή(στη(γλώσσα(XML(

Μοντέλο. για ημι-δομημένα μημ δεδομένα. Ημι-δομημένα δεδομένα XML DTD XML Schema

Σημασιολογικός Ιστός (Semantic Web) - XML

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Εισαγωγή στη γλώσσα XML

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ιαχείριση εδομένων στον Παγκόσμιο Ιστό

Σημασιολογικός Ιστός (Semantic Web) - XML

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

ΝΤUA. Τεχνολογία Πολυμέσων

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Graphical XML Schema

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 3 ο XML Schema

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΝΤUA. Τεχνολογία Πολυμέσων

Τα web services του παρατηρητηρίου τιμών ακολουθούν λογική REST και απαντούν σε GET requests ως ακολούθως:

Δομημένη Αναπαράσταση Πληροφοριών

ΜΕΡΟΣ II: XML DTD XML Namespaces XML Schema

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Μητρώο [.gr] Οδηγός ιασύνδεσης. Αξιοποίησης του Εξυπηρετητή EPP. Έκδοση 2.0. [ EPP Server Connection and Use Guide ]

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

Μητρώο [.gr] Οδηγός ιασύνδεσης. Αξιοποίησης του Εξυπηρετητή EPP. Έκδοση 3.0. [ EPP Server Connection and Use Guide ]

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 9η Διάλεξη: Η γλώσσα XML

Εισαγωγή XML: Extensible Markup Language Ορίστηκε από το WWW Consortium (W3C) ως συµπλήρωµα της HTML. εν σχεδιάστηκε για βάσεις δεδοµένων αλλά για δια

ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

XML Schemas. (Primer) (Structures) (Datatypes)

Μαθηματικά Λογισμικά και Γλώσσες Αναπαράστασης Γνώσης

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Αντικειμενοστρεφής Προγραμματισμός

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-561 ιαχείριση εδοµένων στο Παγκόσµιο Ιστό Βασίλης Χριστοφίδης

Ανάπτυξη και Σχεδίαση Λογισμικού

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ-561 Διαχείριση Δεδομένων στο Παγκόσμιο Ιστό Βασίλης Χριστοφίδης

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ΥΠΗΡΕΣΙΑ ΥΠΟΒΟΛΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΕΛΕΓΧΩΝ API Επικοινωνίας με ΓΓΠΣ. Γ.Γ.Π.Σ. : Ομάδα Ευέλικτης Ανάπτυξης 5/2012

Σημασιολογικός Ιστός (Semantic Web) - XML

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Σχεδιασμός Βάσεων Δεδομένων

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ-561 Διαχείριση Δεδομένων στο Παγκόσμιο Ιστό Ειρήνη Φουντουλάκη Βασίλης Χριστοφίδης

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ

ΔΟΜΗΜΕΝΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΛΗΡΟΦΟΡΙΩΝ

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

Web Services. και SOAP

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Βάσεις Δεδομένων Εισαγωγή

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Σημασιολογικός Ιστός (Semantic Web) - XML

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

Βάσεις Δεδομένων. Ενότητα 4: Μοντελοποίηση Συσχέτισης Οντοτήτων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ Web Services

Δομημένος Προγραμματισμός (ΤΛ1006)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Δικτυοκεντρικά Πληροφοριακά Συστήματα

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

SEMANTIC INTEROPERABILITY

Βάσεις Δεδομένων Ι 6. Ιδιότητες πεδίων. Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Σχεδίαση Σχεσιακών ΒΔ

Βάσεις ιαδικτύου. Θέματα. Εισαγωγή στην XML. Ευρετήρια για την Ανάκτηση Κειμένων. Ο αλγόριθμος HITS. είναι η XML. Παράδειγμα XML

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

κεφάλαιο 3 Η ΓΛΩΣΣΑ XML Εισαγωγή

Access 2. Φτιάχνοντας μια DB, πίνακες και εισαγωγή εξωτερικών δεδομένων

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Βάσεις Δεδομένων (Databases)

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

extensible Markup Language: XML

Στοιχειώδης προγραμματισμός σε C++

Navins Web Service Documentation

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Αρχείο Απογραφικού Δελτίου & Δήλωσης Μηνιαίων Εισφορών

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

BibConvert μετατροπές LOM

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

(3) Να επιλέξουμε Microsoft Access. (2) Να σύρουμε το ποντίκι στην επιλογή All Programs. Δημιουργία Πινάκων στην ACCESS 1

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ - XML Εργαστήρια 7-8 Στουγιάννου Ελευθερία estoug@unipi.gr

Περιεχόμενα Έβδομου-Όγδοου Εργαστηριακού Μαθήματος XML Schema Ασκήσεις - Ερωτήσεις

XML Schema Ας θυμηθούμε: Ένα έγκυρο (valid) έγγραφο XML: Well-Formed + DTD (ή XML Schema) Τα DTDs παρέχουν μια βασική γραμματική για τον καθορισμό ενός XML εγγράφου. Τα XML Schemas παρέχουν ότι παρέχουν και τα DTDs και επιπλέον παρέχουν έναν λεπτομερή τρόπο για να καθοριστεί τι μπορούν και τι δεν μπορούν να περιέχουν τα δεδομένα. Χαρακτηριστικά: Χρησιμοποιούν τη σύνταξη της XML Τηρούν τους κανόνες σύνταξης της XML Παρέχουν απλούς τύπους δεδομένων (string, integer, datetime, duration, language, ) Είναι επεκτάσιμα Έχουν κατάληξη.xsd

XML - Schema (XSD) XSD: XML Schema Definition o Γραμμένη σε XML o Ορίζει: Elements και attributes που εμφανίζονται σε ένα έγγραφο Ιεραρχία εγγράφου Τη σειρά και τον αριθμό των child elements Πότε ένα element είναι άδειο ή μπορεί να περιέχει κείμενο Τύπους δεδομένων για τα elements και τα attributes Default και fixed τιμές για τα elements και τα attributes o Υποστηρίζει τα namespaces

Η Γλώσσα XML Schema Η γλώσσα XML Schema είναι μία γλώσσα XML κατάλληλη για την περιγραφή της δομής XML εγγράφων. Η XML Shema (όπως και τα DTD) είναι γλώσσα περιγραφής σχήματος. Η XML Schema προσφέρει χαρακτηριστικά και δυνατότητες ισχυρότερα αυτών που παρέχονται από τα DTD.

Δομή ενός XSD File To xs:schema αποτελεί το root element για ένα xsd αρχείο και πρέπει να υπάρχει πάντα. <xs:schema xmlns:xs = "http://www.w3.org/2001/xmlschema">

XML Shema: Παράδειγμα 1 (1/2) Ζητείται περιγραφή σε XML Schema της δομής των εγγράφων της μορφής: <ΤΑΒ> <φοιτητής> <όνομα>ελευθερία</όνομα> <επώνυμο>στουγιάννου</επώνυμο> </φοιτητής> <φοιτητής>. </φοιτητής> </ΤΑΒ>

XML Shema: Παράδειγμα 1 (2/2)

XML Schema: Παράδειγμα 2 (1/2) XML Έγγραφο: <?xml version="1.0" encoding="utf-8"?> <mobile_phone> <name>sony Xperia</name> <price>200</price> </mobile_phone> DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT mobile_phone (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> XML Schema: - Α ΤΡΟΠΟΣ - <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="mobile_phone"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="price" type="xs:string" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema>

XML Schema: Παράδειγμα 2 (2/2) XML Έγγραφο: <?xml version="1.0" encoding="utf-8"?> <mobile_phone > <name>sony Xperia</name> <price>200</price> </mobile_phone> DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT mobile_phone (name, price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> xmlns= http://www.w3schools.com xmlns:xsi= http://www.w3.org/2001/xmlschema-instance xsi:schemalocation=" http://www.w3schools.com mobile_phone.xsd"> <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> XML Schema: <xs:element name="mobile_phone" type="phone_type"/> <xs:complextype name="phone_type"> - B ΤΡΟΠΟΣ - <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="price" type="xs:string" /> </xs:sequence> </xs:complextype> </xs:schema> mobile_phone.xsd

Χαρακτηριστικά της XML Schema Ένα έγγραφο XML Schema είναι ένα XML έγγραφο. Τα στοιχεία στο XML Schema του παραδείγματος έχουν το πρόθεμα xs, το οποίο συνδέεται με το χώρο ονομάτων της XML Schema μέσω της δήλωσης: xmlns:xs=http://www.w3.org/2001/xmlschema Η XML Schema παρέχει στοιχεία (όπως τα element, sequence, complextype) με συγκεκριμένη σημασία, τα οποία μαζί με αντίστοιχα γνωρίσματα (όπως τα name, type, minoccurs, maxoccurs) επιτρέπουν την περιγραφή της δομής XML εγγράφων. Μία περιγραφή σχήματος στην XML Schema έχει ως ετικέτα αρχής του πιο εξωτερικού στοιχείου (της ρίζας) την ετικέτα xs:schema. H XML Shema παρέχει αξιοσημείωτη εκφραστικότητα, η οποία επιτρέπει την περιγραφή της δομής XML εγγράφων με πολλούς διαφορετικούς τρόπους.

Referencing Schema Έστω το student.xml default namespace declaration [optional] To schemalocation attribute έχει δύο τιμές, το namespace και την τοποθεσία του XML Shema [optional]

XSD SimpleTypes & CompexTypes SimpleTypes (Απλού Τύπου) XML element με μόνο text και όχι attribute: Το attribute ενός XML element. Χρησιμοποιείται σε ένα complex element: (default, fixed, use= required values) ComplexTypes (Σύνθετου Τύπου) Complex Element είναι ένα XML element το οποίο περιέχει άλλα elements και/ή attributes. Ορισμός αποδεκτών τιμών για ένα xml element: π.χ.:

XML Schema Ορισμός Elements <xs:element> Μπορούμε να αναφερθούμε σε ένα άλλο στοιχείο, χρησιμοποιώντας την ιδιότητα ref, π.χ.: <xs:element ref= Customer > Κενά στοιχεία: Στο στοιχείο <xs:complextype> προσθέτουμε την ιδιότητα content= empty. Στοιχεία πολλαπλού περιεχομένου: Όταν ένα στοιχείο περιέχει κείμενο και άλλα στοιχεία, π.χ.: XML Έγγραφο XML Schema

XML Schema Ορισμός Attributes Για τη δήλωση γνωρισμάτων χρησιμοποιείται το στοιχείο attribute. Ένα γνώρισμα δηλώνεται ως εξής: <xs:attribute name= type=. /> Παράδειγμα: Με την έκφραση: <xs:attribute name= ηλικία type= xs:positiveinteger use= required /> δηλώνεται το γνώρισμα ηλικία, το οποίο παίρνει τιμές του τύπου positiveinteger Ο τύπος positiveinteger είναι απλός τύπος και αντιπροσωπεύει τους θετικούς ακέραιους αριθμούς. Η παράσταση use= required, δηλώνει ότι η εμφάνιση του συγκεκριμένου γνωρίσματος είναι υποχρεωτική. Ένα στοιχείο που διαθέτει γνωρίσματα είναι πάντα σύνθετου τύπου, και επομένως δηλώνεται μέσω του complextype. Οι δηλώσεις γνωρισμάτων τοποθετούνται στο τέλος της δήλωσης του σύνθετου τύπου του αντίστοιχου στοιχείου, ακριβώς πριν από το </xs:complextype>

XML Schema Παράδειγμα Ορισμός Attributes Παράδειγμα: Το στοιχείο φοιτητής στην παρακάτω δήλωση εμφανίζεται να διαθέτει το γνώρισμα ηλικία: <xs:element name= φοιτητής minoccurs=0 maxoccurs= unbounded > <xs:complextype> <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> </xs:sequence> <xs:attribute name= ηλικία type= xs:positiveinteger use= required /> </xs:complextype> </xs:element> Παρατηρήστε ότι το στοιχείο φοιτητής περιλαμβάνει τα υποστοιχεία όνομα και επώνυμο, καθώς και το γνώρισμα ηλικία, το οποίο εμφανίζεται υποχρεωτικά σε κάθε στοιχείο φοιτητής, και παίρνει ως τιμή έναν θετικό ακέραιο.

Συχνότητα Εμφάνισης Στοιχείων Η XML Schema επιτρέπει να προδιαγράψουμε το πλήθος των εμφανίσεων των στοιχείων με εξαιρετική ακρίβεια. Αυτό γίνεται μέσω δύο γνωρισμάτων του element: Του minoccurs μέσω του οποίου δηλώνουμε τον ελάχιστο αριθμό εμφανίσεων του στοιχείου, Του maxoccurs μέσω του οποίου δηλώνουμε τον μέγιστο αριθμό εμφανίσεων του στοιχείου. Οι τιμές των γνωρισμάτων αυτών είναι μη αρνητικοί ακέραιοι. Όταν κάποιο από τα minoccurs ή maxoccurs παραλείπεται (και τα δύο ή ένα από αυτά), τότε θεωρείται ότι έχει σαν τιμή το 1. Παράδειγμα. Στη δήλωση: <xs:element name= φοιτητής type= studenttype minoccurs=0 maxoccurs= unbounded /> η τιμή unbounded του maxoccurs υποδηλώνει απεριόριστο αριθμό εμφανίσεων του φοιτητής, (είναι δυνατό να μην έχουμε καμία εμφάνιση λόγω της τιμής 0 του γνωρίσματος minoccurs).

Περιορισμοί Συχνότητας Εμφάνισης Στοιχείων και Γνωρισμάτων Ένα γνώρισμα μπορεί να εμφανίζεται σε ένα στιγμιότυπο στοιχείου μια φορά ή να μην εμφανίζεται καθόλου. Δεν μπορεί όμως, το ίδιο γνώρισμα να εμφανίζεται στο ίδιο στοιχείο περισσότερες από μία φορές (με την ίδια ή διαφορετική τιμή). Η XML Schema επιτρέπει να προσδιορίσουμε την υποχρεωτικότητα ή μη της εμφάνισης ενός γνωρίσματος μέσω του γνωρίσματος use του στοιχείου attribute (μέσω του οποίου δηλώνουμε το γνώρισμα). Η τιμή required στο γνώρισμα use υποδηλώνει υποχρεωτική εμφάνιση του γνωρίσματος, ενώ τιμή optional υποδηλώνει προαιρετική εμφάνιση του συγκεκριμένου γνωρίσματος.

Απλοί Τύποι (1/2) Η XML Schema διαθέτει πλούσια συλλογή ενσωματωμένων απλών τύπων, όπως οι: byte, integer, positiveinteger, negativeinteger, int, decimal, long, float, double, Boolean, date, datetime, ID, string, IDREF, IIDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS. H XML Schema επιτρέπει να ορίσουμε νέους απλούς τύπους μέσω του στοιχείου simpletype. Οι δηλώσεις περιγράφουν τον τρόπο που παράγονται οι νέοι τύποι από άλλους απλούς (ενσωματωμένους ή παραγόμενους) τύπους. Παράδειγμα. Με τη δήλωση: <xs:simpletype name= myinteger > <xs:restriction base= xs:integer > <xs:mininclusive value= 0 /> <xs:maxinclusive value= 100 /> </xs:restriction> </xs:simpletype> ορίζεται ο τύπος myinteger, μέσω επιβολής περιορισμών στον τύπο integer. Το όνομα του τύπου βάσης δίνεται ως τιμή στο γνώρισμα base του στοιχείου restriction. Οι περιορισμοί ορίζονται μέσω των στοιχείων mininclusive και maxinclusive και ορίζουν ως ελάχιστη επιτρεπτή τιμή το 0, και ως μέγιστη επιτρεπτή τιμή το 100.

Απλοί Τύποι (2/2) Η XML Schema παρέχει πλούσια ποικιλία «όψεων» (facets) (όπως οι mininclusive και maxinclusive) για την επιβολή περιορισμών κατά τον ορισμό νέων τύπων. Μια χρήσιμη όψη είναι το στοιχείο enumeration που περιορίζει έναν απλό τύπο σε ένα σύνολο διακριτών τιμών: Παράδειγμα. Στην περιγραφή: <xs:simpletype name= νόμισμα > <xs:restriction base= xs:string > <xs:enumeration value= GRD /> <xs:enumeration value= EURO /> <xs:enumeration value= USD /> <! κ.λ.π. --> </xs:restriction> </xs:simpletype> Ορίζεται ο απλός τύπος νόμισμα, με τιμές τα (διεθνή) σύμβολα των νομισμάτων, όπως τα GRD, EURO, USD, κ.λ.π.

Ομαδοποίηση Στοιχείων (Elements) Η XML Shema παρέχει τη δυνατότητα να ορίζουμε ομάδες στοιχείων (στις οποίες μπορούμε να δίνουμε και ονόματα). Στόχος, η χρήση αυτών των ομάδων για τη δόμηση του περιεχόμενου των σύνθετων τύπων.

Ομαδοποίηση Στοιχείων Mε sequence Το στοιχείο sequence χρησιμοποιείται για να δηλώσει (διατεταγμένη) ακολουθία (υπό)στοιχείων. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> <xs:element name= πατρώνυμο type= xs:string /> </xs:sequence> </xs:complextype> Δηλώνεται ότι κάθε στοιχείο τύπου studenttype πρέπει να περιλαμβάει ένα υποστοιχείο όνομα, ακολουθούμενο από ένα υποστοιχείο επώνυμο και από ένα υποστοιχείο πατρώνυμο. Και τα τρία (υπό)στοιχεία είναι τύπου string.

Ομαδοποίηση Στοιχείων Mε choice Το στοιχείο choice επιτρέπει την εμφάνιση κάθε φορά ενός μόνο από τα (υπο)στοιχεία που περιλαμβάνει, ως περιεχόμενο του στοιχείου που ανήκει στον συγκεκριμένο τύπο. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:choice> <xs:element name= oνοματεπώνυμο type= xs:string /> <xs:sequence> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> </xs:sequence> </xs:choice> </xs:complextype > Δηλώνεται ότι κάθε στοιχείο του τύπου studenttype έχει ως περιεχόμενο είτε το στοιχείο ονοματεπώνυμο είτε ένα στοιχείο όνομα ακολουθούμενο από ένα στοιχείο επώνυμο.

Ομαδοποίηση Στοιχείων Mε all Με το στοιχείο all δηλώνεται ότι κάθε στοιχείο της ομάδας εμφανίζεται υποχρεωτικά (ή προαιρετικά αν συνοδεύεται με το γνώρισμα minoccurs=0). Η σειρά εμφάνισης δεν παίζει ρόλο. Επιτρεπτές τιμές των minoccurs και maxoccurs στις δηλώσεις των στοιχείων του all είναι οι 0 και 1. Το all πρέπει να εμφανίζεται ως το μοναδικό υποστοιχείο του complextype. Παράδειγμα. Στο παρακάτω: <xs:complextype name= studenttype > <xs:all> <xs:element name= όνομα type= xs:string /> <xs:element name= επώνυμο type= xs:string /> <xs:element name= πατρώνυμο type= xs:string minoccurs=0/> </xs:all> </xs:complextype > Δηλώνεται ότι κάθε στοιχείο του τύπου studenttype περιλαμβάνει από μια εμφάνιση καθενός από τα στοιχεία όνομα, επώνυμο και μια ή καμία εμφάνιση του στοιχείου πατρώνυμο, αλλά με οποιαδήποτε σειρά.

XML Schema Συνοπτικά: Εντολές Συντακτικού (1/2) <xs:attribute> Δήλωση των attributes (ιδιοτήτων) των elements. <xs:choice> Επιλογή ενός element από έναν συγκεκριμένο αριθμό elements που μας δίνονται. <xs:sequence> Τα elements πρέπει να εμφανίζονται στην σειρά. <xs:all> Τα elements εμφανίζονται μία ή καμία φορά και με οποιαδήποτε σειρά. Περιορισμοί - Παραδείγματα: (α) Η τιμή του element age δεν μπορεί να είναι μικρότερη από 0 ή μεγαλύτερη από 120.

XML Schema Συνοπτικά: Εντολές Συντακτικού (2/2) Περιορισμοί - Παραδείγματα: (β) Το element car μπορεί να πάρει μόνο μια από τις παρακάτω τιμές. (γ) Το element letter μπορεί να πάρει τιμές μία από τα μικρά γράμματα από a έως z.

XML Schema Περιορισμοί

XML Validator - XSD (XML Schema) Validator & Tools Μπορείτε να χρησιμοποιήσετε το παρακάτω link για να μεταβείτε σε ένα online εργαλείο που επιτρέπει να ελέγξετε την εγκυρότητα του xml εγγράφου σας, αλλά και την εγκυρότητα ενός xml schema. http://www.freeformatter.com/xml-validator-xsd.html Επιλέξτε έναν editor, όπως τον XMLSpy ή τον oxygen XML Editor. Εγκαταστήστε τον στον υπολογιστή σας πριν ξεκινήσετε τις εργασίες του μαθήματος αυτού. Κατεβάστε ένα πλήρως λειτουργικό εργαλείο, το δωρεάν για 30 μέρες (trial) XMLSpy από το http://www.altova.com/download-trial.html ή Κατεβάστε το oxygen XML Editor δωρεάν για 30 ημέρες (απαιτεί trial license key) από το http://www.oxygenxml.com/xml_editor/download_oxygenxml_editor.html Μια ευρεία ποικιλία XML εργαλείων είναι διαθέσιμα από το W3C XML Web: site: http://www.w3.org/xml/schema#tools.

XML Schema Άσκηση 1 (1/2) Να καθοριστεί νέος τύπος δεδομένων σε ένα XML Schema, ο οποίος να διαδέχεται τις ακέραιες τιμές από -100 έως το 500.

XML Schema Άσκηση 1 - Λύση (2/2) Tο XML Schema φαίνεται παρακάτω:

XML Schema Άσκηση 2 (1/2) Ορίστε ένα XSD έγγραφο, το οποίο επικυρώνει (validate) XML έγγραφα, τα οποία περιγράφουν δυαδικές συμβολοσειρές (binary strings). Το στοιχείο ρίζα (root element) <binary> περιλαμβάνει μία τυχαία ακολουθία των στοιχείων <uno> και <zero> σε οποιαδήποτε σειρά.

XML Schema Άσκηση 2 - Λύση (2/2) <xs:element name="binary"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element name="zero" type="xs:unsignedbyte" fixed="0"/> </xs:choice> </xs:complextype> </xs:element> <xs:element name="uno" type="xs:unsignedbyte" fixed="1"/> <binary> <uno>1</uno> <zero>0</zero> <zero>0</zero> <uno>1</uno> </binary>

XML Schema Άσκηση 3 (1/3) Δίνεται το παρακάτω XML Έγγραφο (businesscard.xml). Να γραφεί το XML Schema για το παραπάνω έγγραφο και να γίνει validate χρησιμοποιώντας ένα XML Spy Εργαλείο (π.χ. Trial version of Altova). Υποθέστε ότι: o σε ένα «BusinessCard» μπορεί να υπάρχουν απεριόριστα phone elements, o Οι τιμές που μπορεί να πάρει το attribute type του phone element είναι: mobile, work, fax, home και είναι υποχρεωτικό να υπάρχει. o Το «email» μπορεί να μην υπάρχει και καθόλου σε ένα «BusinessCard» o Όλα τα δεδομένα είναι τύπου string.

XML Schema Άσκηση 3 (2/3) businesscard.xsd

XML Schema Άσκηση 3 (3/3) businesscard.xml

XML Schema Άσκηση 4 (1/6) Να δοθεί ένα XML αρχείο (μη χρησιμοποιώντας ιδιότητες), το οποίο να περιλαμβάνει τις ακόλουθες πληροφορίες: το social security number (123456789A), το first name ενός person είναι Jack, και το last name του είναι Taylor, η address του αποτελείται από το postcode (0500), την city (Boston) και την street (Hamilton street), και τα telephone numbers είναι 12345 και 6789. Να δοθεί η δενδρική δομή του παραπάνω XML αρχείου. Να δοθεί το αντίστοιχο DTD του παραπάνω XML αρχείου. Να δοθεί ένα XML Schema για το παραπάνω XML αρχείο, χρησιμοποιώντας το social security number σαν ιδιότητα. Με βάση το XML Schema που δημιουργήθηκε (χρησιμοποιώντας το social security number σαν ιδιότητα) να δοθεί ένα νέο XML αρχείο.

XML Schema Άσκηση 4 - Λύση (2/6) Tο XML αρχείο φαίνεται παρακάτω.

XML Schema Άσκηση 4 - Λύση (3/6) Η δενδρική δομή του XML αρχείου φαίνεται παρακάτω.

XML Schema Άσκηση 4 - Λύση (4/6) Tο DTD φαίνεται παρακάτω.

XML Schema Άσκηση 4 - Λύση (5/6) Tο XML Schema φαίνεται παρακάτω.

XML Schema Άσκηση 4 - Λύση (6/6) Tο νέο XML αρχείο φαίνεται παρακάτω.

XML Schema Άσκηση 5 (1/2) Δίνεται το students.xml: Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο.

XML Schema Άσκηση 5 - Λύση (2/2) students.xsd

XML Schema Άσκηση 6 (1/2) Δίνεται το email.xml: Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο.

XML Schema Άσκηση 6 - Λύση (2/2) email.xsd

XML Schema Άσκηση 7 (1/2) Δίνεται το catalog.xml (describe a Product catalog): Δημιουργήστε το κατάλληλο xsd αρχείο για το παραπάνω έγγραφο ακολουθώντας τους παρακάτω κανόνες: Κάθε <catalog> θα πρέπει να έχει ακριβώς ένα στοιχείο <title> και ένα στοιχείο <introduction>. Τα <introduction> και <description> μπορούν να έχουν τουλάχιστον ένα παιδί στοιχείο <para>. Κάθε στοιχείο <catalog> μπορεί να έχει το λιγότερο ένα στοιχείο <product>. Κάθε στοιχείο <product> θα έχει ακριβώς ένα στοιχείο <title> και το λιγότερο ένα στοιχείο-παιδί <para>. Το απαιτούμενο id attribute δεν θα περιέχει κενό και θα είναι μοναδικό ανάμεσα σε όλα τα στοιχεία <product>. Το attribute price αναπαριστά ποσότητες χρημάτων και είναι προαιρετικό.

XML Schema Άσκηση 7 - Λύση (2/2) catalog.xsd

XML Schema Ερώτηση 1 Επέλεξτε ποια δύο από τα παρακάτω elements είναι XML Schema element το οποίο ορίζει μια σειρά από αριθμούς μεταξύ 1 και 5 για το element Telephone_Number. <xs:element name="telephone_number" type="xs:string" /> Πιθανές Απαντήσεις: a. <xs:element ref="telephone_number" mininclusive="1" maxinclusive="5" /> b. <xs:element ref="telephone_number" minoccurs="1" maxoccurs="5" /> c. <xs:element ref="telephone_number" maxinclusive="5" /> d. <xs:element ref="telephone_number" maxoccurs="5" />

XML Schema Ερώτηση 2 (1/2) Επέλεξε ποια τρία από τα παρακάτω είναι valid XML document έχοντας υπόψη το παρακάτω XML Schema Document. XML Schema Document <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="data" type="datatype" /> <xs:complextype name="datatype"> <xs:sequence> <xs:element ref="datafile" maxoccurs="100" /> </xs:sequence> </xs:complextype> <xs:element name="datafile" type="datafiletype" /> <xs:complextype name="datafiletype"> <xs:sequence> <xs:element ref="datafilename" /> </xs:sequence> </xs:complextype> <xs:element name="datafilename" type="xs:string" /> </xs:schema>

XML Schema Ερώτηση 2 (2/2) a. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> <DataFile> <DataFileName>productList.xml</DataFileName> </DataFile> </Data> c. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> </Data> b. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile> <DataFileName>accountList.xml</DataFileName> <DataFileName>productList.xml</DataFileName> </DataFile> </Data> d. <?xml version="1.0" encoding="utf-8"?> <DataFile> <DataFileName>accountList.xml</DataFileName> </DataFile> e. <?xml version="1.0" encoding="utf-8"?> <Data> <DataFile/> </Data>

XML Schema Ερώτηση 3 Επέλεξε ποιο από τα παρακάτω είναι σωστός συνδυασμός XML Schema elements όταν ένα «simple type» element ορίζεται από το the XML Schema, και περιορισμοί (restrictions) εφαρμόζονται στον «simple type». a. element element, simpletype element, extension element b. element element, complextype element, extension element c. element element, simpletype element, restriction element d. element element, complextype element, restriction element

XML Schema Ερώτηση 4 (1/2) Επέλεξε ποιο από τα παρακάτω είναι valid XML document έχοντας υπόψη το παρακάτω XML Schema Document. XML Schema Document <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="birth_date" /> <xs:element ref="hobbies" maxoccurs="30" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:complextype name="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="email_address" /> </xs:sequence> </xs:complextype> <xs:element name="name" type="xs:string" /> <xs:element name="email_address" type="xs:string" /> <xs:element name="birth_date" type="xs:string" /> <xs:element name="hobbies" type="xs:string" /> </xs:schema>

XML Schema Ερώτηση 4 (2/2) a. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> <Birth_Date>1980-03-30</Birth_Date> </Personal_Information> c. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Birth_Date>1980-03-30</Birth_Date> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> </Personal_Information> b. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Name>Taro Yamada</Name> <Email_Address>tyamada@aaa.com</Email_Address> <Birth_Date>1980-03-30</Birth_Date> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> </Personal_Information> d. <?xml version="1.0" encoding="utf-8"?> <Personal_Information> <Hobbies>Listening to music</hobbies> <Hobbies>Watching movies</hobbies> <Birth_Date>1980-03-30</Birth_Date> <Email_Address>tyamada@aaa.com</Email_Address> <Name>Taro Yamada</Name> </Personal_Information>

XML Schema Ερώτηση 5 Επέλεξε ποιο από τα παρακάτω αποτελεί σωστό ορισμό για ένα XML Schema αν θέλετε να ορίσετε ένα ακέραιο αριθμό μικρότερο ή ίσο του μηδενός ως το περιεχόμενο του Discount_Amount element. Υποθέτουμε ότι το XML Schema namespace prefix είναι το xs. a. <xs:element name="discount_amount" type="xs:negativeinteger" /> b. <xs:element name="discount_amount" type="xs:positiveinteger" /> c. <xs:element name="discount_amount" type="xs:"nonnegativeinteger" /> d. <xs:element name="discount_amount" type="xs:nonpositiveinteger" />

XML Schema Ερώτηση 6 (1/3) Επιλέξτε ποιο από τα παρακάτω είναι σωστός ως ορισμός που προσθέτει το Mobile element στο Personal_Information element, το οποίο ορίζεται στο παρακάτω XML Schema Document. XML Schema Document <xs:element name="personal_information" type="personalinfotype" /> <xs:complextype name="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> </xs:sequence> </xs:complextype> <xs:element name="name" type="xs:string" /> <xs:element name="date_of_birth" type="xs:string" /> <xs:element name="hobbies" type="xs:string" />

XML Schema Ερώτηση 6 (2/3) a. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:restriction base="personalinfotype"> <xs:sequence> <xs:element ref="mobile" /> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" /> b. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:restriction base="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> <xs:element ref="mobile" /> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" />

XML Schema Ερώτηση 6 (3/3) c. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="mobile" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" /> d. <xs:element name="personal_information" type="newpersonalinfotype" /> <xs:complextype name="newpersonalinfotype"> <xs:complexcontent> <xs:extension base="personalinfotype"> <xs:sequence> <xs:element ref="name" /> <xs:element ref="date_of_birth" /> <xs:element ref="hobbies" minoccurs="1" maxoccurs="30" /> <xs:element ref="mobile" /> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:element name="mobile" type="xs:string" />

XML Schema Ερώτηση 7 Επέλεξε ποιος από τους παρακάτω XML Schema ορισμούς, επιστρέφει πάντα το Bag ως περιεχόμενο του ProductGenre. a. <xs:element name="productgenre type="xs:string" default="bag" /> b. <xs:element name="productgenre type="xs:string" fixed="bag" /> c. <xs:element name="productgenre type="xs:string" use="bag" /> d. <xs:element name="productgenre type="xs:string" optional="bag" />

Ερωτήσεις??