private static void printInterface (int indent, Interface intf)
    throws IOException
    {
	indentLine (indent, "<"
	    + intf.getInterfaceClassName ()
	    + " number='"
	    + intf.getNumber ()
	    + "' alt='"
	    + intf.getAlternateSetting ()
	    + "' endpoints='"
	    + intf.getNumEndpoints ()
	    + "'");
	indentLine (indent + 4, "class='"
	    + intf.getInterfaceClass ()
	    + "' subclass='"
	    + intf.getInterfaceSubClass ()
	    + "' protocol='"
	    + intf.getInterfaceProtocol ()
	    + "'>");
	indent += 2;

	maybePrintDescriptors (indent, intf.nextDescriptor ());
	
	for (int ep = 0; ep < intf.getNumEndpoints (); ep++)
	    try {
		printEndpoint (indent, intf.getEndpoint (ep));
	    } catch (IOException e) {
		indentLine (indent, "<!-- CAN'T GET ENDPOINT: ");
		e.printStackTrace (System.out);
		indentLine (indent, "-->");
	    }

	// FIXME:  can print interface class details

	indentLine (indent, "</" + intf.getInterfaceClassName () + ">");
    }