SelectionManager has the task of finding a MatchedTemplate that best fits a node in a specific environment, using a embedded in the MatchedTemplate. This approach is robust and efficient but, if applied to a UnionExpression, it has both semantic and practical problems. Consider the expression string:
"ACT[2]/SCENE[1]/SPEECH[SPEAKER = 'HAMLET] | SPEECH[SPEAKER = 'OPHELIA']"
The approach I have taken is to:
So what is the problem? It means that the method will break if confronted with a complex expression with a bar character deeply embedded in it, such as in a predicate. Not very likely, and there is always another way of expressing the predicate.
Two fairly minor features were missing from XSLT:
As far as I know, all of the DOM Level 2 (core), XPath 1.0 an other XSLT 1.0 recommendations are supported. Tell me if you do find something missing.
Very little is new in the overall system. The primary difference is in the addition of several parameters to Lexxia. The DOM code and supporting classes, such as the streams and DocumentBox, are more than six years old and continue to perform without problems. Even the XPath and XSLT code groups have survived for over three years without significant modification. So I believe that I can claim that the Limpid infrastructure is stable.
The port to Windows was essentially uneventful, with two small exceptions
The present version of Limpid/Lexxia was developed on KDevelop 3.5.6-9.fc7, using a single (flat) source directory, rather than the structured source of earlier versions. This simplifies the inclusion of #include statements in the code, but complicates selection of cut-down versions of the library.