XSL2.0 und Entites
Kai
- xsl
Hallo!
Ich habe eine XML-Datei, die ich folgendermaßen anzeigen lassen möchte:
var XslSource=new XMLHttpRequest();
XslSource.open("GET","xsl/test.xsl",false);
XslSource.send();
try{
xmlSource=new XMLHttpRequest();
xmlSource.open("GET","dm/"+vDMC,false);
xmlSource.send();
var xsltProcessor=new XSLTProcessor();
}catch(e){
alert(e);
}
try {
xsltProcessor.importStylesheet(XslSource.responseXML);
xsltProcessor.setParameter(null, "vSuche1", vSearchPattern);
}catch(e) {
alert(e);
}
document.getElementById("idContent").innerHTML=" ";
document.getElementById("idContent").replaceChild(xsltProcessor.transformToFragment(xmlSource.responseXML, document),document.getElementById("idContent").firstChild);
Wir verwenden XSL 2.0. Allerdings hat er Probleme im Firefox 26 mit Entities. Wir haben in den XML-Dateien Umlaute wie ä und diese sind in einer iso.ent-Datei deklariert:
<!ENTITY auml "ä">
In der XML-Datei folgendermaßen eingbunden:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dmodule [
<!ENTITY % ISOEntities PUBLIC "ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML" "iso-lat1.ent">
%ISOEntities;
]>
Allerdings kommt bei der Anzeige "XML-Verarbeitungsfehler: Nicht definierte Entität Adresse: "
Ebenso hat er Probleme mit der Funktion unparsed-entity-uri() im XSL, da kommt dann unparsed-entity-uri not implemented. Woran liegt das? Geht das im Mozilla bzw. Opera einfach nicht diese Funktion zu verwenden? Als wir XSL1.0 verwendet hatten, ging das damals schon. Gut die ANzeige der XML-Dateien war aber auch komplett anders umgesetzt. Hat jemand eine Idee, wie es funktionieren könnte, dass man die Entites auslesen kann. Geht darum zB bei Grafiken die Formate/Endungen aus den Entities auszulesen.
Ich hoffe jemand hat einen Tipp für mich
Viele Grüße
Kai
Hallo Kai,
Wir verwenden XSL 2.0. Allerdings hat er Probleme im Firefox 26 mit Entities. Wir haben in den XML-Dateien Umlaute wie ä und diese sind in einer iso.ent-Datei deklariert:
<!ENTITY auml "ä">
Browser unterstützen nur XSLT 1.0. Chrome soll das in Zukunft gar nicht mehr können. Saxon-CE ist ein JavaScript-basierter Ansatz zur Nutzung von XSLT 2.0 im Browser.
Allerdings kommt bei der Anzeige "XML-Verarbeitungsfehler: Nicht definierte Entität Adresse: "
Firefox verwendet einen nicht-validierenden Parser, wertet DTDs also gar nicht aus.
Grüße,
Thomas
Hallo Thomas,
Browser unterstützen nur XSLT 1.0. Chrome soll das in Zukunft gar nicht mehr können. Saxon-CE ist ein JavaScript-basierter Ansatz zur Nutzung von XSLT 2.0 im Browser.
Wundert mich bissl, dass Mozilla und Opera das dann überhaupt anzeigen, wenn XSLT 2.0 nicht unterstützt wird.
Allerdings kommt bei der Anzeige "XML-Verarbeitungsfehler: Nicht definierte Entität Adresse: "
Firefox verwendet einen nicht-validierenden Parser, wertet DTDs also gar nicht aus
Danke für die Info. Dann müssen wir uns etwas anderes überlegen. Wir wollen nämlich, dass das in möglichst vielen Browsern läuft und ich denke Mozilla verwenden schon relativ viele Anwender.
Grüße
Kai
Hallo Kai,
Wundert mich bissl, dass Mozilla und Opera das dann überhaupt anzeigen, wenn XSLT 2.0 nicht unterstützt wird.
Die Browser werden wohl version="2.0" ignorieren und auf 1.0-Level zurückgehen. Nur neuere Techniken (xsl:Elemente und XPath-Funktionen) werden dann als nicht existent / fehlerhaft aufgefasst.
Dann müssen wir uns etwas anderes überlegen. Wir wollen nämlich, dass das in möglichst vielen Browsern läuft und ich denke Mozilla verwenden schon relativ viele Anwender.
Saxon-CE läuft intern angepasst mit Chrome, Firefox, IE, Opera und Safari, siehe Beispiel.
Grüße,
Thomas