XML Extensible Markup Language: diferència entre les revisions

De FFAWiki
Línia 71: Línia 71:
XML:<br>
XML:<br>
:<nowiki><br/></nowiki>
:<nowiki><br/></nowiki>
=== Elements que contenen altres elements ===


'''Quan els elements contenen altres elements, Hem de considerar els seguents modificadors:'''
'''Quan els elements contenen altres elements, Hem de considerar els seguents modificadors:'''

Revisió del 01:05, 27 nov 2020


Exemple XML

<email>

<remitent>
<persona>
<nom> Josep </nom>
<cognom>Pons </cognom>
</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

  1. El document conté únicament caràcters Unicode vàlids.
  2. Hi ha un element arrel que conté a la resta d'elements.
  3. Els noms dels elements i dels seus atributs no contenen espais.
  4. El primer caràcter d'un nom d'element o d'atribut pot ser una lletra, dos punts o subratllat (_).
  5. La resta de caràcters poden ser també números, guions (-) o punts (.).
  6. Els caràcters "<" i "&" només s'utilitzen com a començament de marques.
  7. 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.
  8. Les etiquetes de tancament coincideixen amb les d'obertura (fins i tot en l'ús de majúscules i minúscules).
  9. Les etiquetes de tancament no contenen atributs.
  10. Cap etiqueta te dos atributs amb el mateix nom.
  11. Tots els atributs tenen algun valor.
  12. 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)