DTD Document Type Definitions: diferència entre les revisions

De FFAWiki
Cap resum de modificació
 
(10 revisions intermèdies per 2 usuaris que no es mostren)
Línia 9: Línia 9:
<li>Elements <body>some text</body></li>
<li>Elements <body>some text</body></li>
<li>Atributs <img src="computer.gif" /></li>
<li>Atributs <img src="computer.gif" /></li>
<li>Entitats & l t; &gt; &amp; &quot; &apos;</li>
<li>Entitats &amp;lt; &amp;gt; &amp;amp; &amp;quot; &amp;apos;</li>
<li>PCDATA Parsed data (dades que el sistema comprovarà)</li>
<li>PCDATA Parsed data (dades que el sistema comprovarà)</li>
<li>CDATA Non-parsed data (dades que el sistema no comprovarà)</li>
<li>CDATA Non-parsed data (dades que el sistema no comprovarà)</li>


==[[Plantilla DTD]]==
==[[Plantilla DTD]]==
:'''per el xml'''
::<!DOCTYPE escacs SYSTEM "FmayolaXSDAct2.dtd">
:'''per el dtd'''
::<!ELEMENT llibre (----,----)+*?>
::<!ELEMENT titol (#PCDATA)>
::<!ATTLIST titol ------ CDATA #REQUIRED>
==Elements DTD==
===Elements que contenen dades===
:<!ELEMENT nom-element categoria><br>
::Exemple:<br>
:::<!ELEMENT exemple (#PCDATA)><br>
::XML:<br>
:::<exemple>dades exemple</exemple><br>
===Elements que contenen elements===
:<!ELEMENT nom-element (elements fills)><br>
::Exemple:<br>
:::<!ELEMENT persona (nom,cognom)><br>
::XML:<br>
:::<persona>
::::<nom>dades exemple</nom>
::::<cognom>dades exemple</cognom>
:::</persona>
===Elements buits===
:<!ELEMENT nom-element EMPTY><br>
::Exemple:<br>
:::<!ELEMENT br EMPTY><br>
:XML:<br>
::<nowiki><br/></nowiki>
=== Elements que contenen altres elements ===
:'''Quan els elements contenen altres elements, Hem de considerar els seguents modificadors:'''
::<!ELEMENT persona (nom,cognom)> Si no s’indica res els elements han d’apareixer 1 vegada (obligatòriament) i han de seguir l’ordre que s’indica.<br>
::<!ELEMENT persona (nom|cognom)> Amb el modificador lògic | (or) indiquem que hem de triar entre l’element nom i l’element cognom. O un o l’altre.<br>
::<!ELEMENT persona (nom?,cognom)>  Amb el modificador ? Indiquem que nom pot aparèixer una vegada o cap. Es a dir que és opcional.<br>
::<!ELEMENT persona (nom*,cognom)>  Amb el modificador * Indiquem que nom pot aparèixer una vegada, moltes o cap. Es a dir que és '''opcional''' i pot aparèixer tantes vegades com vulgui.<br>
::<!ELEMENT persona (nom+,cognom)>  Amb el modificador + Indiquem que nom pot aparèixer una vegada o moltes. Es a dir que és '''obligatori''' i pot aparèixer tantes vegades com vulgui.<br>
::Si aquests modificadors es troben fora dels parèntesis afecten a tot el conjunt que hi ha dintre d’aquest.<br>
::(nom*,cognom) afecta només a nom (nom,cognom)* afecta al conjunt (nom, cognom)
==Atributs DTD==
<!ATTLISTnom-element nom-atribut tipus-atribut valor- inicial-atribut>
DTD example:
:<!ATTLIST persona nom CDATA #REQUIRED>
'''Tipus d’atribut:'''
====CDATA====
:Conté caràcters sense restriccions.
::Exemple:
:::<!ATTLIST persona correu CDATA #REQUIRED>
::XML:
:::<persona correu=’jomp@gmail.com’/>
====NMTOKEN====
:Conté lletres, dígits i els caràcters «.», «:», «-», «_».
::Exemple:
:::<!ATTLIST persona nom NMTOKEN #REQUIRED>
::XML:
:::<persona nom=’Josep’/>
====NMTOKENS====
:Conté lletres, dígits i els caràcters «.», «:», «-», «_» i espais en blanc.
::Exemple:
:::<!ATTLIST habitacio color NMTOKENS #REQUIRED>
::XML:
:::<Habitacio color=’Blau marí’/>
====Valors====
:Conté un atribut d’una llista de valors separats per |, la llista ha d’escriure’s entre parèntesis.
::Exemple:
:::<!ATTLIST habitacio color (blau|verd|rosa) #REQUIRED>
::XML:
:::<Habitacio color=’blau’/>
====ID====
:El valor de l’atribut ha de ser únic, '''no pot començar per un número.'''
::Exemple:
:::<!ATTLIST Llibre codi ID #REQUIRED>
::XML:
:::<Llibre codi=’ISBN1365’/>
====IDREF====
:El valor  ha de coincidir amb el valor de l’atribut ID d’un altre element.
::Exemple:
:::<!ATTLIST Llibre codi ID #REQUIRED>
:::<!ATTLIST Prestec llibre IDREF #REQUIRED>
::XML:
:::<Llibre codi=’ISBN1365’/>
:::<Prestec llibre=’ISBN1365’/>
==Valors inicials d’un atribut:==
====#REQUIRED====
:Atribut obligatori.
::Exemple:
:::<!ATTLIST exemple color CDATA #REQUIRED>
::XML:
:::<exemple color="" />
====#IMPLIED====
:Atribut opcional.
::Exemple:
:::<!ATTLIST exemple color CDATA #IMPLIED>
::XML:
:<exemple/>
====#FIXED====
:L’atribut conté un valor fix,  Però l’atribut és opcional.
::Exemple:
:::<!ATTLIST exemple color CDATA #FIXED ‘verd’>
::XML:
:::<exemple color="verd" />
:::<exemple/>
====Valor====
:Podem posar el valor de l’atribut predeterminat
::Exemple:
:::<!ATTLIST exemple color CDATA ‘verd’>
::XML:
:::<exemple color="verd" />
:::<exemple/>
:::<exemple color="" />
==Referència a un arxiu DTD==
Per referenciar l’arxiu DTD desde el nostre XML, ens hem d’assegurar que estigui a la mateixa carpeta. L’anomenarem amb el mateix nom que el nostre XML per a no crear confusions, però amb l’extensió .dtd.
Desde el nostre XML el cridarem amb la següent línia:
:<?xml version="1.0" encoding="UTF-8"?>
:<!DOCTYPE nomArxiu SYSTEM "nomArxiu.dtd">

Revisió de 10:48, 16 gen 2021

  • Defineix l’estructura i els elements i atributs legals d’un tipus de document XML
  • El DTD és en sí mateix un llenguatge de marques basat en SGML (anterior a XML)
  • És el primer tipus que es va inventar. Per tant, té les seves limitacions
  • Tot i així, encara s’utiltiza, per exemple, en XHTML i HTML5
  • Elements de creació amb DTD

  • Elements <body>some text</body>
  • Atributs <img src="computer.gif" />
  • Entitats &lt; &gt; &amp; &quot; &apos;
  • PCDATA Parsed data (dades que el sistema comprovarà)
  • CDATA Non-parsed data (dades que el sistema no comprovarà)
  • Plantilla DTD

    per el xml
    <!DOCTYPE escacs SYSTEM "FmayolaXSDAct2.dtd">
    per el dtd
    <!ELEMENT llibre (----,----)+*?>
    <!ELEMENT titol (#PCDATA)>
    <!ATTLIST titol ------ CDATA #REQUIRED>

    Elements DTD

    Elements que contenen dades

    <!ELEMENT nom-element categoria>
    Exemple:
    <!ELEMENT exemple (#PCDATA)>
    XML:
    <exemple>dades exemple</exemple>

    Elements que contenen elements

    <!ELEMENT nom-element (elements fills)>
    Exemple:
    <!ELEMENT persona (nom,cognom)>
    XML:
    <persona>
    <nom>dades exemple</nom>
    <cognom>dades exemple</cognom>
    </persona>

    Elements buits

    <!ELEMENT nom-element EMPTY>
    Exemple:
    <!ELEMENT br EMPTY>
    XML:
    <br/>

    Elements que contenen altres elements

    Quan els elements contenen altres elements, Hem de considerar els seguents modificadors:
    <!ELEMENT persona (nom,cognom)> Si no s’indica res els elements han d’apareixer 1 vegada (obligatòriament) i han de seguir l’ordre que s’indica.
    <!ELEMENT persona (nom|cognom)> Amb el modificador lògic | (or) indiquem que hem de triar entre l’element nom i l’element cognom. O un o l’altre.
    <!ELEMENT persona (nom?,cognom)> Amb el modificador ? Indiquem que nom pot aparèixer una vegada o cap. Es a dir que és opcional.
    <!ELEMENT persona (nom*,cognom)> Amb el modificador * Indiquem que nom pot aparèixer una vegada, moltes o cap. Es a dir que és opcional i pot aparèixer tantes vegades com vulgui.
    <!ELEMENT persona (nom+,cognom)> Amb el modificador + Indiquem que nom pot aparèixer una vegada o moltes. Es a dir que és obligatori i pot aparèixer tantes vegades com vulgui.
    Si aquests modificadors es troben fora dels parèntesis afecten a tot el conjunt que hi ha dintre d’aquest.
    (nom*,cognom) afecta només a nom (nom,cognom)* afecta al conjunt (nom, cognom)

    Atributs DTD

    <!ATTLISTnom-element nom-atribut tipus-atribut valor- inicial-atribut>

    DTD example:

    <!ATTLIST persona nom CDATA #REQUIRED>

    Tipus d’atribut:

    CDATA

    Conté caràcters sense restriccions.
    Exemple:
    <!ATTLIST persona correu CDATA #REQUIRED>
    XML:
    <persona correu=’jomp@gmail.com’/>

    NMTOKEN

    Conté lletres, dígits i els caràcters «.», «:», «-», «_».
    Exemple:
    <!ATTLIST persona nom NMTOKEN #REQUIRED>
    XML:
    <persona nom=’Josep’/>

    NMTOKENS

    Conté lletres, dígits i els caràcters «.», «:», «-», «_» i espais en blanc.
    Exemple:
    <!ATTLIST habitacio color NMTOKENS #REQUIRED>
    XML:
    <Habitacio color=’Blau marí’/>

    Valors

    Conté un atribut d’una llista de valors separats per |, la llista ha d’escriure’s entre parèntesis.
    Exemple:
    <!ATTLIST habitacio color (blau|verd|rosa) #REQUIRED>
    XML:
    <Habitacio color=’blau’/>

    ID

    El valor de l’atribut ha de ser únic, no pot començar per un número.
    Exemple:
    <!ATTLIST Llibre codi ID #REQUIRED>
    XML:
    <Llibre codi=’ISBN1365’/>

    IDREF

    El valor ha de coincidir amb el valor de l’atribut ID d’un altre element.
    Exemple:
    <!ATTLIST Llibre codi ID #REQUIRED>
    <!ATTLIST Prestec llibre IDREF #REQUIRED>
    XML:
    <Llibre codi=’ISBN1365’/>
    <Prestec llibre=’ISBN1365’/>

    Valors inicials d’un atribut:

    #REQUIRED

    Atribut obligatori.
    Exemple:
    <!ATTLIST exemple color CDATA #REQUIRED>
    XML:
    <exemple color="" />

    #IMPLIED

    Atribut opcional.
    Exemple:
    <!ATTLIST exemple color CDATA #IMPLIED>
    XML:
    <exemple/>

    #FIXED

    L’atribut conté un valor fix, Però l’atribut és opcional.
    Exemple:
    <!ATTLIST exemple color CDATA #FIXED ‘verd’>
    XML:
    <exemple color="verd" />
    <exemple/>

    Valor

    Podem posar el valor de l’atribut predeterminat
    Exemple:
    <!ATTLIST exemple color CDATA ‘verd’>
    XML:
    <exemple color="verd" />
    <exemple/>
    <exemple color="" />

    Referència a un arxiu DTD

    Per referenciar l’arxiu DTD desde el nostre XML, ens hem d’assegurar que estigui a la mateixa carpeta. L’anomenarem amb el mateix nom que el nostre XML per a no crear confusions, però amb l’extensió .dtd.

    Desde el nostre XML el cridarem amb la següent línia:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE nomArxiu SYSTEM "nomArxiu.dtd">