søndag den 30. november 2008

XQuery, datakilder og XML

For nylig begyndte jeg at læse denne blog om LINQ og enhedsniveau Framework, og jeg har bemærket, at den første sætning lyde meget lig hvad vi plejer at sige, når vi diskuterer DataDirect XQuery :
Problemet med data er, at den findes i mange formater og indtil nu har krævet at udviklere lære flere konkurrerende teknologier.

Meget sandt, vil jeg påstå, at der er mange flere problemer i forbindelse med data i nutidens IT organisationer, men stadig, det er rigtigt, at data er tilgængelige i mange forskellige formater , Og at udviklerne nødt til at beskæftige sig med en lang række af forskellige data, modeller og grænseflader til at manipulere data.
Forfatteren går på at sige:
Hvis du ønsker at søge Active Directory, for eksempel, er du nødt til at lære Lightweight Directory Access Protocol (LDAP). If you want to query a database, you need to learn SQL.

If you have read some of our posts on xml-connection.com, you'll know that we are aware of that pain; and that we provided examples about how to create XQueries that handle LDAP, RDBMS, and combination of more data sources (Web services, EDI, proprietary formats, ...).
But then, I read:
If you want to manage XML data, you have to learn XPath (or XQuery)

Well... yes, but that's the *only* thing you need to learn! The main point around XQuery is being missed here; not only XQuery is a great way to manipulate, query, transform data or documents that are physically available as XML; XQuery is a great way to work against a variety of heterogeneous data sources, physically very different from each other (RDBMS, LDAP, EDI, CSV, proprietary text files), but that can all be abstracted using the XML Data Model. XQuery, and our DataDirect XQuery in particular, helps solving the problem described in the first few lines of the referenced Blog entry.
So, please, when you talk about XQuery don't just consider it yet another XML query or transformation language; XQuery can be much more than that, and can help simplifying a large variety of problems where you need to deal with heterogeneous data sources individually or joining them together! If you have a chance, just browse through the topics in this Blog, and I'm sure you'll see what I'm talking about.