DV said:
can anyone tell me or point me to somewhere what the exact differences (in terms of when would I use what) between XPath, XLink, XPointer and DOM are?
Does it require special software to use any of these, or can any XML-aware software (parser/validator or xsl- enginge) use any of these?
Are these technologies already firmly standardised or would you consider them "moving targets" and advice caution when basing workflows on them?
Well, all are W3C recommendations (standards) so visit the W3C web site to find out more. As for XPath, yes, XPath 1.0 is a recommendation (firmly standardized) since November 1999:
http://www.w3.org/TR/xpath
and XSLT (XSL Transformations) 1.0 which uses XPath has the same date. Work on XPath 2.0 and XSLT 2.0 however is still going on so these are so far not firmly standardized.
As for the DOM, the W3C DOM group has so far produced three levels, see
http://www.w3.org/DOM/DOMTR where W3C DOM Level 1 is a recommendation from 1998, while most modules of DOM Level 2 are dated from November 2000, and where the first modules from DOM Level 3 have also reached recommendation status in 2004. As DOM has different modules for different aspects and some modules are extensions it is hard to give a judgement for the whole DOM but in my view DOM Level 2 Core is well established when you look at implementations in web browsers or with DOM parsers in different programming languages. As for what the DOM is and covers see
http://www.w3.org/DOM/#what http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/introduction.html http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/introduction.html
As for XLink, XLink 1.0 is a recommendation since June 2001, see
http://www.w3.org/TR/xlink/ but it is a complex specification with many aspects and only some features (called simple XLinks) for instance have made it into the Mozilla browser.
As for XPointer, it is like XLink a recommendation of the W3C XML Linking Work Group and reached recommendation status in March 2003.
As for what software supports it, any XSLT processor needs to support XPath as XSLT makes use of XPath. Not all XSLT processor however do probably expose an API to only use XPath.
As for the DOM there are parsers that can build a document object model but there are also other parsers like SAX which don't do that. Some XSLT processors can operate on DOM trees but that is not a requirement for XSLT, it has its only tree model.
http://www.w3.org/TR/xlink/#app-reqs explains what an XLink application is, so far I haven't worked with one, as said I only know about simple XLinks in Mozilla.