Like SAX2's InputSource
class,
this interface is an abstraction of all the different things
(streams, files, byte arrays, sockets, URLs, etc.) from which
 an XML document can be read.
Java Binding:
package org.w3c.dom.loadSave;
public interface DOMInputSource {
    public InputStream getByteStream();
    public void        setByteStream(InputStream in);
    public Reader      getCharacterStream();
    public void        setCharacterStream(Reader in);
    public String getEncoding();
    public void   setEncoding(String encoding);
    public String getPublicId();
    public void   setPublicId(String publicId);
    public String getSystemId();
    public void   setSystemId(String systemId);
}
IDL:
  interface DOMInputSource {
    attribute DOMInputStream  byteStream;
    attribute DOMReader       characterStream;
    attribute DOMString       encoding;
    attribute DOMString       publicId;
    attribute DOMString       systemId;
  };