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/2002/WD-DOM-Level-3-ASLS-20020114/idl.zip
// File: as.idl
#ifndef _AS_IDL_
#define _AS_IDL_
#include "dom.idl"
#include "ls.idl"
#pragma prefix "dom.w3c.org"
module as
{
typedef dom::DOMString DOMString;
typedef dom::Document Document;
typedef dom::DOMImplementation DOMImplementation;
typedef dom::Node Node;
typedef dom::NodeList NodeList;
typedef dom::Attr Attr;
typedef dom::DOMOutputStream DOMOutputStream;
interface ASModel;
interface ASContentModel;
interface ASAttributeDecl;
interface NodeEditAS;
exception ASException {
unsigned short code;
};
// ASExceptionCode
const unsigned short DUPLICATE_NAME_ERR = 1;
const unsigned short TYPE_ERR = 2;
const unsigned short NO_AS_AVAILABLE = 3;
const unsigned short WRONG_MIME_TYPE_ERR = 4;
const unsigned short INVALID_CHARACTER_ERR = 5;
const unsigned short VALIDATION_ERR = 6;
interface ASObject {
// ASObjectType
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_CONTENTMODEL = 5;
const unsigned short AS_MODEL = 6;
readonly attribute unsigned short ASObjectType;
readonly attribute ASModel ownerASModel;
attribute DOMString objectName;
attribute DOMString prefix;
attribute DOMString localName;
attribute DOMString namespaceURI;
ASObject cloneASObject(in boolean deep);
};
interface ASObjectList {
readonly attribute unsigned long length;
ASObject item(in unsigned long index);
};
interface ASNamedObjectMap {
readonly attribute unsigned long length;
ASObject getNamedItem(in DOMString name);
ASObject item(in unsigned long index);
ASObject removeNamedItem(in DOMString name)
raises(dom::DOMException);
ASObject setNamedItem(in ASObject newASObject)
raises(dom::DOMException,
ASException);
};
interface ASDataType {
readonly attribute unsigned short dataType;
// DATA_TYPES
const unsigned short STRING_DATATYPE = 1;
const unsigned short NOTATION_DATATYPE = 10;
const unsigned short ID_DATATYPE = 11;
const unsigned short IDREF_DATATYPE = 12;
const unsigned short IDREFS_DATATYPE = 13;
const unsigned short ENTITY_DATATYPE = 14;
const unsigned short ENTITIES_DATATYPE = 15;
const unsigned short NMTOKEN_DATATYPE = 16;
const unsigned short NMTOKENS_DATATYPE = 17;
const unsigned short BOOLEAN_DATATYPE = 100;
const unsigned short FLOAT_DATATYPE = 101;
const unsigned short DOUBLE_DATATYPE = 102;
const unsigned short DECIMAL_DATATYPE = 103;
const unsigned short HEXBINARY_DATATYPE = 104;
const unsigned short BASE64BINARY_DATATYPE = 105;
const unsigned short ANYURI_DATATYPE = 106;
const unsigned short QNAME_DATATYPE = 107;
const unsigned short DURATION_DATATYPE = 108;
const unsigned short DATETIME_DATATYPE = 109;
const unsigned short DATE_DATATYPE = 110;
const unsigned short TIME_DATATYPE = 111;
const unsigned short GYEARMONTH_DATATYPE = 112;
const unsigned short GYEAR_DATATYPE = 113;
const unsigned short GMONTHDAY_DATATYPE = 114;
const unsigned short GDAY_DATATYPE = 115;
const unsigned short GMONTH_DATATYPE = 116;
const unsigned short INTEGER = 117;
const unsigned short NAME_DATATYPE = 200;
const unsigned short NCNAME_DATATYPE = 201;
const unsigned short NORMALIZEDSTRING_DATATYPE = 202;
const unsigned short TOKEN_DATATYPE = 203;
const unsigned short LANGUAGE_DATATYPE = 204;
const unsigned short NONPOSITIVEINTEGER_DATATYPE = 205;
const unsigned short NEGATIVEINTEGER_DATATYPE = 206;
const unsigned short LONG_DATATYPE = 207;
const unsigned short INT_DATATYPE = 208;
const unsigned short SHORT_DATATYPE = 209;
const unsigned short BYTE_DATATYPE = 210;
const unsigned short NONNEGATIVEINTEGER_DATATYPE = 211;
const unsigned short UNSIGNEDLONG_DATATYPE = 212;
const unsigned short UNSIGNEDINT_DATATYPE = 213;
const unsigned short UNSIGNEDSHORT_DATATYPE = 214;
const unsigned short UNSIGNEDBYTE_DATATYPE = 215;
const unsigned short POSITIVEINTEGER_DATATYPE = 216;
const unsigned short OTHER_SIMPLE_DATATYPE = 1000;
const unsigned short COMPLEX_DATATYPE = 1001;
};
interface ASElementDecl : ASObject {
// CONTENT_MODEL_TYPES
const unsigned short EMPTY_CONTENTTYPE = 1;
const unsigned short ANY_CONTENTTYPE = 2;
const unsigned short MIXED_CONTENTTYPE = 3;
const unsigned short ELEMENTS_CONTENTTYPE = 4;
attribute boolean strictMixedContent;
attribute ASDataType elementType;
attribute boolean isPCDataOnly;
attribute unsigned short contentType;
attribute ASContentModel ASContentModel;
attribute ASNamedObjectMap ASAttributeDecls;
void addASAttributeDecl(in ASAttributeDecl attributeDecl);
ASAttributeDecl removeASAttributeDecl(in ASAttributeDecl attributeDecl);
};
interface ASContentModel : ASObject {
const unsigned long AS_UNBOUNDED = MAX_VALUE;
// ASContentModelType
const unsigned short AS_SEQUENCE = 0;
const unsigned short AS_CHOICE = 1;
const unsigned short AS_ALL = 2;
const unsigned short AS_NONE = 3;
const unsigned short AS_UNDEFINED = 4;
attribute unsigned short listOperator;
attribute unsigned long minOccurs;
attribute unsigned long maxOccurs;
attribute ASObjectList subModels;
void removesubModel(in ASObject oldObject);
ASObject insertBeforeSubModel(in ASObject newObject,
in ASObject refObject)
raises(ASException);
unsigned long appendsubModel(in ASObject newObject)
raises(ASException);
};
interface ASAttributeDecl : ASObject {
// VALUE_TYPES
const unsigned short NONE = 0;
const unsigned short DEFAULT = 1;
const unsigned short FIXED = 2;
const unsigned short REQUIRED = 3;
attribute ASDataType DataType;
attribute DOMString DataValue;
attribute DOMString enumAttr;
attribute ASObjectList ownerElements;
attribute unsigned short defaultType;
};
interface ASEntityDecl : ASObject {
// EntityType
const unsigned short INTERNAL_ENTITY = 1;
const unsigned short EXTERNAL_ENTITY = 2;
attribute unsigned short entityType;
attribute DOMString entityValue;
attribute DOMString systemId;
attribute DOMString publicId;
};
interface ASNotationDecl : ASObject {
attribute DOMString systemId;
attribute DOMString publicId;
};
interface ASModel : ASObject {
// ASMODEL_TYPES
const unsigned short INTERNAL_SUBSET = 1;
const unsigned short EXTERNAL_SUBSET = 2;
const unsigned short NOT_USED = 3;
readonly attribute boolean NamespaceAware;
readonly attribute unsigned short usage;
attribute DOMString location;
attribute DOMString hint;
readonly attribute boolean container;
readonly attribute ASNamedObjectMap elementDecls;
readonly attribute ASNamedObjectMap attributeDecls;
readonly attribute ASNamedObjectMap notationDecls;
readonly attribute ASNamedObjectMap entityDecls;
readonly attribute ASNamedObjectMap contentModelDecls;
void addASModel(in ASModel abstractSchema);
ASObjectList getASModels();
void removeAS(in ASModel as);
boolean validate();
void importASObject(in ASObject asobject);
void insertASObject(in ASObject asobject);
ASElementDecl createASElementDecl(in DOMString namespaceURI,
in DOMString name)
raises(ASException);
ASAttributeDecl createASAttributeDecl(in DOMString namespaceURI,
in DOMString name)
raises(ASException);
ASNotationDecl createASNotationDecl(in DOMString namespaceURI,
in DOMString name,
in DOMString systemId,
in DOMString publicId)
raises(ASException);
ASEntityDecl createASEntityDecl(in DOMString name)
raises(ASException);
ASContentModel createASContentModel(in DOMString name,
in DOMString namespaceURI,
in unsigned long minOccurs,
in unsigned long maxOccurs,
in unsigned short operator)
raises(ASException);
};
interface DocumentAS : Document {
attribute ASModel activeASModel;
attribute ASObjectList boundASModels;
ASModel getInternalAS();
void setInternalAS(in ASModel as)
raises(dom::DOMException);
void addAS(in ASModel as);
void removeAS(in ASModel as);
ASElementDecl getElementDecl()
raises(dom::DOMException);
void validate()
raises(ASException);
};
interface DOMImplementationAS : DOMImplementation {
readonly attribute boolean container;
attribute DOMString schemaType;
ASModel createAS(in boolean NamespaceAware,
in DOMString schemaType);
};
interface DocumentEditAS : NodeEditAS {
attribute boolean continuousValidityChecking;
};
interface NodeEditAS : Node {
// ASCheckType
const unsigned short WF_CHECK = 1;
const unsigned short NS_WF_CHECK = 2;
const unsigned short PARTIAL_VALIDITY_CHECK = 3;
const unsigned short STRICT_VALIDITY_CHECK = 4;
boolean canInsertBefore(in Node newChild,
in Node refChild);
boolean canRemoveChild(in Node oldChild);
boolean canReplaceChild(in Node newChild,
in Node oldChild);
boolean canAppendChild(in Node newChild);
boolean isNodeValid(in boolean deep,
in unsigned short wFValidityCheckLevel)
raises(ASException);
};
interface ElementEditAS : NodeEditAS {
readonly attribute NodeList definedElementTypes;
unsigned short contentType();
boolean canSetAttribute(in DOMString attrname,
in DOMString attrval);
boolean canSetAttributeNode(in Attr attrNode);
boolean canSetAttributeNS(in DOMString name,
in DOMString attrval,
in DOMString namespaceURI);
boolean canRemoveAttribute(in DOMString attrname);
boolean canRemoveAttributeNS(in DOMString attrname,
in DOMString namespaceURI);
boolean canRemoveAttributeNode(in Node attrNode);
NodeList getChildElements();
NodeList getParentElements();
NodeList getAttributeList();
boolean isElementDefined(in DOMString elemTypeName);
boolean isElementDefinedNS(in DOMString elemTypeName,
in DOMString namespaceURI,
in DOMString name);
};
interface CharacterDataEditAS : NodeEditAS {
readonly attribute boolean isWhitespaceOnly;
boolean canSetData(in unsigned long offset,
in unsigned long count);
boolean canAppendData(in DOMString arg);
boolean canReplaceData(in unsigned long offset,
in unsigned long count,
in DOMString arg);
boolean canInsertData(in unsigned long offset,
in DOMString arg);
boolean canDeleteData(in unsigned long offset,
in unsigned long count);
};
interface ASDOMBuilder : ls::DOMBuilder {
attribute ASModel abstractSchema;
ASModel parseASURI(in DOMString uri,
in DOMString schemaType)
raises(ASException,
dom::DOMSystemException);
ASModel parseASInputSource(in ls::DOMInputSource is)
raises(ASException,
dom::DOMSystemException);
};
interface DOMASWriter : ls::DOMWriter {
void writeASModel(in DOMOutputStream destination,
in ASModel model)
raises(dom::DOMSystemException);
};
};
#endif // _AS_IDL_
// File: ls.idl
#ifndef _LS_IDL_
#define _LS_IDL_
#include "dom.idl"
#include "events.idl"
#include "traversal.idl"
#pragma prefix "dom.w3c.org"
module ls
{
typedef dom::DOMErrorHandler DOMErrorHandler;
typedef dom::DOMString DOMString;
typedef dom::Node Node;
typedef dom::Document Document;
typedef dom::DOMOutputStream DOMOutputStream;
typedef dom::DOMReader DOMReader;
typedef dom::DOMError DOMError;
interface DOMBuilder;
interface DOMWriter;
interface DOMInputSource;
interface DOMEntityResolver;
interface DOMBuilderFilter;
interface DOMImplementationLS {
// DOMIMplementationLSMode
const unsigned short MODE_SYNCHRONOUS = 1;
const unsigned short MODE_ASYNCHRONOUS = 2;
DOMBuilder createDOMBuilder(in unsigned short mode)
raises(dom::DOMException);
DOMWriter createDOMWriter();
DOMInputSource createDOMInputSource();
};
interface DOMBuilder {
attribute DOMEntityResolver entityResolver;
attribute DOMErrorHandler errorHandler;
attribute DOMBuilderFilter filter;
void setFeature(in DOMString name,
in boolean state)
raises(dom::DOMException);
boolean canSetFeature(in DOMString name,
in boolean state);
boolean getFeature(in DOMString name)
raises(dom::DOMException);
Document parseURI(in DOMString uri)
raises(dom::DOMSystemException);
Document parse(in DOMInputSource is)
raises(dom::DOMSystemException);
// ACTION_TYPES
const unsigned short ACTION_REPLACE = 1;
const unsigned short ACTION_APPEND = 2;
const unsigned short ACTION_INSERT_AFTER = 3;
const unsigned short ACTION_INSERT_BEFORE = 4;
void parseWithContext(in DOMInputSource is,
in Node cnode,
in unsigned short action)
raises(dom::DOMException);
};
interface DOMWriter {
void setFeature(in DOMString name,
in boolean state)
raises(dom::DOMException);
boolean canSetFeature(in DOMString name,
in boolean state);
boolean getFeature(in DOMString name)
raises(dom::DOMException);
attribute DOMString encoding;
readonly attribute DOMString lastEncoding;
attribute DOMString newLine;
attribute DOMErrorHandler errorHandler;
boolean writeNode(in DOMOutputStream destination,
in Node wnode)
raises(dom::DOMSystemException);
DOMString writeToString(in Node wnode)
raises(dom::DOMException);
};
interface DOMInputSource {
attribute DOMInputSource byteStream;
attribute DOMReader characterStream;
attribute DOMString stringData;
attribute DOMString encoding;
attribute DOMString publicId;
attribute DOMString systemId;
attribute DOMString baseURI;
};
interface DOMEntityResolver {
DOMInputSource resolveEntity(in DOMString publicId,
in DOMString systemId,
in DOMString baseURI)
raises(dom::DOMSystemException);
};
interface DOMBuilderFilter {
unsigned long startNode(in Node snode);
unsigned long endNode(in Node enode);
readonly attribute unsigned long whatToShow;
};
interface DocumentLS {
attribute boolean async;
void abort();
boolean load(in DOMString uri);
boolean loadXML(in DOMString source);
DOMString saveXML(in Node snode)
raises(dom::DOMException);
};
interface LSLoadEvent : events::Event {
readonly attribute Document newDocument;
readonly attribute DOMInputSource inputSource;
};
interface LSProgressEvent : events::Event {
readonly attribute DOMInputSource inputSource;
readonly attribute unsigned long position;
readonly attribute unsigned long totalSize;
};
interface DOMWriterFilter : traversal::NodeFilter {
readonly attribute unsigned long whatToShow;
};
interface ParseErrorEvent : events::Event {
readonly attribute DOMError error;
};
};
#endif // _LS_IDL_