From: Wolfgang M. <me...@if...> - 2003-08-27 15:54:40
|
The development version does now compile again and I have uploaded a new snapshot release to sourceforge. Changes are: eXist now preserves namespace/prefix mappings in documents, i.e. it stores the full QName for element and attribute nodes. In all previous releases, the database just remembered the first namespace/prefix mapping it found in a document. If another prefix was used in another document for the same namespace, the indexer replaced it by the prefix first found. This uncommon behaviour has been irritating and led to trouble with default namespaces. The new implementation should fix all namespace related problems. The query engine does now behave as any other XPath engine: namespace/prefix mappings can be defined for each query through the XMLDB XPathQueryService class. The mappings are part of the static query context, which is passed to the query engine. Please note: the database still keeps an internal list of namespace/prefix mappings used in documents. The query engine will try to expand prefixes to one of those default mappings. So, as long as you are not using the same prefix for different namespaces, you don't have to explicitely define a mapping. However, it is always required to define a mapping for default namespaces. Additional changes: I fixed the storage problem described by Giulio and others, which has been caused by a bug in the whitespace normalizer. Searching for elements named "text" or "document" is also possible again (though not finally fixed). TODO: make namespace/prefix mappings configurable through the SOAP interface, HTTP and XUpdate. Best regards, Wolfgang P.S.: due to the changes in the storage code, data files written with 0.9.2 are incompatible with the snapshot version. |