/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIDOMNode.idl"

/**
 * The nsIDOMCharacterData interface extends nsIDOMNode with a set of 
 * attributes and methods for accessing character data in the DOM.
 * 
 * For more information on this interface please see 
 * http://www.w3.org/TR/DOM-Level-2-Core/
 */

[scriptable, uuid(84f72a38-1873-46f8-937c-1df22d7e7cae)]
interface nsIDOMCharacterData : nsIDOMNode
{
           attribute DOMString            data;
                                  // raises(DOMException) on setting
                                  // raises(DOMException) on retrieval

  readonly attribute unsigned long        length;
  DOMString                 substringData(in unsigned long offset, 
                                          in unsigned long count)
                                  raises(DOMException);
  void                      appendData(in DOMString arg)
                                  raises(DOMException);
  void                      insertData(in unsigned long offset, 
                                       in DOMString arg)
                                  raises(DOMException);
  void                      deleteData(in unsigned long offset, 
                                       in unsigned long count)
                                  raises(DOMException);
  void                      replaceData(in unsigned long offset, 
                                        in unsigned long count, 
                                        in DOMString arg)
                                  raises(DOMException);

  [binaryname(MozRemove)]
  void remove();
};
