Toon posts:

Javascript/Firefox/XML/DTD validate probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Oke, als volgt.
Even kort uit uitgelegd: ik heb een XSL bestand met daarin enkele Javascript functies.
Met behulp van deze Javascript functies haal ik data op vanuit XML-bestanden.
In deze XML-bestanden zit een interne DTD, waarmee ik wil dat Javascript het XML-bestand valideert.
Goed, om het allemaal wat goed te laten werken wil ik zowel IE als FF ondersteunen.

Met IE allemaal niet zo'n probleem:

code:
1
2
3
4
5
6
7
8
       xmlDoc = new ActiveXObject("Msxml.DOMDocument"); 
       xmlDoc.validateOnParse= true;
       xmlDoc.async = false;
       xmlDoc.onreadystatechange = function () 
       {
        if (xmlDoc.readyState == 4) parseXML(xmlDoc);
       }
       xmlDoc.load(XMLbestand);


Werkt allemaal fantastisch, maar waar het hier om gaat is de functie ' validateOnParse'.
Deze zorgt er keurig voor dat mijn XML-bestand wordt gevalideert aan de hand van de interne DTD in datzelfde XML-bestand. Werkt perfect, zodra het fout gaat wordt is er de property 'parseError' beschikbaar bij ''xmlDoc.

Goed, dan nu Firefox (waar ik dus vastloop)
Ik wil dus dat ook hier het XML-bestand wordt gevalideert aan de hand van de interne DTD.

code:
1
2
3
4
5
6
       var request = new XMLHttpRequest();
       request.open("GET", XMLbestand, false);
       request.send(null);
       var parser = new DOMParser();
       var xmlDoc = parser.parseFromString(request.responseText, "text/xml");
       parseXML(xmlDoc);


Het probleem hierbij is dat er Javascript eigenlijk nooit weet dat er met XML wordt gewerkt. Het het XMLHttpRequest object is het slechts content. Het is feitelijk wel XML, maar dat is geen vereiste voor deze functie waardoor dit object ook geen functies biedt om de DTD toe te passen op het XML-bestand. Er is dus geen 'validateOnParse' beschikbaar.
Vervolgens wordt het XML-bestand in een DOM-object gezet. Ook weer met XML als input, maar ook hier weer geen vereiste waardoor er geen functies beschikbaar zijn om het XML-bestand met de DTD te valideren.

Mijn vraag:

Hoe kan ik er nu voor zorgen dat ik toch het XML-bestand gevalideert krijg. Zijn er nog andere objecten om met XML om te gaan binnen Javascript? Dan natuurlijk wel 1 die wel functionaliteiten biedt op het geval van valideren graag. Of misschien kan het via een truckje alsnog?

Bij voorbaat dank!

Verwijderd

Topicstarter
Misschien had ik niemand bij voorbaat moeten danken......
Modbreak:Misschien moet je gewoon geduld hebben. Niet iedereen loopt hier 24/7 rond, we hebben ook een leven. :/

[ Voor 51% gewijzigd door NMe op 09-08-2005 15:40 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Het is gewoon je eigen fout dat je geen reactie krijgt, aangezien je je topic in het verkeerde subforum geopend hebt. Zoals je in onze stickies heel duidelijk kan lezen hoort Javascript niet hier maar in Webdesign & Graphics.

PW>>WG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
volgens de referentie die ik ergens vond op : http://www.xulplanet.com/...bjref/XMLHttpRequest.html is er wel een onError event, maar die lijkt alleen gebruikt te worden voor errors die tijdens het laden van de xml gebeuren. ..

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je moet voor mozilla ook de load-method gebruiken, en niet een request sturen en vervolgens pas de inhoud door een DOM serializer sturen.
Zie http://webfx.eae.net/dhtml/xmlextras/xmlextras.html en http://webfx.eae.net/dhtml/xmlextras/usage.html (onderin) voor wat nuttige codesnippets.

Intentionally left blank