mercoledì 7 maggio 2014

Simboli relativi alle occorrenze di un tag

Ora vediamo di capire i simboli che significano il numero di occorrenze di un tag.
Scrivo un + che dovrebbe significare una o più volte, e provo:

Con zero occorrenze del tag:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo+)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
</capitolo> 
Non valido


Con una occorrenza del tag:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo+)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
   <paragrafo>
   </paragrafo>
</capitolo> 
Valido!


con più occorrenze del tag:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo+)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
   <paragrafo>
   </paragrafo>
   <paragrafo>
   </paragrafo>
</capitolo> 
Valido!

Adesso con *, che dovrebbe significare "zero o più volte".

Zero occorrenze:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo*)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
</capitolo> 
Valido!


Una occorrenza:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo*)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
   <paragrafo>
   </paragrafo>
</capitolo> 
Valido!


Con più occorrenze:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo*)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
   <paragrafo>
   </paragrafo>
   <paragrafo>
   </paragrafo>
</capitolo> 
Valido!

Adesso metto il segno ? che dovrebbe significare zero o una occorrenza, e provo:

Zero occorrenze:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo?)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
</capitolo> 
Valido!


Una occorrenza:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo?)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
 <paragrafo>
 </paragrafo>
</capitolo> 
Valido!


Più occorrenze:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo?)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
 <paragrafo>
 </paragrafo>
 <paragrafo>
 </paragrafo>
</capitolo> 
Non valido

Riassumendo:
+ va da 1 a molte;
* va da 0 a molte;
? va da 0 a una.

Nessun commento:

Posta un commento