Källkoden för /anders.enges/xml/xml2.asp
<!--#include file="../inc/navstuff.asp" -->
<h4>XML filens uppbyggnad -tags (noder)</h4>
<p>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</p>
   <%  show "xml2.xml" %>
   <p>En van HTML kodare känner delvis igen sig, såtillvida att XML
     är ett tag-baserat system. Dokumentet har alltid en <b>rot </b>nod, i
     detta fall <b>products</b> som alla andra element måste finnas under.
     Jämför gärna med HTML systemet som har en rotnod som heter
     <b>html</b>. 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...</p>
 
<h4>XML filens uppbyggnad -attribut</h4>
<p>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.</p>
   <%  show "xml2_2.xml" %>  
<p>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.</p>
<h4>En till många relationer i en XML fil</h4>
<p>En XML fil kan även uttrycka en till många relationer utan problem.
   Se nedanstående kodfragment ur en XML fil:</p>
  
<%  show "xml2_3.xml" %>  

<p>Vi ser tydligt en till många relationen - en skiva har många låtar</p>
<p>Datat består av en rot: <b>records<br>
   </b>En <b>records</b> fil består av ett antal <b>record </b>noder<br>
   En <b>record </b>nod betår av en <b>artist</b> nod, en <b>title</b> nod
   och en <b>songs</b> nod<br>
   En <b>songs </b>nod består av ett antal <b>song</b> noder<br>
   En song nod har ett attribut (<b>length</b>) som säger hur lång låten
   är</p>
<h4>Noder eller attribut?</h4>
<p>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:</p>
 
<%  show "xml2_4.xml" %>    
<p>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. </p>
<p>Om Det finns många olika alternativ kan man görna tänka sig:
   <br>
   "Är detta ett <b>datavvärde </b>eller en <b>förklaring</b>
   till ett datavärde?". <br>
   Om svaret är en förklaring sätter man detta som attribut i annat
   fall som en nod i XML filen.</p>
<p> </p>
   <!--#include file="../inc/footer.asp" -->