|
|
Línia 41: |
Línia 41: |
| #Tots els atributs tenen algun valor. | | #Tots els atributs tenen algun valor. |
| #Els valors dels atributs estan entre cometes. | | #Els valors dels atributs estan entre cometes. |
|
| |
| ==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’/>
| |
|
| |
| ::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í’/>
| |
|
| |
| ====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">
| |