Like SAX2's InputSource
class,
this interface is an abstration of all the different things
(streams, files, byte arrays, sockets, URLs, etc.) from which
 an XML document can be read.
IDL:
  interface DOMInputSource {
    attribute DOMInputStream  byteStream;
    attribute DOMReader       characterStream;
    attribute DOMString       encoding;
    attribute DOMString       publicId;
    attribute DOMString       systemId;
  };
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);
}