/// <summary>
 /// Creates a directory tag.
 ///
 /// Examples :
 /// <pre>
 /// &lt;directory name="Exif"&gt;
 ///   &lt;tag&gt;
 ///     ...
 ///   &lt;/tag&gt;
 ///   &lt;tag&gt;
 ///     ...
 ///   &lt;/tag&gt;
 /// &lt;/directory&gt;
 /// </pre>
 /// </summary>
 /// <param name="aBuff">where to put info</param>
 /// <param name="aDirectory">the information to add</param>
 protected virtual void CreateDirectory(StringBuilder aBuff, AbstractDirectory aDirectory)
 {
     if (aDirectory != null)
     {
         this.Open(aBuff, "directory", "name", aDirectory.GetName(), "class", aDirectory.GetType(), true);
         foreach (Tag lcTag in aDirectory)
         {
             this.CreateTag(aBuff, lcTag);
         }
         this.Close(aBuff, "directory", true);
     }
 }
 /// <summary>
 /// Creates a directory tag.
 ///
 /// Examples :
 /// <pre>
 /// &lt;directory name="Exif"&gt;
 ///   &lt;tag&gt;
 ///     ...
 ///   &lt;/tag&gt;
 ///   &lt;tag&gt;
 ///     ...
 ///   &lt;/tag&gt;
 /// &lt;/directory&gt;
 /// </pre>
 /// </summary>
 /// <param name="aBuff">where to put info</param>
 /// <param name="aDirectory">the information to add</param>
 protected virtual void CreateDirectory(StringBuilder aBuff, AbstractDirectory aDirectory)
 {
     if (aDirectory != null)
     {
         this.Open(aBuff, "directory", "name", aDirectory.GetName(), "class", aDirectory.GetType(), true);
         IEnumerator <Tag> lcTagsEnum = aDirectory.GetTagIterator();
         while (lcTagsEnum.MoveNext())
         {
             this.CreateTag(aBuff, lcTagsEnum.Current);
         }
         this.Close(aBuff, "directory", true);
     }
 }