All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sirix.service.xml.xpath.ImplementationNotes Maven / Gradle / Ivy

Go to download

SirixDB is a hybrid on-disk and in-memory document oriented, versioned database system. It has a lightweight buffer manager, stores everything in a huge persistent and durable tree and allows efficient reconstruction of every revision. Furthermore, SirixDB implements change tracking, diffing and supports time travel queries.

There is a newer version: 0.11.0
Show newest version
Important to know:
	- the document order is NOT stable (the XPath engine does not return the 
		result sequence in document order.)
		This is due to the XML encoding in treetank, which makes efficient node 
		ordering impossible. 
	- node comparison << and >> is not supported due to the same reason
	- namespace axis is not supported, because it is not supported in treetank 
		yet. This makes the engine not compatible with XPath 1.0, but has no
		effect on the XPath 2.0 functionality, because the namespace axis is 
		deprecated in the XPath 2.0 spec.
	- XMLSchema supported is implemented in the engine, but is not yet supported 
		by treetank, so every node' type is either "xs:untyped" or 
		"xs:untypedAtomic"	
	- functions and types can only be used with their namespace prefix.
		e.g "fn:position()"
		
		
Not yet implemented things:
	- functions: only a few very important functions are supported at the moment
	- cast and treat as
	- node constructors
	- ordered sequences 
	- nilled property
	- SchemaAttribute() / SchemaElement() node tests (no Schema support in Treetank)
	- interrogation in the element() node test (nilled property)
	- wildcards in the name of attributes (ns:name -> *:name or ns:*, because treetank does not
	 allow to access these easily)
	- NamespaceAxis
	- prefix optional (at the moment no support for missing prefixes)
	- processing instructions (no treetank support)

Things that have to be improved:
	- XPath error messages	
	- scanner: recognize maskings like < ('<')
	- handling of untyped and untypedAtomic (casting)
	- quote signs within a stringliteral are ignored
	
Optimization ideas:
	- use threads
	- use fulltext indices
	- convert queries with backward axis in queries only using forward axes				 
		




© 2015 - 2024 Weber Informatics LLC | Privacy Policy