XML Extensible Markup Language: diferència entre les revisions
(→CDATA) |
|||
Línia 96: | Línia 96: | ||
====CDATA==== | ====CDATA==== | ||
Conté caràcters sense restriccions. | :Conté caràcters sense restriccions. | ||
:Exemple: | ::Exemple: | ||
::<!ATTLIST persona correu CDATA #REQUIRED> | :::<!ATTLIST persona correu CDATA #REQUIRED> | ||
:XML: | ::XML: | ||
::<persona correu=’jomp@gmail.com’/> | :::<persona correu=’jomp@gmail.com’/> | ||
:Conté lletres, dígits i els caràcters «.», «:», «-», «_». | ::Conté lletres, dígits i els caràcters «.», «:», «-», «_». | ||
:Exemple: | ::Exemple: | ||
::<!ATTLIST persona nom NMTOKEN #REQUIRED> | :::<!ATTLIST persona nom NMTOKEN #REQUIRED> | ||
:XML: | ::XML: | ||
::<persona nom=’Josep’/> | :::<persona nom=’Josep’/> | ||
====NMTOKENS==== | ====NMTOKENS==== |
Revisió del 01:37, 27 nov 2020
Exemple XML
<email>
- <remitent>
- <persona>
- <nom> Josep </nom>
- <cognom>Pons </cognom>
- </persona>
- <persona>
- </remitent>
- <destinatari>
- <adreça> suport@gmail.com</adreça>
- </destinatari>
- <assumpte>El dispositiu no funciona</assumpte>
- <missatge> Necessito que vinguin a revisar el dispositiu. </missatge>
</email>
Plantilla XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nomArxiu SYSTEM "nomArxiu.dtd">
<etiqueta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nomArxiu.xsd">
</etiqueta>
Regles
- El document conté únicament caràcters Unicode vàlids.
- Hi ha un element arrel que conté a la resta d'elements.
- Els noms dels elements i dels seus atributs no contenen espais.
- El primer caràcter d'un nom d'element o d'atribut pot ser una lletra, dos punts o subratllat (_).
- La resta de caràcters poden ser també números, guions (-) o punts (.).
- Els caràcters "<" i "&" només s'utilitzen com a començament de marques.
- Les etiquetes d'obertura, de tancament i buides estan correctament niades (no se solapen) i no cal ni sobra cap etiqueta d'obertura o tancament.
- Les etiquetes de tancament coincideixen amb les d'obertura (fins i tot en l'ús de majúscules i minúscules).
- Les etiquetes de tancament no contenen atributs.
- Cap etiqueta te dos atributs amb el mateix nom.
- Tots els atributs tenen algun valor.
- Els valors dels atributs estan entre cometes.
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’/>
- 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">