01.30
A couple of days ago, I started writing the filter I mentioned here. I managed to create a working version of it, but I had a couple of issues with it:
- It didn’t work as Validator in the Receive Pipeline (it only works in Decode stage, which is a bit retarded because I wanted the thing to be loaded AFTER the XML Disassembler)
- I had to load the stream to a DOM and do a SelectNodes(), which is grossly inefficient (understatement of the year)
So as I was trying to understand why it doesn’t work as a Validator (i.e., googling for answers), I learned that the XMLDisassembler uses an non-seekable stream (XmlDasmStreamWrapper), and I was returning the same stream in my code, which I think breaks the whole pipeline. Anyway, as I was looking for answers, I just stumbled into a page about writing custom BizTalk pipeline components…and whaddayannow? The example does exactly what I needed! The nifty thing about it is it uses a microsoft-written library called XPathReader which basically matches an xpath in a stream.
This just validates (pun) yet another habit I’ve been bragging all along: I haven’t written a single line of code since google.
No Comment.
Add Your Comment