XML filens uppbyggnad -tags (noder)
En xml fil som används för att uttrycka samma produktinformation 
  som ASCII filen i föregående kapitel kan tänkas se ut på följande 
  sätt
  xml2.xml
<?xml version="1.0"?>
<products>
  	<product>
    		<code>ABC</code>
    		<price>122</price>
    		<amount>4</amount>
  	</product> 
  	<product>
    		<code>XYZ</code>
    		<price>133</price>
    		<amount>1</amount>
  	</product>
  	<product>
    		<code>QDW</code>
    		<price>500</price>
    		<amount>40</amount>
  	</product> 
  	<product>
    		<code>MM</code>
    		<price>21</price>
    		<amount>1</amount>
  	</product> 
</products>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
  En van HTML kodare känner delvis igen sig, såtillvida att XML 
    är ett tag-baserat system. Dokumentet har alltid en rot nod, i 
    detta fall products som alla andra element måste finnas under. 
    Jämför gärna med HTML systemet som har en rotnod som heter 
    html. Till skillnad från HTML så har dock XML inga speciella 
    regler för vad tagsen skall heta. Detta kan vid första anbllicken 
    verka som en mardröm för den som haft svårt att lära 
    sig de vanligaste HTML tagsen - XML är alltså ett system där 
    man kan hitta på siina egna tags vartefter. Fullt så illa är 
    det dock inte som vi skall se senare...
 
XML filens uppbyggnad -attribut
Ovanstående fil innehåller inte mer information än motsvarande 
  ASCII fil. En orsak till detta är att den inte innehåller några 
  attribut (metadata - data om datat). Nedan kommer en variant där vi förutom 
  tagsen har gett dessa attribut. För priset finns det ett valuta-attribut, 
  för antal vinns det ett attribut som beskriver måttenheten.
  xml2_2.xml
<?xml version="1.0"?>  
<products>
  	<product>
    		<code>ABC</code>
    		<price currency="eur">122</price>
    		<amount unit="kg">4</amount>
  	</product>	
  	<product>
    		<code>XYZ</code>
    		<price currency="fim">133</price>
    		<amount unit="units">1</amount>
  	</product>
  	<product>
    		<code>QDW</code>
    		<price currency="eur">500</price>
    		<amount unit="ton">40</amount>
  	</product>	
  	<product>
    		<code>MM</code>
    		<price>21</price>
    		<amount unit="kg">1</amount>
  	</product>	
</products>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
  
Troligtvis sitter nu någon och suckar: "Inte nog med att man kan hitta 
  på egna tags - man får hitta på sina egna attribut dessutom - vilken 
  mardröm!" Fullt så illa är det inte.
En till många relationer i en XML fil
En XML fil kan även uttrycka en till många relationer utan problem. 
  Se nedanstående kodfragment ur en XML fil:
  
xml2_3.xml
<?xml version="1.0"?>  
<records>
  	<record>
    		<artist>Santana</artist>
    		<title>Supernatural</title>
    		<songs>
      			<song length="5.51">(Da Le) Taleo</song>
      			<song length="5.48">Love Of My Life</song>
      			<song length="4.47">Put Your Lights On</song>
      			<song length="4.40">Africa Bamba</song> 
    		</songs>
  	</record> 
</records>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
  
Vi ser tydligt en till många relationen - en skiva har många låtar
Datat består av en rot: records
  En records fil består av ett antal record noder
  En record nod betår av en artist nod, en title nod 
  och en songs nod
  En songs nod består av ett antal song noder
  En song nod har ett attribut (length) som säger hur lång låten 
  är
Noder eller attribut?
Det är inte alltid givet vad som är noder och vad som är atribut. 
  Nedan kommer en annan variant på samma tema som ovanstående:
 
xml2_4.xml
<?xml version="1.0"?>  
<records>
  	<record>
    		<artist>Santana</artist>
    		<title>Supernatural</title>
    		<songs>
      			<song>
        				<length>5.51</length>
        				<title>(Da Le) Taleo</title>
      			</song>
      			<song>
        				<length>5.48</length>
        				<title>Love Of My Life</title>
        				<featuring>Dave Metthews</featuring> 
      			</song>
      			<song>
        				<length>4.47</length>
        				<title>PutYour Lights on</title>
        				<featuring>Everlast</featuring> 
      			</song>
    		</songs>
  	</record> 
</records>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
    
En tumregel man kan använda är att om det bara finns några 
  få alternativ, t.ex. FIM eler EUR, så kan man sätta dessa som 
  attribut eftersom detta förenklar valideringen av XML filen. 
Om Det finns många olika alternativ kan man görna tänka sig: 
  
  "Är detta ett datavvärde eller en förklaring 
  till ett datavärde?". 
  Om svaret är en förklaring sätter man detta som attribut i annat 
  fall som en nod i XML filen.