/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is ETNA Relax NG validator. * * The Initial Developer of the Original Code is The Connexions Project. * * Portions created by the Initial Developer are Copyright (C) 2004-2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Laurent Jouanneau , Original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" #include "diIValidationSchema.idl" #include "nsIDOMDocument.idl" #include "nsIDOMElement.idl" #include "nsIDOMNode.idl" #include "nsIArray.idl" #include "nsIDOMRange.idl" [scriptable, uuid(15e5e1f3-d9de-4480-b7cc-d851d44f38d7)] interface diIValidationSchemaQuery : nsISupports { /** * initialize many datas used by other methods, such as, generation of blank content, * generation of extended child list etc.. */ void InitSchemaForQuery(); boolean IsValid (in nsIDOMElement aElt, in boolean aPrepareForEditing); /** * for the copy/paste function : can we add aChild (and its children) after children of aElt ? */ boolean canAppendChild( in nsIDOMElement aElt, in nsIDOMNode aChild); boolean canAppendRange( in nsIDOMElement aElt, in nsIDOMRange aRange); boolean canAppendTextChild( in nsIDOMElement aElt, in DOMString aTextValue); /** * can we insert aEltToAddBefore before the given node ? */ boolean canInsertBefore(in nsIDOMNode aNode, in nsIDOMNode aNodeToAddBefore); boolean canInsertRangeBefore(in nsIDOMNode aNode, in nsIDOMRange aRangeToAddBefore); /** * */ boolean canInsertNodeAtRange(in nsIDOMNode aNode, in nsIDOMRange aRange); boolean canInsertRangeAtRange(in nsIDOMRange aRangeToInsert, in nsIDOMRange aRange); /** * can we insert some text before the given node ? */ boolean canInsertTextBefore(in nsIDOMNode aNode, in DOMString aTextValue); boolean canReplaceText(in nsIDOMNode aTextNode, in DOMString aNewTextValue); /** * says if we can set the given attribute */ boolean canSetAttribute(in nsIDOMElement aElt, in DOMString aLocalName, in DOMString aNamespaceURI, in DOMString aValue); /** * says if we can remove the given attribute */ boolean canRemoveAttribute(in nsIDOMElement aElt, in DOMString aLocalName, in DOMString aNamespaceURI); /** * */ boolean canReplace(in nsIDOMNode aNodeToReplace, in nsIDOMNode aNode); boolean canReplaceRange(in nsIDOMRange aRangeToReplace, in nsIDOMRange aRange); boolean canReplaceRangeByNode(in nsIDOMRange aRangeToReplace, in nsIDOMNode aNode); boolean canReplaceNodeByRange(in nsIDOMNode aNodeToReplace, in nsIDOMRange aRange); boolean canSurround(in nsIDOMNode aNodeToSurround, in nsIDOMNode aNode); boolean canSurroundRange(in nsIDOMRange aRangeToSurround, in nsIDOMNode aNode); boolean canRemoveContainer(in nsIDOMNode aContainerNode); boolean canReplaceContainer(in nsIDOMNode aContainerNode, in nsIDOMNode aNode); /** * */ boolean canRemove(in nsIDOMNode aNode); boolean canRemoveRange(in nsIDOMRange aRange); };