Introducció

En el document anterior s'ha explicitat que un document XML consta de 3 parts diferenciades:

  • Declaració document XML
  • Declaració de tipus de document
  • Contingut document XML

Aquest element es centra en la tercera part: contingut de document XML i s'explicita els diferents tipus d'elements que pot contenir un document XML i quines són les normes que ha de seguir cada un d'aquests elements.

Etiqueta

Tota etiqueta està inclosa entre els símbols "<" i ">". Cada etiqueta ha de complir una sèrie de normes:

Regles etiquetes

  • El nom d'una etiqueta és case-sensitive.
  • El nom d'una etiqueta pot contenir lletres, números i símbol de subratllat "_".
  • El nom d'una etiqueta no pot començar amb un número o signe de puntuació.
  • Els noms de les etiquetes no poden començar amb cap combinació de majúscules/minúscules resultants de la cadena xml (, són totes etiquetes incorrectes).
  • El nom d'una etiqueta no pot contenir espais en blanc.
  • Totes les etiquetes obertes s'han de tancar

Bones pràctiques en la denominació de les etiquetes

  • Els noms de les etiquetes han de ser curts i descriptius.
  • Evitar els accents.

Contingut etiquetes

Les etiquetes poden contenir:

  • Dades (informació)
  • Altres etiquetes
  • Atributs
  • Qualsevol combinació dels anteriors

Funció etiquetes

  • Donar significat a una part del document. Quan es crea una etiqueta estem indicant que l'etiqueta ens dóna informació sobre un determinat nom, però només amb aquesta etiqueta no sabem si és d'una persona, de la mascota, d'un vaixell...

  • Estructurar la informació. L'aniuament d'etiquetes permet estructurar la informació d'una forma lògica, de forma que ens ajuda a entendre el document i al seu processament.


<?xml version="1.0" ?>
<vaixell>
    <nom>...</nom>
    <patro>
        <nom>...</nom>
    </patro>
</vaixell>

En el codi d'exemple de document XML anterior hi ha dues etiquetes amb el mateix nom ("nom"). En aquest cas, deduim que la primera etiqueta "nom" fa referència al nom del vaixell, mentre que la segona ; inclosa dins de l'etiqueta "patro", fa referència al nom del patró del vaixell.

Atribut

Els atributs sempre s'especifiquen en l'obertura de l'etiqueta , després del seu nom. Tot atribut en XML té associat un valor. Associem el valor a un atribut incloent el símbol "=" i el valor propi després del nom de l'atribut.

Exemple


<?xml version="1.0" ?>
<etiq nomAtribut="valor">

En una etiqueta es poden definir múltiples atributs. Separarem cada un dels atributs utilitzant un espai (" "). L'ordre dels atributs no és important.

Exemple


<?xml version="1.0" ?>
<etiq nomAtribut1="valor1" nomAtribut2="valor2">

El codi anterior i el següent són equivalents


<?xml version="1.0" ?>
<etiq nomAtribut2="valor2" nomAtribut1="valor1">

Regles atributs

  • El nom d'un atribut és case-sensitive.
  • El nom d'un atribut pot contenir lletres, números i altres caràcters.
  • El nom d'un atribut no pot començar amb un número o signe de puntuació.
  • El nom d'una atribut no pot contenir espais en blanc.
  • El valor d'un atribut sempre estarà contingut amb cometes simples (') o dobles (").
  • El valor d'un atribut no pot ser multivalor.
  • En una mateixa etiqueta no hi poden haver dos atributs amb el mateix nom.

Funció

Un atribut és un element que ens permet afegir informació sobre una determinada etiqueta. Podem pensar en un atribut com en una metadata.

Etiquetes vs Atributs

Tot i que ha diferències entre atributs i etiquetes , moltes vegades un atribut pot ser substituït per una etiqueta i viceversa. El criteri a seguir serà utilitzar sempre aquell element que simplifiqui la comprensió del contingut XML. Així, per exemple, el codi XML expressa de forma clara el contingut.


<?xml version="1.0" ?>
<vaixell>
    <nom>...</nom>
    <patro>
        <nom>...</nom>
        <email>...</email>
    </patro>
</vaixell>

Si es converteix a atributs,


<?xml version="1.0" ?>
<vaixell nomvaixell="..." nompatro="..." email="..." />

Tot i que l'estructura és més simple, la comprensió del contingut és més dificultosa (cal tenir en compte que es tracta d'un exemple molt simple!)

Comentaris

Tot i que normalment els documents XML són auto-explicatius, és convenient explicar algunes de les decisions preses. La documentació ens ajuda a millorar la comprensió i a entendre la motivació d'algunes decisions.

El llenguatge XML permet la inclusió de comentaris mitjançant el tag per a indicar la finalització del mateix. El comentari pot ocupar una o vàries línies.

Format comentari


<!-- Text del comentari -->

<?xml version="1.0" ?>
<!-- L'objectiu d'aquest document ... -->
<vaixell nomvaixell="..." nompatro="..." email="..." />

Entitats

Una entitat és una cadena de caràcters que simbolitzen un determinat caràcter. Suposem que en el nostre document XML volem introduir una expressió com "x<y". El document XML que podríem crear seria:


<?xml version="1.0" ?>
<comparacio>
    x<y
</comparacio>

Aquest document XML que és perfectament comprensible per a les persones no ho és per un ordinador i el sistema ens donaria un error. El problema resideix en que el símbol "<" és interpretat com a obertura d'una etiqueta pel processador de XML. En aquest cas el que hem de fer és codificar el símbol "<" per tal que el processador pugui diferenciar entre el símbol "més petit que" i l'obertura d'una etiqueta. L'entitat que s'ha d'utilitzar per a substituir el símbol "més petit que" és "<"


<?xml version="1.0" ?>
<comparacio>
    x&lt;y
</comparacio>

Taula d'entitats definides en XML

Símbol Substitució
< <
> >
"
'
& &

Video: Com utilitzar entitats predefinides en XML

Seccions CDATA

Si el contingut d'un document XML conté de forma ocasional algun caràcter especial podem utilitzar la codificació del símbol. Ara bé, si la presència de símbols especials és elevada, l'utilització de símbols especials pot dificultar la seva lectura. Suposa que volem incloure el següent programa Java en un document XML.


   class test{  
     public static void main(String args[]){  
       String s1="Freedom";  
       String s2="For";  
       String s3="Catalonia";  
       if (s1.compareTo(s2)>0 && s3.compareTo(s2)<0) {  // s1>s2 and s3<s2    
             System.out.println(s1+" "+s2+" "+s3);  
       }
     }  
   }

Utilitzant la codificació de les entitats obtindríem el següent codi:


<?xml version="1.0" ?>
<codi>
      class test{
          public static void main(String args[]){
                  String s1=&quot;Freedom&quot;;
                  String s2=&quot;For&quot;;
                  String s3=&quot;Catalonia&quot;;
                  if (s1.compareTo(s2)&gt;&amp;&amp; s3.compareTo(s2)&lt;0) { // s1&gt;s2 and s3&lt;s2
             System.out.println(s1+&quot; &quot;+s2+&quot; &quot;+s3);
                  }
          }
      }
</codi>

Com es pot observar , la lectura del document XML és com a mínim dificultosa.

Sintaxis secció CDATA

Per a incloure una secció CDATA en un document XML utilitzarem la següent notació:

Obertura secció CDATA Tancament secció CDATA
<![CDATA[ ]]>

El codi s'inclourà entre l'obertura i el tancament sense necessitat de codificar els caràcters especials.

<![CDATA[  
    contingut secció
]]>

Exemple

En el següent codi es pot observar com quedaria el document XML utilitzant una secció CDATA amb el codi java de l'exemple anterior.


<?xml version="1.0" ?>
<codi>
    <!-- Inici secció CDATA -->
   <![CDATA[
      class test{  
        public static void main(String args[]){  
          String s1="Freedom";  
          String s2="For";  
          String s3="Catalonia";  
          if (s1.compareTo(s2)>0 && s3.compareTo(s2)<0) {  // s1>s2 and s3<s2    
                System.out.println(s1+" "+s2+" "+s3);  
          }
        }  
      }  
   ]]>
   <!-- Final secció CDATA -->

</codi>

En aquest cas, el document XML es pot llegir sense cap mena de dificultat.

Video: XML entitats vs CDATA

results matching ""

    No results matching ""