05 February 2003

Appendix A: IDL Definitions

This appendix contains the complete OMG IDL [OMG IDL] for the Level 3 Document Object Model Validation definitions.

The IDL files are also available as: http://www.w3.org/TR/2003/WD-DOM-Level-3-Val-20030205/idl.zip


// File: validation.idl


#include "dom.idl"

#pragma prefix "dom.w3c.org"
module validation

  typedef dom::DOMString DOMString;
  typedef dom::DOMStringList DOMStringList;
  typedef dom::Node Node;
  typedef dom::NameList NameList;
  typedef dom::Attr Attr;
  typedef dom::Range Range;

  exception ExceptionVAL {
    unsigned short   code;
  // ExceptionVALCode
  const unsigned short      NO_GRAMMAR_AVAILABLE_ERR       = 71;

  interface NodeEditVAL {

    // CheckTypeVAL
    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;

    readonly attribute DOMString       defaultValue;
    readonly attribute DOMStringList   enumeratedValues;
    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)

  interface ElementEditVAL : NodeEditVAL {
    readonly attribute NameList        allowedChildren;
    readonly attribute NameList        allowedParents;
    readonly attribute NameList        allowedNextSiblings;
    readonly attribute NameList        allowedPreviousSiblings;
    readonly attribute NameList        allowedAttributes;
    readonly attribute NameList        requiredAttributes;
    unsigned short     contentType();
    boolean            canSetAttribute(in DOMString attrname, 
                                       in DOMString attrval);
    boolean            canSetAttributeNode(in Attr attrNode);
    boolean            canSetAttributeNS(in DOMString namespaceURI, 
                                         in DOMString qualifiedName, 
                                         in DOMString value);
    boolean            canRemoveAttribute(in DOMString attrname);
    boolean            canRemoveAttributeNS(in DOMString namespaceURI, 
                                            in DOMString localName);
    boolean            canRemoveAttributeNode(in Node attrNode);
    boolean            isElementDefined(in DOMString name);
    boolean            isElementDefinedNS(in DOMString namespaceURI, 
                                          in DOMString name);

  interface CharacterDataEditVAL : NodeEditVAL {
    readonly attribute boolean         isWhitespaceOnly;
    boolean            canSetData(in DOMString arg);
    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 DocumentEditVAL : NodeEditVAL {
             attribute boolean         continuousValidityChecking;
    NameList           getDefinedElementTypes(in DOMString namespaceURI);
    void               validateDocument()

  interface RangeVAL : Range {
    boolean            canSurroundContents(in Node node1, 
                                           in Node node2, 
                                           in Node b);
    NameList           getAlternativeElements(in Node refChild);

#endif // _VALIDATION_IDL_