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-20010419/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::DOMString DOMString;
typedef dom::decimal decimal;
typedef dom::int int;
typedef dom::Node Node;
typedef dom::nsElement nsElement;
typedef dom::DOMImplementation DOMImplementation;
typedef dom::Element,NodeCM Element,NodeCM;
typedef dom::Text,NodeCM Text,NodeCM;
typedef dom::DocumentType,NodeCM DocumentType,NodeCM;
typedef dom::Attr,NodeCM Attr,NodeCM;
interface CMModel;
interface CMChildren;
interface DOMErrorHandler;
interface DOMLocator;
interface CMNode {
const unsigned short CM_ELEMENT_DECLARATION = 1;
const unsigned short CM_ATTRIBUTE_DECLARATION = 2;
const unsigned short CM_NOTATION_DECLARATION = 3;
const unsigned short CM_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;
attribute CMModel ownerCMModel;
attribute DOMString nodeName;
attribute DOMString prefix;
attribute DOMString localName;
attribute DOMString namespaceURI;
CMNode clone();
};
interface CMNodeList {
};
interface CMNamedNodeMap {
};
interface CMDataType {
const short STRING_DATATYPE = 1;
short getCMPrimitiveType();
};
interface CMPrimitiveType : CMDataType {
const short BOOLEAN_DATATYPE = 2;
const short FLOAT_DATATYPE = 3;
const short DOUBLE_DATATYPE = 4;
const short DECIMAL_DATATYPE = 5;
const short HEXBINARY_DATATYPE = 6;
const short BASE64BINARY_DATATYPE = 7;
const short ANYURI_DATATYPE = 8;
const short QNAME_DATATYPE = 9;
const short DURATION_DATATYPE = 10;
const short DATETIME_DATATYPE = 11;
const short DATE_DATATYPE = 12;
const short TIME_DATATYPE = 13;
const short YEARMONTH_DATATYPE = 14;
const short YEAR_DATATYPE = 15;
const short MONTHDAY_DATATYPE = 16;
const short DAY_DATATYPE = 17;
const short MONTH_DATATYPE = 18;
const short NOTATION_DATATYPE = 19;
attribute decimal lowValue;
attribute decimal highValue;
};
interface CMElementDeclaration : CMNode {
attribute CMDataType elementType;
readonly attribute boolean isPCDataOnly;
attribute DOMString tagName;
int getContentType();
CMChildren getCMChildren();
CMNamedNodeMap getCMAttributes();
CMNamedNodeMap getCMGrandChildren();
};
interface CMChildren : CMNode {
const unsigned long UNBOUNDED = MAX_LONG;
const unsigned short NONE = 0;
const unsigned short SEQUENCE = 1;
const unsigned short CHOICE = 2;
attribute unsigned short listOperator;
attribute unsigned long minOccurs;
attribute unsigned long maxOccurs;
attribute CMNodeList subModels;
CMNode removeCMNode(in unsigned long nodeIndex);
int insertCMNode(in unsigned long nodeIndex,
in CMNode newNode);
int appendCMNode(in CMNode newNode);
};
interface CMAttributeDeclaration : CMNode {
const short NO_VALUE_CONSTRAINT = 0;
const short DEFAULT_VALUE_CONSTRAINT = 1;
const short FIXED_VALUE_CONSTRAINT = 2;
attribute DOMString attrName;
attribute CMDataType attrType;
attribute DOMString attributeValue;
attribute DOMString enumAttr;
attribute CMNodeList ownerElement;
attribute short constraintType;
};
interface CMEntityDeclaration : CMNode {
const short INTERNAL_ENTITY = 1;
const short EXTERNAL_ENTITY = 2;
attribute short entityType;
attribute DOMString entityName;
attribute DOMString entityValue;
attribute DOMString systemId;
attribute DOMString publicId;
attribute DOMString notationName;
};
interface CMNotationDeclaration : CMNode {
attribute DOMString notationName;
attribute DOMString systemId;
attribute DOMString publicId;
};
interface Document {
void setErrorHandler(in DOMErrorHandler handler);
};
interface DocumentCM : Document {
const short WF_CHECK = 1;
const short NS_WF_CHECK = 2;
const short PARTIAL_VALIDITY_CHECK = 3;
const short STRICT_VALIDITY_CHECK = 4;
attribute boolean continuousValidityChecking;
attribute short wfValidityCheckLevel;
int numCMs();
CMModel getInternalCM();
CMNodeList getCMs();
CMModel getActiveCM();
void addCM(in CMModel cm);
void removeCM(in CMModel cm);
boolean activateCM(in CMModel cm);
};
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;
attribute CMElementDeclaration rootElementDecl;
DOMString getLocation();
nsElement getCMNamespace();
CMNamedNodeMap getCMNodes();
boolean removeNode(in CMNode node);
boolean insertBefore(in CMNode newNode,
in CMNode refNode);
boolean validate();
CMElementDeclaration createCMElementDeclaration(inout DOMString namespaceURI,
in DOMString qualifiedElementName,
in int contentSpec)
raises(dom::DOMException);
CMAttributeDeclaration createCMAttributeDeclaration(inout DOMString namespaceURI,
in DOMString qualifiedName)
raises(dom::DOMException);
CMNotationDeclaration createCMNotationDeclaration(in DOMString name,
in DOMString systemIdentifier,
inout DOMString publicIdentifier)
raises(dom::DOMException);
CMEntityDeclaration createCMEntityDeclaration(in DOMString name)
raises(dom::DOMException);
CMChildren createCMChildren(in unsigned long minOccurs,
in unsigned long maxOccurs,
inout unsigned short operator)
raises(dom::DOMException);
};
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()
raises(dom::DOMException);
};
interface ElementCM : Element,NodeCM {
int contentType();
CMElementDeclaration getElementDeclaration()
raises(dom::DOMException);
boolean canSetAttribute(in DOMString attrname,
in DOMString attrval);
boolean canSetAttributeNode(in Node node);
boolean canSetAttributeNodeNS(in Node node);
boolean canSetAttributeNS(in DOMString attrname,
in DOMString attrval,
in DOMString namespaceURI,
in DOMString localName);
boolean canRemoveAttribute(in DOMString attrname);
boolean canRemoveAttributeNS(in DOMString attrname,
inout DOMString namespaceURI);
boolean canRemoveAttributeNode(in Node node);
};
interface CharacterDataCM : Text,NodeCM {
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,NodeCM {
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);
};
interface AttributeCM : Attr,NodeCM {
CMAttributeDeclaration getAttributeDeclaration();
CMNotationDeclaration getNotation()
raises(dom::DOMException);
};
};
#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 startElement(in Element element);
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);
};
interface DocumentLS {
attribute boolean async;
void abort();
boolean load(in DOMString url);
boolean loadXML(in DOMString source);
DOMString saveXML(in Node node)
raises(dom::DOMException);
};
interface ParserErrorEvent {
readonly attribute long errorCode;
readonly attribute long filepos;
readonly attribute long line;
readonly attribute long linepos;
readonly attribute DOMString reason;
readonly attribute DOMString srcText;
readonly attribute DOMString url;
};
};
#endif // _LOAD-SAVE_IDL_