This appendix contains the complete OMG IDL [OMGIDL] for the Level 3 Document Object Model Content Model and Load and Save definitions.
The IDL files are also available as: http://www.w3.org/TR/2001/WD-DOM-Level-3-CMLS-20010209/idl.zip
// File: content-models.idl
#ifndef _CONTENT-MODELS_IDL_
#define _CONTENT-MODELS_IDL_
#include "dom.idl"
#pragma prefix "dom.w3c.org"
module content-models
{
typedef dom::int int;
typedef dom::DOMString DOMString;
typedef dom::CMExternalModel * CMExternalModel *;
typedef dom::Node Node;
typedef dom::nsElement nsElement;
typedef dom::DOMImplementation DOMImplementation;
typedef dom::Element Element;
typedef dom::Text Text;
typedef dom::DocumentType DocumentType;
interface CMChildren;
interface DOMErrorHandler;
interface CMModel;
interface DOMLocator;
interface CMNode {
const unsigned short ELEMENT_DECLARATION = 1;
const unsigned short ATTRIBUTE_DECLARATION = 2;
const unsigned short CM_NOTATION_DECLARATION = 3;
const unsigned short ENTITY_DECLARATION = 4;
const unsigned short CM_CHILDREN = 5;
const unsigned short CM_MODEL = 6;
const unsigned short CM_EXTERNALMODEL = 7;
readonly attribute unsigned short cmNodeType;
CMNode cloneCM();
CMNode cloneExternalCM();
};
interface CMNodeList {
};
interface CMNamedNodeMap {
};
interface CMDataType {
const short STRING_DATATYPE = 1;
const short BOOLEAN_DATATYPE = 2;
const short FLOAT_DATATYPE = 3;
const short DOUBLE_DATATYPE = 4;
const short LONG_DATATYPE = 5;
const short INT_DATATYPE = 6;
const short SHORT_DATATYPE = 7;
const short BYTE_DATATYPE = 8;
attribute int lowValue;
attribute int highValue;
short getPrimitiveType();
};
interface ElementDeclaration {
int getContentType();
CMChildren getCMChildren();
CMNamedNodeMap getCMAttributes();
CMNamedNodeMap getCMGrandChildren();
};
interface CMChildren {
attribute DOMString listOperator;
attribute CMDataType elementType;
attribute int multiplicity;
attribute CMNamedNodeMap subModels;
readonly attribute boolean isPCDataOnly;
};
interface AttributeDeclaration {
const short NO_VALUE_CONSTRAINT = 0;
const short DEFAULT_VALUE_CONSTRAINT = 1;
const short FIXED_VALUE_CONSTRAINT = 2;
readonly attribute DOMString attrName;
attribute CMDataType attrType;
attribute DOMString attributeValue;
attribute DOMString enumAttr;
attribute CMNodeList ownerElement;
attribute short constraintType;
};
interface EntityDeclaration {
};
interface CMNotationDeclaration {
attribute DOMString strSystemIdentifier;
attribute DOMString strPublicIdentifier;
};
interface Document {
void setErrorHandler(in DOMErrorHandler handler);
};
interface DocumentCM : Document {
int numCMs();
CMModel getInternalCM();
CMExternalModel * getCMs();
CMModel getActiveCM();
void addCM(in CMModel cm);
void removeCM(in CMModel cm);
boolean activateCM(in CMModel cm);
};
interface AttributeCM {
AttributeDeclaration getAttributeDeclaration();
CMNotationDeclaration getNotation()
raises(dom::DOMException);
};
interface DOMErrorHandler {
void warning(in DOMLocator where,
in DOMString how,
in DOMString why)
raises(dom::DOMSystemException);
void fatalError(in DOMLocator where,
in DOMString how,
in DOMString why)
raises(dom::DOMSystemException);
void error(in DOMLocator where,
in DOMString how,
in DOMString why)
raises(dom::DOMSystemException);
};
interface DOMLocator {
int getColumnNumber();
int getLineNumber();
DOMString getPublicID();
DOMString getSystemID();
Node getNode();
};
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();
};
interface CMExternalModel : CMModel {
};
interface DOMImplementationCM : DOMImplementation {
CMModel createCM();
CMExternalModel createExternalCM();
};
interface NodeCM : Node {
boolean canInsertBefore(in Node newChild,
in Node refChild)
raises(dom::DOMException);
boolean canRemoveChild(in Node oldChild)
raises(dom::DOMException);
boolean canReplaceChild(in Node newChild,
in Node oldChild)
raises(dom::DOMException);
boolean canAppendChild(in Node newChild)
raises(dom::DOMException);
boolean isValid();
};
interface ElementCM : Element {
int contentType();
ElementDeclaration getElementDeclaration()
raises(dom::DOMException);
boolean canSetAttribute(in DOMString attrname,
in DOMString attrval);
boolean canSetAttributeNode(in Node node);
boolean canSetAttributeNodeNS(in Node node,
in DOMString namespaceURI,
in DOMString localName);
boolean canSetAttributeNS(in DOMString attrname,
in DOMString attrval,
in DOMString namespaceURI,
in DOMString localName);
};
interface CharacterDataCM : Text {
boolean isWhitespaceOnly();
boolean canSetData(in unsigned long offset,
in DOMString arg)
raises(dom::DOMException);
boolean canAppendData(in DOMString arg)
raises(dom::DOMException);
boolean canReplaceData(in unsigned long offset,
in unsigned long count,
in DOMString arg)
raises(dom::DOMException);
boolean canInsertData(in unsigned long offset,
in DOMString arg)
raises(dom::DOMException);
boolean canDeleteData(in unsigned long offset,
in DOMString arg)
raises(dom::DOMException);
};
interface DocumentTypeCM : DocumentType {
boolean isElementDefined(in DOMString elemTypeName);
boolean isElementDefinedNS(in DOMString elemTypeName,
in DOMString namespaceURI,
in DOMString localName);
boolean isAttributeDefined(in DOMString elemTypeName,
in DOMString attrName);
boolean isAttributeDefinedNS(in DOMString elemTypeName,
in DOMString attrName,
in DOMString namespaceURI,
in DOMString localName);
boolean isEntityDefined(in DOMString entName);
};
};
#endif // _CONTENT-MODELS_IDL_
// File: load-save.idl
#ifndef _LOAD-SAVE_IDL_
#define _LOAD-SAVE_IDL_
#include "dom.idl"
#pragma prefix "dom.w3c.org"
module load-save
{
typedef dom::DOMErrorHandler DOMErrorHandler;
typedef dom::DOMString DOMString;
typedef dom::Document Document;
typedef dom::DOMInputStream DOMInputStream;
typedef dom::DOMReader DOMReader;
typedef dom::Element Element;
typedef dom::DOMOutputStream DOMOutputStream;
typedef dom::Node Node;
interface DOMBuilder;
interface DOMWriter;
interface DOMEntityResolver;
interface DOMBuilderFilter;
interface DOMInputSource;
interface DOMImplementationLS {
DOMBuilder createDOMBuilder();
DOMWriter createDOMWriter();
};
interface DOMBuilder {
attribute DOMEntityResolver entityResolver;
attribute DOMErrorHandler errorHandler;
attribute DOMBuilderFilter filter;
void setFeature(in DOMString name,
in boolean state)
raises(dom::DOMException);
boolean supportsFeature(in DOMString name);
boolean canSetFeature(in DOMString name,
in boolean state);
boolean getFeature(in DOMString name)
raises(dom::DOMException);
Document parseURI(in DOMString uri)
raises(dom::DOMException,
dom::DOMSystemException);
Document parseDOMInputSource(in DOMInputSource is)
raises(dom::DOMException,
dom::DOMSystemException);
};
interface DOMInputSource {
attribute DOMInputStream byteStream;
attribute DOMReader characterStream;
attribute DOMString encoding;
attribute DOMString publicId;
attribute DOMString systemId;
};
interface DOMEntityResolver {
DOMInputSource resolveEntity(in DOMString publicId,
in DOMString systemId )
raises(dom::DOMSystemException);
};
interface DOMBuilderFilter {
boolean endElement(in Element element);
};
interface DOMWriter {
attribute DOMString encoding;
readonly attribute DOMString lastEncoding;
attribute unsigned short format;
// Modified in DOM Level 3:
attribute DOMString newLine;
void writeNode(in DOMOutputStream destination,
in Node node)
raises(dom::DOMSystemException);
};
};
#endif // _LOAD-SAVE_IDL_