/// <summary>
 /// Constructs a <b>SchemeRule</b> with the given name and that applies in
 /// the circumstances defined by its <see cref="Precondition"/>.
 /// </summary>
 /// <param name="precondition">A <see cref="Precondition"/> instance.</param>
 /// <param name="name">The unique name for the rule.</param>
 /// <param name="elementContext">The element name based context.</param>
 /// <param name="typeContext">The type name based context (or <c>null</c>)</param>
 /// <param name="attributeName">The name of the attribute containing the scheme URI.</param>
 public SchemeRule(Precondition precondition, string name,
                   ElementContext elementContext, TypeContext typeContext, string attributeName)
     : base(precondition, name)
 {
     this.elementContext = elementContext;
     this.typeContext    = typeContext;
     this.attributeName  = attributeName;
 }
 /// <summary>
 /// Constructs a <b>SchemeRule</b> with the given name and that applies in
 /// the circumstances defined by its <see cref="Precondition"/>.
 /// </summary>
 /// <param name="precondition">A <see cref="Precondition"/> instance.</param>
 /// <param name="name">The unique name for the rule.</param>
 /// <param name="elementContext">The element name based context.</param>
 /// <param name="attributeName">The name of the attribute containing the scheme URI.</param>
 public SchemeRule(Precondition precondition, string name,
                   ElementContext elementContext, string attributeName)
     : this(precondition, name, elementContext, null, attributeName)
 {
 }