#include "nsISupports.idl"

interface nsIDOMNode;
interface nsIDOMElement;
interface nsIDOMRange;
interface nsIRDFNode;
interface nsIRDFResource;
interface nsIRDFDataSource;


[scriptable, uuid(e7888958-6d03-4bb9-a137-0ffd2cf4067d)]
interface nsIScriptMarkupValidator : nsISupports
{
  DOMString getCanonicalCharacterName (in nsIDOMNode node);
  DOMString getCanonicalNameFromLit (in nsIRDFNode node);
  boolean isWhitespaceOnly (in nsIDOMNode node);
};


[scriptable, uuid(43aaa461-4f58-4a30-b336-b7f01a4e8210)]
interface nsIScriptScene : nsISupports
{
  void init (in nsIRDFDataSource ds, in nsIRDFResource sceneres);
  void extractBreakdownFromScene (in nsIDOMElement sceneheading, in nsIScriptMarkupValidator validator);
  void extractBreakdownInRange(in nsIDOMRange range, in nsIScriptMarkupValidator validator);

  void addItem (in nsIRDFResource itemres, in boolean suppressSizeUpdate);
  void removeItem (in nsIRDFResource itemres);
  boolean containsItem (in nsIRDFResource itemres);

  void addToMarkup (in nsIRDFResource itemres);
  void removeFromMarkup (in nsIRDFResource itemres);
  boolean containsInMarkup (in nsIRDFResource itemres);
};
