A XmlChan is a specialised form of ChannelChannel which supports XML I/O operations. Writing an ObjectObject to an XmlChan (using astWriteastWrite) will, if the Object is suitable, generate an XML description of that Object, and reading from an XmlChan will create a new Object from its XML description.
Normally, when you use an XmlChan, you should provide "source" and "sink" functions which connect it to an external data store by reading and writing the resulting XML text. By default, however, an XmlChan will read from standard input and write to standard output.
Alternatively, an XmlChan can be told to read or write from specific text files using the SinkFileSinkFile and SourceFileSourceFile attributes, in which case no sink or source function need be supplied.
If "source" is NULL and no value has been set for the SourceFile attribute, the XmlChan will read from standard input instead.
If "sink" is NULL, and no value has been set for the SinkFile attribute, the XmlChan will write to standard output instead.