2017-11-10 5 views
0

In unserem Projekt haben wir eine eigene Implementierung von org.w3c.dom. * Schnittstellen.Kann ich Saxon über org.w3c DOM-Modell verwenden?

Unterstützt Saxon Auswertung von XPath 2.0 Abfragen nicht über XML selbst, sondern über Instanzen von org.w3c.dom. * Instanzen?

+0

Siehe https://www.saxonica.com/html/documentation/sourcedocs/thirdparty.html –

Antwort

1

Ja, tut es. Sie können entweder die JAXP XPath-Schnittstelle oder die s9api-Schnittstelle verwenden: Wir empfehlen s9api, da die JAXP-Schnittstelle nie für das reichhaltigere Datenmodell von XPath 2.0 entworfen wurde. Beispielsweise gibt es keine Möglichkeit, eine Folge von Strings zurückzugeben.

Saxon ist beim Ausführen über ein DOM ein wenig langsamer als bei Verwendung von Saxons nativem TinyTree-Modell, um den Faktor 5-10. Wenn es sich um Ihre eigene Implementierung des DOM handelt, dann kann (a) die Leistung variieren und (b) es besteht immer das Risiko von Fehlern, z. Ihr DOM könnte 100% konform zur DOM-Spezifikation sein, sich aber dennoch anders verhalten als jede DOM-Implementierung, mit der Saxon getestet wurde.

Mit Saxon-EE 9.8 wurde eine neue Methode für die Navigation von DOM-Bäumen eingeführt, das Domino-Modell. Dies verursacht einen hohen Aufwand beim Erstellen von Indizes für den DOM-Baum, um eine verbesserte Leistung bei der nachfolgenden Navigation zu erzielen. Verwenden Sie dies nicht, wenn das DOM veränderbar ist (dh wenn sich der Inhalt zwischen einer XPath-Ausdrucksauswertung und einer anderen ändert), da diese Änderungen die Indizes ungültig machen.

Verwandte Themen