Represents an abstract content model that could be a DTD, an XML Schema, a database schema, or something else. It has both an internal and external subset.
IDL:
  interface CMModel : CMNode {
    readonly attribute boolean          isNamespaceAware;
    readonly attribute ElementDeclaration  rootElementDecl;
    DOMString          getLocation();
    nsElement          getCMNamespace();
    CMNamedNodeMap     getCMNodes();
    boolean            removeNode(in CMNode node);
    boolean            insertBefore(in CMNode newNode, 
                                    in CMNode refNode);
    boolean            validate();
  };
Java binding:
package org.w3c.dom.contentModel;
public interface CMModel extends CMNode {
    public boolean getIsNamespaceAware();
    public ElementDeclaration getRootElementDecl();
    public String getLocation();
    public nsElement getCMNamespace();
    public CMNamedNodeMap getCMNodes();
    public boolean removeNode(CMNode node);
    public boolean insertBefore(CMNode newNode, CMNode refNode);
    public boolean validate();  
}