{"id":88,"date":"2014-06-18T23:16:22","date_gmt":"2014-06-18T21:16:22","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=88"},"modified":"2014-06-18T23:22:12","modified_gmt":"2014-06-18T21:22:12","slug":"xml-tutorial-4-xml-schema-definition","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-4-xml-schema-definition\/","title":{"rendered":"XML TUTORIAL &#8211; 4 &#8211; XML SCHEMA DEFINITION"},"content":{"rendered":"<p style=\"color: #0d293f; text-align: justify;\">Dopo aver visto i limiti del DTD analizziamo l&#8217;altra soluzione che li supera e permette una definizione univoca di tutte le caratteristiche di un file xml.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">L&#8217;XML Schema introduce il concetto di tipo di dato semplice per definire gli elementi che non possono contenere altri elementi e non prevedono attributi. Tali dati semplici possono essere utilizzati per definire elementi pi\u00f9 complessi.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Sono previsti dei dati predefiniti come ad esempio l&#8217;integer, che definisce un numero intero oppure \u00e8 possibile definire altri tipi semplici.<\/p>\n<p class=\"codice\" style=\"color: #0d293f; text-align: justify;\">Ad esempio &lt;xs:element name=&#8221;nome&#8221; type=&#8221;xs:string&#8221; \/&gt; preveve che l&#8217;elemento name in un documento XML possa contenere una sequenza di caratteri.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">A partire dai dati predefiniti \u00e8 possibile definire altri tipi di dati semplici, potendo aggiungere ulteriori restrizioni. Ad esempio possiamo ridefinire l&#8217;elemento nome aggiungendo che sia una stringa di almeno 5 caratteri. La definizione di un tipo semplice utilizza il tag simpleType.<\/p>\n<pre class=\"lang:default decode:true \">&lt;xs:element name=\"nome\" &gt;\r\n&lt;xs:simpleType&gt;\r\n&lt;xs:restriction base=\"xs:string\"&gt;\r\n&lt;xs:minLength value=\"5\" \/&gt;\r\n&lt;\/xs:restriction&gt;\r\n&lt;\/xs:simpleType&gt;\r\n&lt;\/xs:element&gt;<\/pre>\n<p style=\"text-align: justify;\">In altre parole, la dichiarazione indica che l&#8217;elemento &lt;quantita&gt; \u00e8 di tipo semplice e prevede una restrizione sul tipo di dato intero predefinito accettando valori compresi tra 1 e 100.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per dato complesso si intende un elemento che possa contenere altri elementi o avere attributi. La definizione di un elemento complesso si avvale del tag complexType. Per definire gli elementi che un elemento complesso sono disponibili 3 costruttori diversi:<\/p>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li>&lt;xs:sequence&gt;\u00a0Consente di definire una sequenza ordinata di sottoelementi<\/li>\n<li>&lt;xs:choice&gt;\u00a0Consente di definire un elenco di sottoelementi alternativi<\/li>\n<li>&lt;xs:all&gt;\u00a0Consente di definire una sequenza non ordinata di sottoelementi<\/li>\n<\/ul>\n<p style=\"color: #0d293f; text-align: justify;\">Per ciascuno di questi costruttori e per ciascun elemento \u00e8 possibile definire il numero di occorrenze previste utilizzando gli attributi\u00a0minOccurs\u00a0e\u00a0maxOccurs.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per definire gli attributi di un elemento si usa il tag\u00a0&lt;xs:attribute&gt;, che pu\u00f2 essere dichiarato opzionale o obbligatorio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopo aver visto i limiti del DTD analizziamo l&#8217;altra soluzione che li supera e permette una definizione univoca di tutte le caratteristiche di un file xml. L&#8217;XML Schema introduce il concetto di tipo di dato semplice per definire gli elementi che non possono contenere altri elementi e non prevedono attributi. Tali dati semplici possono essere &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-4-xml-schema-definition\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">XML TUTORIAL &#8211; 4 &#8211; XML SCHEMA DEFINITION<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[13,14],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/88"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=88"}],"version-history":[{"count":1,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/88\/revisions"}],"predecessor-version":[{"id":89,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/88\/revisions\/89"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=88"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=88"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}