This appendix contains the complete OMG IDL [OMGIDL] for the Level 3 Document Object Model Content Model definitions.
The IDL files are also available as: http://www.w3.org/TR/2000/WD-DOM-Level-3-Content-Models-and-Load-Save-20000901/idl.zip
// File: contentModel.idl #ifndef _CONTENTMODEL_IDL_ #define _CONTENTMODEL_IDL_ #include "dom.idl" #pragma prefix "dom.w3c.org" module contentModel { typedef dom::DOMString DOMString; typedef dom::int int; typedef dom::where where; typedef dom::how how; typedef dom::why why; typedef dom::nsElement nsElement; typedef dom::namedCMNodeMap namedCMNodeMap; typedef dom::Document Document; typedef dom::CMExternalObject * CMExternalObject *; typedef dom::DomImplementation DomImplementation; typedef dom::Node Node; typedef dom::Text Text; interface CMObject { }; interface CMExternalObject { }; interface CMNode { }; interface CMNodeList { }; interface NamedCMNodeMap { }; interface CMDataType { }; interface CMType { }; interface ElementDeclaration { readonly attribute DOMString elementName; attribute DOMString contentType; attribute NamedCMNodeMap attributes; }; interface ElementCMModel { attribute DOMString listOperator; attribute int multiplicity; attribute int lowValue; attribute int highValue; attribute NamedCMNodeMap subModels; attribute CMNodeList definingElement; }; interface AttributeDeclaration { readonly attribute DOMString attrName; attribute CMDataType attrType; attribute DOMString defaultValue; attribute DOMString enumAttr; attribute CMNodeList ownerElement; }; interface EntityDeclaration { }; interface ErrorHandler { void warning(in where DOMString, in how DOMString, in why DOMString) raises(dom::DOMException2); void fatalError(in where DOMString, in how DOMString, in why DOMString) raises(dom::DOMException2); void error(in where DOMString, in how DOMString, in why DOMString) raises(dom::DOMException2); }; interface CMObject { readonly attribute boolean isNamespaceAware; nsElement getCMNamespace(); namedCMNodeMap getCMElements(); boolean removeCMNode(in CMNode node); boolean insertbeforeCMNode(in CMNode newnode, in CMNode parentnode); }; interface CMNode { CMType getCMNodeType(); }; interface ElementDeclaration { int getContentType(); ElementCMModel getCMElement(); namedCMNodeMap getCMAttributes(); namedCMNodeMap getCMElementsChildren(); }; interface ElementCMModel { ElementCMModel setCMElementCardinality(in CMNode node, in int high, in int low); ElementCMModel getCMElementCardinality(in CMNode node, out int high, out int low); }; interface ElementCMModel { boolean isValid(); int contentType(); boolean canSetAttribute(in DOMString attrname, in DOMString attrval); boolean canSetAttributeNode(); }; interface DocumentCM : Document { boolean isValid(); int numCMs(); CMObject getInternalCM(); CMExternalObject * getCMs(); CMObject getActiveCM(); void addCM(in CMObject cm); void removeCM(in CMObject cm); boolean activateCM(in CMObject cm); }; interface DomImplementationCM : DomImplementation { boolean validate(); CMObject createCM(); CMExternalObject createExternalCM(); CMObject cloneCM(in CMObject cm); CMExternalObject cloneExternalCM(in CMExternalObject cm); }; interface NodeCM : Node { boolean canInsertBefore(); boolean canRemoveChild(); boolean canReplaceChild(); boolean canAppendChild(); }; interface TextCM : Text { boolean isWhitespaceOnly(); boolean canSetData(); boolean canAppendData(); boolean canReplaceData(); boolean canInsertData(); }; interface DocumentCM : Document { boolean isElementDefined(in DOMString elemTypeName); boolean isAttributeDefined(in DOMString elemTypeName, in DOMString attrName); boolean isEntityDefined(in DOMString entName); }; }; #endif // _CONTENTMODEL_IDL_