public SchemaElement (string name, string description, SchemaElement[] children = null, SchemaAttribute[] attributes = null) { Name = name; Description = description; if (children != null) { this.children = new Dictionary<string, SchemaElement> (); foreach (var c in children) { this.children.Add (c.Name, c); } } if (attributes != null) { this.attributes = new Dictionary<string, SchemaAttribute> (); foreach (var a in attributes) { this.attributes.Add (a.Name, a); } } }
protected override SchemaElement CreateSchema () { var project = (AddinProject)Document.Project; var addinContents = new SchemaElement[] { new RuntimeSchemaElement (), new DependenciesSchemaElement (), new LocalizerSchemaElement (), new ExtensionElement (project), new ExtensionPointSchemaElement (project), new SchemaElement ("ExtensionNodeSet", "Declares an extension node set"), new SchemaElement ("ConditionType", "Declares a global condition type"), }; return new SchemaElement (null, null, new[] { new SchemaElement ( "Addin", "Root element for add-in and add-in root descriptions", addinContents, new[] { new SchemaAttribute ("id", "The identifier of the add-in. It is mandatory for add-in roots and for add-ins that can be extended, optional for other add-ins."), new SchemaAttribute ("namespace", "Namespace of the add-in. The full ID of an add-in is composed by 'namespace.name'."), new SchemaAttribute ("version", "The version of the add-in. It is mandatory for add-in roots and for add-ins that can be extended."), new SchemaAttribute ("compatVersion", "Version of the add-in with which this add-in is backwards compatible (optional)."), new SchemaAttribute ("name", "Display name of the add-in."), new SchemaAttribute ("description", "Description of the add-in."), new SchemaAttribute ("author", "Author of the add-in."), new SchemaAttribute ("url", "Url of a web page with more information about the add-in."), new SchemaAttribute ("defaultEnabled", "When set to 'false', the add-in won't be enabled until it is explicitly enabled by the user. The default is 'true'."), //TODO: enable this if we ever support arbitrary addins //new SchemaAttribute ("isroot", "Must be true if this manifest belongs to an add-in root.") } ), new SchemaElement ("ExtensionModel", "Root element for add-in and add-in root descriptions", addinContents) }); }
public override void Initialize () { base.Initialize (); schema = CreateSchema (); }
protected override void Initialize () { base.Initialize (); schema = CreateSchema (); }