'∆XSL' ⎕WI 'Create' 'Msxml2.DOMDocument.6.0'
and as a first guess tried
⎕USING,←⊂'msxml2.dll'
xml←⎕NEW DOMDocument
getting a value error, and the autocomplete revealed nothing following ⎕NEW that looks like it might be an XML document object.
A quick squint into this forum found PGilbert's
⎕USING←⊂'System.Xml,System.Xml.dll'
xml←⎕NEW XmlDocument
xml.Load ⊂'C:\blah\blah\blah.xml'
but xml lacks any method that looks like an XSL Transform. I reached this conclusion by trying autocomplete with all 26 majuscules. Workspace Explorer shows me no detail for xml, and autocomplete found me nothing that looks like property or method lists. So first question:
Q1. How to see the methods etc of an instance of a .Net class?
The Dot Net Interface Guide seems to answer this. First it warns:
To enable the display of Metadata in the Workspace Explorer, you must have the Type Libraries option of the View menu checked.
But neither the View menu of the Dyalog window nor of the Ws Explorer has a Type Libraries option on it.
Q2. How to enable the display of Metadata in the Workspace Explorer?
Perhaps that's no longer necessary. The Workspace Tree includes a top-level folder for TypeLibs, also another for MetaData.
The Dot Net Interface Guide counsels how to browse the .Net classes, by right clicking the MetaData folder icon, picking Load and navigating to open the DLL of one's choice. Repeated tries with this produce no change in the Workspace Tree.
Q3. How to browse the metadata of a selected DLL?
Happily, the TypeLibs/Registered Libraries folder is packed with children. Among them I find "Microsoft XML, version 2.0", right-click for a context menu, pick load, and see the metadata appear in TypeLibs/Load Libraries. This looks to be what I want.
The Dot Net Interface Guide tells me to set ⎕USING, ideally with the .Net namespace and filename, but if necessary with the filename. If "Microsoft XML, version 2.0" is the .Net namespace it won't do for ⎕USING, which is delimited by commas. But the filename is given clearly in Windows Explorer and a C:\windows\msxml2.dll awaits me. So
)CLEAR
clear ws
⎕USING,←⊂'C:\WINDOWS\msxml2.dll'
xml←⎕NEW IXMLDOMDocument
VALUE ERROR
xml←⎕NEW IXMLDOMDocument
∧
Q4. How to construct an instance of a .Net class described in the TypeLibs metadata?
Unanswered these questions leave me in an odd situation. I can make an XmlDocument instance but not see what it does. I can see what the IXMLDOMDocument class does, but not use it. What am I missing?
John Scholes: "I think, sir, you'll find that it does have a use and it will fucking bang things."
SJT