This appendix contains the complete OMG IDL [OMGIDL] for the Level 3 Document Object Model Abstract Schemas and Load and Save definitions.
The IDL files are also available as: http://www.w3.org/TR/2001/WD-DOM-Level-3-ASLS-20010607/idl.zip
// File: abstract-schemas.idl
#ifndef _ABSTRACT-SCHEMAS_IDL_
#define _ABSTRACT-SCHEMAS_IDL_
#include "dom.idl"
#pragma prefix "dom.w3c.org"
module abstract-schemas
{
typedef dom::DOMString DOMString;
typedef dom::int int;
typedef dom::decimal decimal;
typedef dom::Node Node;
typedef dom::DOMImplementation DOMImplementation;
typedef dom::Element Element;
typedef dom::CharacterData CharacterData;
typedef dom::DocumentType DocumentType;
typedef dom::Attr Attr;
interface ASModel;
interface ASChildren;
interface ASAttributeDeclaration;
interface DOMErrorHandler;
interface DOMLocator;
interface ASNode {
const unsigned short AS_ELEMENT_DECLARATION = 1;
const unsigned short AS_ATTRIBUTE_DECLARATION = 2;
const unsigned short AS_NOTATION_DECLARATION = 3;
const unsigned short AS_ENTITY_DECLARATION = 4;
const unsigned short AS_CHILDREN = 5;
const unsigned short AS_MODEL = 6;
const unsigned short AS_EXTERNALMODEL = 7;
readonly attribute unsigned short cmNodeType;
attribute ASModel ownerASModel;
attribute DOMString nodeName;
attribute DOMString prefix;
attribute DOMString localName;
attribute DOMString namespaceURI;
ASNode cloneASNode();
};
interface ASNodeList {
readonly attribute int length;
ASNode item(in int index);
};
interface ASDOMStringList {
readonly attribute int length;
DOMString item(in int index);
};
interface ASNamedNodeMap {
readonly attribute int length;
ASNode getNamedItem(inout DOMString name);
ASNode getNamedItemNS(in DOMString namespaceURI,
inout DOMString localName);
ASNode item(in int index);
ASNode removeNamedItem(in DOMString name);
ASNode removeNamedItemNS(in DOMString namespaceURI,
in DOMString localName);
ASNode setNamedItem(inout ASNode newASNode)
raises(dom::DOMASException);
ASNode setNamedItemNS(inout ASNode newASNode)
raises(dom::DOMASException);
};
interface ASDataType {
const short STRING_DATATYPE = 1;
short getASPrimitiveType();
};
interface ASPrimitiveType : ASDataType {
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 ASElementDeclaration : ASNode {
const short EMPTY_CONTENTTYPE = 1;
const short ANY_CONTENTTYPE = 2;
const short MIXED_CONTENTTYPE = 3;
const short ELEMENTS_CONTENTTYPE = 4;
attribute boolean strictMixedContent;
attribute ASDataType elementType;
attribute boolean isPCDataOnly;
attribute short contentType;
attribute DOMString tagName;
ASChildren getASChildren();
void setASChildren(inout ASChildren elementContent)
raises(dom::DOMASException);
ASNamedNodeMap getASAttributeDecls();
void setASAttributeDecls(inout ASNamedNodeMap attributes);
void addASAttributeDecl(in ASAttributeDeclaration attributeDecl);
ASAttributeDeclaration removeASAttributeDecl(in ASAttributeDeclaration attributeDecl);
};
interface ASChildren : ASNode {
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 ASNodeList subModels;
ASNode removeASNode(in unsigned long nodeIndex);
int insertASNode(in unsigned long nodeIndex,
in ASNode newNode);
int appendASNode(in ASNode newNode);
};
interface ASAttributeDeclaration : ASNode {
const short NO_VALUE_CONSTRAINT = 0;
const short DEFAULT_VALUE_CONSTRAINT = 1;
const short FIXED_VALUE_CONSTRAINT = 2;
attribute DOMString attrName;
attribute ASDataType attrType;
attribute DOMString attributeValue;
attribute DOMString enumAttr;
attribute ASNodeList ownerElement;
attribute short constraintType;
};
interface ASEntityDeclaration : ASNode {
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 ASNotationDeclaration : ASNode {
attribute DOMString notationName;
attribute DOMString systemId;
attribute DOMString publicId;
};
interface Document {
void setErrorHandler(in DOMErrorHandler handler);
};
interface DocumentAS : Document {
attribute boolean continuousValidityChecking;
int numASs();
ASModel getInternalAS();
ASNodeList getASs();
ASModel getActiveAS();
void addAS(in ASModel cm);
void removeAS(in ASModel cm);
boolean activateAS(in ASModel 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 ASModel : ASNode {
readonly attribute boolean isNamespaceAware;
attribute ASElementDeclaration rootElementDecl;
attribute DOMString systemId;
attribute DOMString publicId;
ASNodeList getASNodes();
boolean removeNode(in ASNode node);
boolean insertBefore(in ASNode newNode,
in ASNode refNode);
boolean validate();
ASElementDeclaration createASElementDeclaration(inout DOMString namespaceURI,
in DOMString qualifiedElementName)
raises(dom::DOMException);
ASAttributeDeclaration createASAttributeDeclaration(inout DOMString namespaceURI,
in DOMString qualifiedName)
raises(dom::DOMException);
ASNotationDeclaration createASNotationDeclaration(inout DOMString namespaceURI,
in DOMString qualifiedElementName,
in DOMString systemIdentifier,
inout DOMString publicIdentifier)
raises(dom::DOMException);
ASEntityDeclaration createASEntityDeclaration(in DOMString name)
raises(dom::DOMException);
ASChildren createASChildren(in unsigned long minOccurs,
in unsigned long maxOccurs,
inout unsigned short operator)
raises(dom::DOMException);
};
interface ASExternalModel : ASModel {
};
interface DOMImplementationAS : DOMImplementation {
ASModel createAS();
ASExternalModel createExternalAS();
};
interface NodeAS : Node {
const short WF_CHECK = 1;
const short NS_WF_CHECK = 2;
const short PARTIAL_VALIDITY_CHECK = 3;
const short STRICT_VALIDITY_CHECK = 4;
attribute short wfValidityCheckLevel;
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(in boolean deep)
raises(dom::DOMException);
};
interface ElementAS : Element {
short contentType();
ASElementDeclaration 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);
ASDOMStringList getChildElements();
ASDOMStringList getParentElements();
ASDOMStringList getAttributeList();
};
interface CharacterDataAS : CharacterData {
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 DocumentTypeAS : DocumentType {
readonly attribute ASDOMStringList definedElementTypes;
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 AttributeAS : Attr {
ASAttributeDeclaration getAttributeDeclaration();
ASNotationDeclaration getNotation()
raises(dom::DOMException);
};
};
#endif // _ABSTRACT-SCHEMAS_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;
typedef dom::CMModel CMModel;
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;
attribute boolean mimeTypeCheck;
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 DOMCMWriter : DOMWriter {
void writeCMModel(in DOMOutputStream destination,
in CMModel model)
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;
};
interface DOMCMBuilder : DOMBuilder {
CMModel parseCMURI(in DOMString uri)
raises(dom::DOMException,
dom::DOMSystemException);
CMModel parseCMInputSource(in DOMInputSource is)
raises(dom::DOMException,
dom::DOMSystemException);
};
};
#endif // _LOAD-SAVE_IDL_