{"id":85,"date":"2014-06-18T23:13:48","date_gmt":"2014-06-18T21:13:48","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=85"},"modified":"2014-06-18T23:14:23","modified_gmt":"2014-06-18T21:14:23","slug":"xml-tutorial-3-document-type-definition","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-3-document-type-definition\/","title":{"rendered":"XML TUTORIAL &#8211; 3 &#8211; DOCUMENT TYPE DEFINITION"},"content":{"rendered":"<p style=\"color: #0d293f; text-align: justify;\">Il Document Type Definitio, detto Dtd, \u00e8 un documento che descrive i tag previsti in un documento XML, la loro relazione e le informazioni sugli attributi di ciascun tag.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">All&#8217;interno di un Dtd si individuano essenzialmente 2 tag:<\/p>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li><strong>&lt;!ELEMENT&gt;<\/strong><\/li>\n<li><strong>&lt;!ATTLIST&gt;<\/strong><\/li>\n<\/ul>\n<p style=\"color: #0d293f; text-align: justify;\">&lt;!ELEMNT&gt; definisce gli elementi del documento, la loro relazione e di conseguenza la struttura del documento.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">&lt;!ATTLIST&gt; definisce la lista di attributi di ciascun elemento.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">La sintassi del Dtd prevede l&#8217;utilizzo di alcuni operatori per individuare l&#8217;occorrenza degli elementi in uno schema.<\/p>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li>\n<p class=\"codice\">+ indica che l&#8217;elemento \u00e8 presente\u00a0<strong>una o pi\u00f9<\/strong>\u00a0volte<\/p>\n<\/li>\n<li>\n<p class=\"codice\">* indica che l&#8217;elemento \u00e8 presente\u00a0<strong>zero o pi\u00f9<\/strong>\u00a0volte<\/p>\n<\/li>\n<li>\n<p class=\"codice\">? indica che l&#8217;elemento \u00e8 presente\u00a0<strong>zero o una<\/strong>\u00a0sola volta<\/p>\n<\/li>\n<\/ul>\n<p style=\"color: #0d293f; text-align: justify;\">Dunque un DTD del genere &lt;!ELEMENT libro(autore, capitolo+)&gt; indica che un libro contiene un elemento autore e una o pi\u00f9 occcorenze di un elemente capitolo.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per gestire il contenuto di un elemento si posso usare le parole chiavi EMPTY, PCDATA, CDATA e ANY.<\/p>\n<p class=\"codice\" style=\"color: #0d293f; text-align: justify;\">Un tag vuoto viene definito come &lt;!ELEMENT vuoto EMPTY&gt;, un tag che contiene solo testo prevede una definizione del tipo &lt;!ELEMENT text (#PCDATA)&gt;, se non sono noti valori a priori si usa ANY con una dichiarazione del tipo &lt;!ELEMENT jolly ANY&gt;<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per definire gli attributi di un elemento si usa il tag &lt;!ATTLIST&gt;, con l&#8217;ausilio delle parole chiavi<\/p>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li>#REQUIRED\u00a0(obbligatorio)<\/li>\n<\/ul>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li>\n<p class=\"codice\">#IMPLIED\u00a0\u00a0\u00a0\u00a0 (opzionale)<\/p>\n<\/li>\n<li>\n<p class=\"codice\">#FIXED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (valore fisso)<\/p>\n<\/li>\n<\/ul>\n<p style=\"color: #0d293f; text-align: justify;\">Ad esempio la dichiarazione &lt;!ATTLIST libro titolo\u00a0\u00a0\u00a0CDATA #REQUIRED &gt; indica che l&#8217;elemento libro ha un attributo obbligatorio di tipo testo denominato titolo.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per indicare il Dtd cui fa riferimento un file XML \u00e8 possibile seguire 2 approcci: inserire il Dtd all&#8217;interno del file XML utilizzando il tag !DOCTYPE oppure inserendo il path del file Dtd, che pu\u00f2 essere un path locale o un indirizzo web.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">es. 1\u00a0 &lt;?xml version=&#8221;1.0&#8243;&gt;&lt;!DOCTYPE libro[&#8230;Definizioni del Dtd&#8230;]&gt;<\/p>\n<p class=\"codice\" style=\"color: #0d293f; text-align: justify;\">es. 2\u00a0 &lt;?xml version=&#8221;1.0&#8243;&gt;&lt;!DOCTYPE libro SYSTEM &#8220;articolo.dtd&#8221;&gt;<\/p>\n<p class=\"codice\" style=\"color: #0d293f; text-align: justify;\">es.3\u00a0 &lt;?xml version=&#8221;1.0&#8243;&gt;&lt;!DOCTYPE articolo SYSTEM http:\/\/www.valeriofinazzo.it\/libro.dtd&#8221;&gt;<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Con l&#8217;uso dei Dtd un parser pu\u00f2 verificare la correttezza sintattica di un file xml, tuttavia alcune limitazioni del Dtd ne sconsigliano l&#8217;uso in favore di un altro approccio, quello dell&#8217;XML Schema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il Document Type Definitio, detto Dtd, \u00e8 un documento che descrive i tag previsti in un documento XML, la loro relazione e le informazioni sugli attributi di ciascun tag. All&#8217;interno di un Dtd si individuano essenzialmente 2 tag: &lt;!ELEMENT&gt; &lt;!ATTLIST&gt; &lt;!ELEMNT&gt; definisce gli elementi del documento, la loro relazione e di conseguenza la struttura del &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-3-document-type-definition\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">XML TUTORIAL &#8211; 3 &#8211; DOCUMENT TYPE 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],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/85"}],"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=85"}],"version-history":[{"count":2,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":87,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/85\/revisions\/87"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}