XML filens struktur
Det finns ett antal regler som en XML fil måste följa:
Alla tag måste avslutas.
I HTML finns det tag som inte har ett slut, t.ex. <br>. Detta går
inte för sig i XML (och XHTML); om en tag inte har något innehåll
och slut måste den i alla fall avslutas. I XHTML betyder detta att <br>
måste skrivas som <br />
Om valideringen kräver att det finns en viss nod, men vi inte har data
till denna måste den i alla fall skrivas in. Om vi har en validering som
kräver att featuring noden har ett värde i skivfilen måste
det i så fall skrivas ut. Det finns två sätt att avsluta tomma
tags:
Långa versionen
xml3_1.xml
<?xml version="1.0"?>
<records>
<record>
<artist>Santana</artist>
<title>Supernatural</title>
<songs>
<song>
<length>5.51</length>
<title>(Da Le) Taleo</title>
<featuring></featuring>
</song>
<song>
<length>5.48</length>
<title>Love Of My Life</title>
<featuring>Dave Metthews </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 tittar på koden i IE, kan du se att den automatiskt omvandlat koden till kortare formen.
Kortare version
xml3_2.xml
<?xml version="1.0"?>
<records>
<record>
<artist>Santana</artist>
<title>Supernatural</title>
<songs>
<song>
<length>5.51</length>
<title>(Da Le) Taleo</title>
<featuring />
</song>
<song>
<length>5.48</length>
<title>Love Of My Life</title>
<featuring>Dave Metthews </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
Filen måste vara "well-formed"
Om vi jämför med html så kan vi konstatera att följande
konstruktion inte är well-formed:
<b><i>En bold och italic text</b></i>
eftersom tagsen inte avslutas i omvänd ordning till hur de börjades.
Denna konstruktion är däremot well-formed:
<b><i>En bold och italic text</i></b>
Nedan är ett fragment av en fil som inte är well-formed (observera
hur song och title tagsen matchar varandra):
xml3_3.xml
<?xml version="1.0"?>
<records>
<record>
<artist>Santana</artist>
<title>Supernatural</title>
<song>
<length>5.51</length>
<title>
(Da Le) Taleo
</song>
</title>
</record>
</records>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Det måste finnas en (och endast en) rot nod
Varje fil måste ha en s.k. rot nod, som startar och avslutar hela
filen. I skivexemplet är <records> noden rotnod, och i produktexemplet
är det <products>
Rot noden måste omsluta alla andra noder och det får bara finnas
en. Jämför gärna med HTML:s <html> tag som omsluter hela
sidans kod.Efter rotnodens avslutningstag får det inte finnas något
data och före starttaggen får det bara finnas s.k. "preprocessing
instructions" (PI), t.ex. teckenuppsättning.
En vanlig (men inte obligatorisk) PI är
<?xml version="1.0"?>
som säger åt XML parsern vilken XML version som används.
Attributen måste omslutas med " (citationstecken)
Om man använder attribut måste dessa vara "quoted", d.v.s
följande är inte korrekt:
<song length=5.44>XXX</song>
medan detta är
<song length="5.44">XXX</song>
Ovanstående är egentligen inte sant, men du får ett betydligt enklare liv om du tror att det är sant...
Skriv helst tags mm på engelska
Jo, jag vet att vi lever på 21 århundradet och att det var decennier
sedan datorerna var sjubitars, men...
...jänkarna har alldrig fattat varför någon vill sätta
prickar och bollar ovanför bokstäverna så det så. Vi får
leva med det...
Innehållet (datat) i flerna kan dock vara internationellt om vi ser till
att skriva följande PI i början av filen
<?xml version="1.0" encoding="iso-8859-1" ?>