Quick update: As per Dr. Kay's latest bug report [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1558459&amp;group_id=29872&amp;atid=397617">http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1558459&amp;group_id=29872&amp;atid=397617
</a>],<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
                        Extension functions on .NET are not working. The<br>
compiler reports that it was unable to find a class<br>
with a matching name.<br><br>
A late change was made to the URI namespace format used<br>
to identify .NET classes, from the form<br>
type:System.Math to clitype:System.Math. Unfortunately<br>
the code as issued uses the old scheme name &quot;type&quot; in<br>
one place and &quot;clitype&quot; in another. The correct form is<br>
&quot;clitype&quot;, and a patch has been placed in Subversion<br>
(module net.sf.saxon.dotnet.DotNetExtensionLibrary) to<br>
correct this.</blockquote><div><br>I am in process of rebuilding Saxon and Saxon on .NET from source (need to update my local nant script to accomodate some changes), and once complete, will finish out the second half of this demo and get it posted.
<br></div><br>
<br><div><span class="gmail_quote">On 9/6/06, <b class="gmail_sendername">M. David Peterson</b> &lt;<a href="mailto:xmlhacker@gmail.com">xmlhacker@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div>Excellent!&nbsp; Thanks for the advice, Dino!&nbsp; I will add this to my priority list and update accordingly.</div>
<div>&nbsp;</div>
<div>In a (somewhat) related note, I have been pulling together a quick demo that incorporates IronPython, LINQ, and XSLT 2.0 extensions functions to provide what I believe will prove to be an extremely lethal combination as this demo develops.&nbsp; The first part is complete, though a bit rough around the edges.
</div>
<div>&nbsp;</div>
<div>This builds directly from <font color="#0000cc">&lt;</font><a href="http://www.oreillynet.com/xml/blog/2006/08/solving_some_of_scobles_proble.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.oreillynet.com/xml/blog/2006/08/solving_some_of_scobles_proble.html
</a>&gt;&nbsp;from a few weeks back.&nbsp; The post was an XSLT 2.0 answer to Steve Eichert's &quot;Solving Scoble's problems ...&quot; &lt;<a href="http://steve.emxsoftware.com/LINQ/Solving+all+Scobles+problems+with+Linq+to+XML" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://steve.emxsoftware.com/LINQ/Solving+all+Scobles+problems+with+Linq+to+XML
</a>&gt;&nbsp;post from a few weeks back.&nbsp; However, this time around I have extended Steve's original code base &lt;<a href="http://dev.pypod.net/browser/trunk/LINQModules/FeedFilter.cs" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://dev.pypod.net/browser/trunk/LINQModules/FeedFilter.cs
</a>&gt; to implement a slight more dynamic approach to the filter settings such that you can add, subtract, multiply, and/or divide the filter settings using an external XML file.</div>
<div>&nbsp;</div>
<div>I have quite a bit more to add to this, including the mentioned extension functions for XSLT 2.0.&nbsp; More updates throughout today and tomorrow, the result of which will become a new post when complete. However, I'll avoid flooding the list with each update, and instead point you to the timeline RSS &lt;
<a href="http://dev.pypod.net/timeline?ticket=on&amp;changeset=on&amp;milestone=on&amp;wiki=on&amp;wiki=on&amp;max=50&amp;daysback=90&amp;format=rss" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://dev.pypod.net/timeline?ticket=on&amp;changeset=on&amp;milestone=on&amp;wiki=on&amp;wiki=on&amp;max=50&amp;daysback=90&amp;format=rss
</a>&gt; feed&nbsp;if you have interest in keeping up with the changes.&nbsp;</div>
<div>&nbsp;</div>
<div>With this in mind, if any of you have some ideas you would&nbsp;like to throw my direction, or furthermore would like to view/play with the code base, you can do so via the PyPod.Net Click-Once app, or checkout the code base from SVN directly.
</div>
<div>&nbsp;</div>
<div>The svn repo is located @ <a href="http://src.pypod.net/trunk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://src.pypod.net/trunk</a></div>
<div>&nbsp;</div>
<div>You can view the code base via the Trac interface&nbsp;@&nbsp;<a href="http://dev.pypod.net/browser/trunk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://dev.pypod.net/browser/trunk</a></div>
<div>&nbsp;</div>
<div>And, as already mentioned in a separate thread, the PyPod.Net app is located @,</div>
<div>&nbsp;</div>
<div><a href="http://pypod.net/console/index.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://pypod.net/console/index.html</a></div>
<div>&nbsp;</div>
<div>To run the (BIG TIME HACK) test,</div>
<div>&nbsp;</div>
<div>&gt;&gt;&gt; import linqtest</div>
<div>&nbsp;</div>
<div>(note: Dependent upon your system, you may get a &quot;SystemError: Unable to connect to the remote server&quot; error at first of which you will then more than likely be asked for permission for the IP Console to access the internet)
</div>
<div>&nbsp;</div>
<div>As pointed out, the above is a quick and dirty hack just to test and make sure it works properly.&nbsp; I am in the middle of building a more efficient caching mechanism such that the&nbsp;XML data for processing&nbsp;can be accessed once, cached locally, and then used for each subsequent test run unless a flag is set to access the live stream again.&nbsp; WIth this in mind, please be aware that the XML data file that is currently set to be accessed dynamically with each new run is ~17megs, so it will take a bit before you see the result of the filtering printed to the console.
</div>
<div>&nbsp;</div>
<div>I'll update with extended details when it seems appropriate to do so.</div>
<div>&nbsp;</div>
<div>Until then, please let me know of any ideas any of you would like to see developed as part of this code base.&nbsp; Sample code is all fine and dandy, but I would rather write something that would be immediatelly useful and reusable&nbsp;to a broader base of folks than would be your typical sample app if at all possible.
</div>
<div>&nbsp;</div>
<div>Best regards,</div></div><div><span class="e" id="q_10d84d798af4ed64_1">
<div><font color="#0000cc"></font><br>&nbsp;</div>
<div><span class="gmail_quote">On 9/6/06, <b class="gmail_sendername">Dino Viehland</b> &lt;<a href="mailto:dinov@exchange.microsoft.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">dinov@exchange.microsoft.com
</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
<div>
<div vlink="purple" link="blue" lang="EN-US">
<div>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">The best thing you could do for Saxon.NET right now is to support ICustomTypeDescriptor in addition to supporting Reflection.&nbsp; The one downside is that ICustomTypeDescriptor isn't as comprehensive as 
Reflection.Emit – for example it doesn't support calling methods.&nbsp; But it does support getting properties.&nbsp; So you'll want to back that up w/ Reflection, and hopefully in time there'll be a solution which will encompass all of these.
</span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>
<div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
<p><b><span style="font-size: 9pt;">From:</span></b><span style="font-size: 9pt;"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">users-bounces@lists.ironpython.com
</a> [mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">users-bounces@lists.ironpython.com</a>] <b>On Behalf Of </b>M. David Peterson<br><b>
Sent:
</b> Tuesday, September 05, 2006 2:27 PM<br><b>To:</b> Discussion of IronPython<br><b>Subject:</b> Re: [IronPython] ipy support in msxsl:script blocks</span></p></div></div>
<div><span>
<p>&nbsp;</p>
<p style="margin-bottom: 12pt;">btw, the newly released docs in regards to develping extension functions for Saxon on .NET are located @ <a href="http://www.saxonica.com/documentation/extensibility/dotnetextensions.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.saxonica.com/documentation/extensibility/dotnetextensions.html </a></p>
<div>
<p><span>On 9/5/06, <b>M. David Peterson</b> &lt;<a href="mailto:xmlhacker@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">xmlhacker@gmail.com</a>&gt; wrote:</span></p>
<div>
<p style="margin-bottom: 12pt;">Worth noting, from my post earlier today (<a href="http://www.oreillynet.com/xml/blog/2006/09/mhksaxon_saxon_88basic_and_sch_1.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.oreillynet.com/xml/blog/2006/09/mhksaxon_saxon_88basic_and_sch_1.html </a>) regarding the release of Saxon on .NET 8.8,</p><pre>* in the .NET product, extension functions written in C# or other .NET<br>
&nbsp;languages can now be invoked</pre>
<p><br>While the same is more than likely true in regards to the ability to access extension functions written in Python, this is one area I can help with more so than anything else as this was a significant area of study and development I put into 
Saxon.NET before handing over the reigns to Dr. Kay in February. &nbsp; In addition, with his guidance, I've since continued forward in working on various areas of research and development.&nbsp; With this in mind, in regards to,</p>

</div>
<div>
<blockquote style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(204, 204, 204); border-width: medium medium medium 1pt; padding: 0in 0in 0in 6pt; margin-left: 4.8pt; margin-right: 0in;">


<p style="margin-bottom: 12pt;"><span>&nbsp;</span></p>
<p>We'll need to work w/ some other teams within the company to make sure we can get the right amount of support in the right places to make this all come together.&nbsp;&nbsp;Thanks for bringing this to our attention.</p></blockquote>


<p>&nbsp;</p></div>
<div>
<p>While for obvious reasons I can't help with the internal System.Xml.Xsl code base, I can help with the Saxon.NET code base.&nbsp; If I can be of help, please let me know :) </p></div>
<div>
<p style="margin-bottom: 12pt;"><br><br><span></span></p>
<div>
<p><span>On 9/5/06, <b>Dino Viehland</b> &lt;<a href="mailto:dinov@exchange.microsoft.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> dinov@exchange.microsoft.com</a>&gt; wrote:</span></p>
<p>The answer to this appears to be no - The XSL processor uses Reflection to try and discover the method to be called.&nbsp;&nbsp;In IronPython reflection won't tell you what methods are available.&nbsp;&nbsp;We do support the ICustomTypeDescriptor interface which is another way to get this information (which enables scripting WPF), but unfortunately XSL isn't falling back to that. 
<br><br>We'll need to work w/ some other teams within the company to make sure we can get the right amount of support in the right places to make this all come together.&nbsp;&nbsp;Thanks for bringing this to our attention.&nbsp;&nbsp;I'm not going to open a bug on this (because it's not necessarily an IP issue) but I believe we will be tracking this one (and similar issues) closely. 
<br><br><br>From: <a href="mailto:users-bounces@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">users-bounces@lists.ironpython.com</a> [mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

 users-bounces@lists.ironpython.com</a>] On Behalf Of Jesse Wiles <br>Sent: Tuesday, September 05, 2006 8:00 AM<br>To: Discussion of IronPython<br>Subject: [IronPython] ipy support in msxsl:script blocks<br><br>Hi,<br><br>

Can I script XSL extension objects using Iron Python?<br><br>Jesse Wiles <br>_______________________________________________<br>users mailing list<br><a href="mailto:users@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

users@lists.ironpython.com</a> <br><a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
</a></p></div>
<p><br><br clear="all"></p></div>
<div>
<p><span>-- </span><br><span>/M:D</span><br><br><span>M. David Peterson</span><br><span><a href="http://mdavid.name/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mdavid.name</a> | <a href="http://www.oreillynet.com/pub/au/2354" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.oreillynet.com/pub/au/2354</a> </span></p></div></div>
<p><br><br clear="all"><br>-- <br>/M:D<br><br>M. David Peterson<br><a href="http://mdavid.name/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mdavid.name</a> | <a href="http://www.oreillynet.com/pub/au/2354" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.oreillynet.com/pub/au/2354 </a></p></span></div>
<div></div></div></div><br>_______________________________________________<br>users mailing list<br><a href="mailto:users@lists.ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">users@lists.ironpython.com
</a><br><a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br>
<br></blockquote></div><br><br clear="all"><br>-- <br>/M:D<br><br>M. David Peterson<br><a href="http://mdavid.name" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mdavid.name</a> | <a href="http://www.oreillynet.com/pub/au/2354" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.oreillynet.com/pub/au/2354
</a> 
</span></div></blockquote></div><br><br clear="all"><br>-- <br>/M:D<br><br>M. David Peterson<br><a href="http://mdavid.name">http://mdavid.name</a> | <a href="http://www.oreillynet.com/pub/au/2354">http://www.oreillynet.com/pub/au/2354
</a>