# Converting Nodes and Sequences of Nodes

If the expected type is a generic collection type, or an array of the Saxon class `NodeInfo`, or a `Value` or `SequenceIterator`, Saxon will pass the nodes supplied in the call in their native Saxon representation.

Saxon also recognizes `System.Xml.Node` and its subtypes. However, calling a method that expects an instance if `System.Xml.Node` will only work if the actual node supplied as the argument value is a Saxon-wrapped DOM node, that is (a) the input to the stylesheet or query must be supplied in the form of a wrapped DOM, and (b) the external function must be called supplying a node obtained from the input document, not some node in a temporary tree created in the course of stylesheet or query processing.

If an external function returns an `System.Xml.Node` then it will be wrapped as a Saxon node. This may be expensive if it is done a lot, since each such node will acquire its own document wrapper.

Next