XML cursus check

Pagina: 1
Acties:

  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
ik heb voor mijn stage iets in XML gemaakt, en daar heb ik dan een klein cursusje bijgemaakt over hoe XML werkt, dus het is een XML cursus voor javascript en DOM. omdat dit de enige delen van XML zijn die ik gebruik

Het is bedoeld voor mensen zonder XML en javascript kennis, ze hebben wel veel programmeer ervaring met onder andere C en VB

Heeft nog iemand op- of aanmerkingen?

-------------------------------------------------------

XML Cursus

Inleiding:

Als u dit hoofdstuk heeft gelezen hebt u genoeg kennis over XML om de XML van het monitor programma te lezen en te snappen, ook zal u een nieuwe XML aan kunnen maken en uit kunnen lezen.

Wat is XML:

XML is een metataal en staat voor eXtended Markup Language. Dit houdt in dat XML een taal is om data te beschrijven, het heeft dus niets met layout te maken. XML is platform en applicatie onafhankelijk, dit betekent dat je de XML voor alle programmas kunt gebruiken. XML ziet er ongeveer hetzelfde uit als HTML alleen is HTML iets heel anders als XML, want HTML gaat alleen over de layout.
Ik zal u eerst een voorbeeld van een XML bestand geven en ik zal het daarna uitleggen. Het is een voorbeeld waar een hele simpele fiets word beschreven die als enige onderdelen een merk, wiel en een frame heeft.

XML bestand 1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<fiets>
<merk>
    batavus
</merk>
<wiel>
    <spaakaantal>
        25
    </spaakaantal>
    <band>
        grof profiel
    </band>
</wiel>
<frame>
    <materiaal>
        alluminium
    </materiaal>
</frame>
</fiets>

Als we nu dit XML bestand regel voor regel gaan bekijken komen we als eerste bij deze regel:

<?xml version="1.0"?>

Dit is altijd de eerste regel van een XML bestand, aan deze regel herkend de Internet Browser dat dit bestand een XML bestand is.

Als we nu naar de tweede regel kijken zien we dit:

<fiets>

Dit is het eerste object van ons XML bestand. Een XML bestand heeft altijd 1 object waar de rest van de objecten in staan. Als je op regel 19 kijkt zie je </fiets> staan, dit is de sluit TAG van het object fiets. Bij XML moeten alle objecten een openings- en een sluit TAG hebben.

Als we nu nog een paar regels verder lezen zien we dat de fiets een merk, een wiel en een frame heeft. Een wiel heeft weer een aantal spaken en een band. Een frame heeft alleen een materiaalsoort. Zo ziet u dat elk object ook weer objecten kan bezitten. Een object kan ook meer van dezelfde objecten bezitten.

DOM:

DOM staat voor Document Object Model. DOM is een manier om XML te ontleden via een boomstructuur. Alle objecten uit het XML bestand worden knopen in de boom. Hieronder staat een figuur als uitleg bij het XML bestand uit het vorige voorbeeld.


[edit] hier stond een schema

Figuur 3, Het DOM model van het XML bestand fiets


Zoals je ziet is fiets de wortel van de boom. Vanuit hier kun je door de boom lopen naar uiteindelijk alle attributen.


DOM en Javascript:

Met Javascript kun je via DOM de XML doorzoeken naar bepaalde objecten. Als eerste moet je natuurlijk de XML laden. Dit doe je met de volgende functie, maar voordat je deze functie aanroept moet je eerst een variabele xml maken waarin de XML file word geladen:

Maken variabele:

var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async="false"

Nu is er een variabele aangemaakt van het type ActiveX waarin je een xml file kan laden.

Functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function loadXML(xml,fFile)
/*
pre:  -  
post: The variable "fFile" is loaded in "xml" or an error shows on the screen
*/
{
   try
   {
    // the actual loading
    xml.load(fFile);
   }
   catch(error)
   {
    // showing a popup message because the load of the XML was not good.
    alert(fFile +" is not found or it contains errors");
   };
}// end loadXML

Als deze functie klaar is zit er in de variabele xml de file die op het URL van fFile stond. Als er iets fout gaat tijdens het laden dan geeft de functie een foutmelding.

Als alles goed is gegaan kunnen we nu door de file heenzoeken als een boomstructuur. We hebben hier eigenlijk 2 objecten nodig waarmee we deze boom mee kunnen doorlopen: dit zijn de node (knoop) en nodelist (lijst met alle kinderen van de knoop). We beginnen met de wortel van de boom op te zoeken, dit doen we met dit statement.

var xnDocRoot = xml.documentElement;

In de variabele xnDocRoot zit nu de wortelknoop van de boom. We kunnen nu een nodelist maken vanuit deze knoop:

var xnlChildrenOfRoot = xnDocRoot.childNodes;

in de variabele xnlChildrenOfRoot zit nu een lijst met knopen die de kinderen zijn van de wortel van de boom. Je kunt nu dus weer een variabele aanmaken van het type node en daar dan een bepaald kind van de nodelist.


Een variabele de waarde van een bepaald kind uit de nodelist geven doen we met het volgende statement:

var xnNode1 = xnlChildrenOfRoot.item(i)

i is hier dan het nummer van het kind dat je uit de nodelist wilt halen. Als je dit hebt gedaan kun je de waarde van deze node printen of weer een nodelist aanmaken als hij nog meer kinderen heeft. Ik zal hieronder uitleggen hoe je de waardes uit de node haalt bij het voorbeeld van de fiets.

var xnDocRoot = xml.documentElement;
var xnNode1 = xnlChildrenOfRoot.item(0)
var sText = xnNode1.text;
var sNodeName = xnNode.nodeName;

In de variabele sText zit nu de string batavus en in de variabele sNodeName zit de string merk.

Op deze manier kun je dus de hele boomstructuur nalopen en op het scherm afdrukken. Er zijn nog veel meer manieren om XML op het scherm af te drukken, maar voor de monitor is de manier via DOM omdat je dan via een boomstructuur alles na kan lopen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
THE_CR0SS: Het is bedoeld voor mensen zonder XML en javascript kennis, ze hebben wel veel programmeer ervaring met onder andere C en VB
Is het dan misschien niet handiger om een verzameling goede artikelen aan te bieden? Je cursus is tenslotte wel erg kort om echt goed begrip op te leveren. Probeer in ieder geval ook naar goede resources te verwijzen (daaronder vallen dus meestal niet niet de W3C specificaties ;) ).
Heeft nog iemand op- of aanmerkingen?
Zal het proberen, vergeef me als ik zeur ;) .
Als u dit hoofdstuk heeft gelezen hebt u genoeg kennis over XML om de XML van het monitor programma te lezen en te snappen, ook zal u een nieuwe XML aan kunnen maken en uit kunnen lezen.
Nou nou, das een flinke doelstelling ;) .
XML ziet er ongeveer hetzelfde uit als HTML alleen is HTML iets heel anders als XML, want HTML gaat alleen over de layout.
Even vervelend doen/prikkelen: en XHTML dan? SVG? XSL:FO: allemaal pure layout :+ .
var xml = new ActiveXObject("Microsoft.XMLDOM")
Misschien is het goed om ergens op te merken dat deze tutorial gericht is op XML gebruik in Internet Explorer...
Als alles goed is gegaan kunnen we nu door de file heenzoeken als een boomstructuur.
Misschien is het goed om hier kort iets te zeggen over XPath? Zelf door een DOM heenlopen zuigt vaak ;) .

Verder klopt het allemaal wel aardig.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Hallo,

ik ben geen XML expert,
heb er enkel wat over gelezen, een paar kleine voorbeeldjes geschreven enzo
Je artikeltje is kort maar goed als introductie. Hoe je xml via javascript gebruikt was nieuw voor mij, thnx :)

Ik wil geen flame starten tussen wel of niet XML,
maar naar mijn mening wordt xml een beetje over-hyped. Het is geen universele oplossing.
Ik wil niet zeggen dat het niet bruikbaar is, maar je moet eerst bekijken of het nodig/praktisch is om te gebruiken.
Er zijn bedrijven die perse xml willen ondersteunen omdat ze dan meer verkopen omdat er xml op de doos staat.

hopelijk blijf je ook steeds kritisch tov de hype en marketing zever. Nog wel een leuk artikel voor de programmers onder ons: (zeer goede site vond ik)
http://www.joelonsoftware.com/articles/fog0000000319.html

Shabba

ps
veel succes met je eindwerk/presentatie

  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
Op donderdag 20 december 2001 10:54 schreef mbravenboer het volgende:
Even vervelend doen/prikkelen: en XHTML dan? SVG? XSL:FO: allemaal pure layout :+ .
ik doe in mijn programma alleen aan gewone XML en DOM, layout doe ik met HTML/Javascript
Misschien is het goed om ergens op te merken dat deze tutorial gericht is op XML gebruik in Internet Explorer...
[..]
sorry dat dat er niet bij staat, mijn programma werkt alleen in de Internet explorer, maar dat staat al ergens eerder in het verslag

het is alleen een cursus waardoor ze snappen wat ik met XML heb gedaan zodat ze er mee verder kunnen als ik weg ben.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
shabba: Ik wil geen flame starten tussen wel of niet XML
Daarover hebben we op het op dit forum al regelmatig gehad, dus dat is maar goed ook ;) .
THE_CR0SS: ik doe in mijn programma alleen aan gewone XML en DOM, layout doe ik met HTML/Javascript
Dat begrijp ik wel, maar mijn opmerking ging ook vooral over de duidelijkheid van de statement die je daar maakt. XHTML. SVG en XSL:FO maken namelijk ook gebruik van de pure HTML syntax. Jij zegt hier dat XML iets anders is dan HTML. XHTML, de opvolger van HTML, is echter XML. Weet jij je statement nog steeds uit te leggen als iemand dat opmerkt?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 20 december 2001 11:47 schreef mbravenboer het volgende:
Daarover hebben we op het op dit forum al regelmatig gehad, dus dat is maar goed ook ;) .
:X
Dat begrijp ik wel, maar mijn opmerking ging ook vooral over de duidelijkheid van de statement die je daar maakt. XHTML. SVG en XSL:FO maken namelijk ook gebruik van de pure HTML syntax. Jij zegt hier dat XML iets anders is dan HTML. XHTML, de opvolger van HTML, is echter XML. Weet jij je statement nog steeds uit te leggen als iemand dat opmerkt?
IS het XML of is het XML-compliant?


<ot>
wat doe jij hier overdag??
</ot>

Doet iets met Cloud (MS/IBM)


  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
Op donderdag 20 december 2001 11:47 schreef mbravenboer het volgende:
Dat begrijp ik wel, maar mijn opmerking ging ook vooral over de duidelijkheid van de statement die je daar maakt. XHTML. SVG en XSL:FO maken namelijk ook gebruik van de pure HTML syntax. Jij zegt hier dat XML iets anders is dan HTML. XHTML, de opvolger van HTML, is echter XML. Weet jij je statement nog steeds uit te leggen als iemand dat opmerkt?
ik snap ook wat je bedoelt, maar ik leg hier uit wat "Pure" XML is en niet wat XHTML of XSL of DTD is. De XML's die ik gebruik zijn pure data files zonder iets van layout

  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
Op donderdag 20 december 2001 11:50 schreef D2k het volgende:

IS het XML of is het XML-compliant?
:? wat is dat ook al weer

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
D2k: wat doe jij hier overdag??
Ben aan het zondigen ;) .
THE_CR0SS: ik snap ook wat je bedoelt, maar ik leg hier uit wat "Pure" XML is en niet wat XHTML of XSL of DTD is. De XML's die ik gebruik zijn pure data files zonder iets van layout
Juist: dat wilde ik uit je krijgen ;) . Je doelt uiteraard op data-georienteerde XML. XML is slechts een semantiek loze syntax. Een standaard kan echter best een semantiek hebben die betrekking heeft op layout. In dit geval is het een doel om met behulp van XML data te beschrijven, zonder je daarbij te bemoeien met layout.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Ruudjah
  • Registratie: November 1999
  • Laatst online: 14-09 01:46

Ruudjah

2022

Ik denk dat een verhaaltje over de verschillen van een database en XML ook wel mogen worden uitgelegd. Een n00b zal opmerken dat hij hetzelfde kan met een database. Dat is ook zo, alleen zijn er een aantal verschillen die het XML gebruik in bepaalde gevallen interresanter maakt tov een database, en wat je zelf al aangaf, het platformonafhankelijk is. Zo zijn er nog een aantal op te noemen.

TweakBlog


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

en als we nog meer gaan zeuren: eigenlijk is CSS voor de layout, en html nog maar gedeeltelijk.

Dat het geheel een waardeloze combinatie is geworden, lijkt me weer een ander topic waard :)

Klaar voor een nieuwe uitdaging.


  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
Op donderdag 20 december 2001 12:09 schreef Ruud P. het volgende:
Ik denk dat een verhaaltje over de verschillen van een database en XML ook wel mogen worden uitgelegd. Een n00b zal opmerken dat hij hetzelfde kan met een database. Dat is ook zo, alleen zijn er een aantal verschillen die het XML gebruik in bepaalde gevallen interresanter maakt tov een database, en wat je zelf al aangaf, het platformonafhankelijk is. Zo zijn er nog een aantal op te noemen.
er zit nog een heel verslag bij over waarom ik XML heb gekozen om dit progje te maken, dit stuk is alleen uitleg over hoe het werkt
Pagina: 1