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:
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.
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!
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!