/* -*- 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 Disruptive Innovations. * * Portions created by the Initial Developer are Copyright (C) 2008 * 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 "diIRelaxNGExtension.idl" #include "diIRelaxNGExtensionListener.idl" interface nsISAXAttributes; interface diIRelaxNGParser; [scriptable, uuid(826b8b72-5950-4c50-90a4-46425992be26)] interface diIRelaxNGExtensionFactory: nsISupports { const unsigned short PB_GRAMMAR = 1; const unsigned short PB_START = 2; const unsigned short PB_DEFINE = 3; const unsigned short PB_DIV = 4; const unsigned short PB_INCLUDE = 5; const unsigned short PB_EXTERNALREF = 6; const unsigned short PB_REF = 7; const unsigned short PB_PARENTREF = 8; const unsigned short PB_ELEMENT = 9; const unsigned short PB_ATTRIBUTE = 10; const unsigned short PB_GROUP = 11; const unsigned short PB_INTERLEAVE = 12; const unsigned short PB_CHOICE = 13; const unsigned short PB_OPTIONAL = 14; const unsigned short PB_ZEROORMORE = 15; const unsigned short PB_ONEORMORE = 16; const unsigned short PB_LIST = 17; const unsigned short PB_MIXED = 18; const unsigned short PB_EMPTY = 19; const unsigned short PB_NOTALLOWED = 20; const unsigned short PB_TEXT = 21; const unsigned short PB_VALUE = 22; const unsigned short PB_DATA = 23; const unsigned short PB_PARAM = 24; const unsigned short PB_NAME = 25; const unsigned short PB_ANYNAME = 26; const unsigned short PB_NSNAME = 27; const unsigned short PB_EXCEPT = 28; const unsigned short PB_CHOICENAME = 29; /** * keep only a weak reference to aParser, to avoid cycle reference */ diIRelaxNGExtension getAttributeHandler(in diIRelaxNGParser aParser, in PRUint32 aPatternType, in AString uri, in AString localName, in AString attrValue); /** * keep only a weak reference to aParser, to avoid cycle reference */ diIRelaxNGExtensionListener getSubTreeListener(in diIRelaxNGParser aParser, in PRUint32 aPatternType, in AString uri, in AString localName, in nsISAXAttributes attributes); }; %{C++ #define DI_RNG_EXTENSION_LISTENER_CID_BASE "@disruptive-innovations.com/relaxng-extensions;1?ns=" %}