Document Projection Tipps und Tricks Document Projection ist ein verstecktes Saxon XQuery Feature. Es funktioniert nur für eine einzige Abfrage. Das kann schon recht hilfreich sein, wenn man ein mehrere 100MB großes Dokument durchsuchen will.
Ohne Projection würde das Beispiel von oben so verarbeitet:
java -cp usr/lib/saxon/saxon.jar net.sf.saxon.Query -t
-s:buecher.xml
-q:buecher.xquery
-o:ergebnis.xml
-projection:off
nachname=grass
Saxon-EE 9.7.0.20J from Saxonica
Java version 1.8.0_60
Using license serial number V005095
Analyzing query from Desktop/buecher.xquery
Generating byte code...
Analysis time: 201.10095 milliseconds
Processing file:/Users/Alex/buecher.xml
Using parser com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
Building tree for file:/Users/Alex/buecher.xml
using class net.sf.saxon.tree.tiny.TinyBuilder
Tree built in 3.482278ms
Tree size: 46 nodes, 58 characters, 6 attributes
Execution time: 27.137589ms
Memory used: 67031664Plain TextMit der Option -projection:on verändert sich die Ausführungszeit signifikant:
[...] Document projection for file:/Users/Alex/buecher.xml -- Input nodes 50; output nodes 27; reduction = 46% Tree built in 3.80615ms Tree size: 26 nodes, 58 characters, 3 attributes Execution time: 15.83463ms Memory used: 64339064Plain Text