/// <summary>
 /// Initializes a new instance of the <see cref="DocumentStart"/> class.
 /// </summary>
 /// <param name="version">The version.</param>
 /// <param name="tags">The tags.</param>
 /// <param name="isImplicit">Indicates whether the event is implicit.</param>
 /// <param name="start">The start position of the event.</param>
 /// <param name="end">The end position of the event.</param>
 public DocumentStart(VersionDirective version, TagDirectiveCollection tags, bool isImplicit, Mark start, Mark end)
     : base(start, end)
 {
     this.version = version;
     this.tags = tags;
     this.isImplicit = isImplicit;
 }
 protected DocumentStart DocumentStart(bool isImplicit, VersionDirective version, params TagDirective[] tags)
 {
     return new DocumentStart(version, new TagDirectiveCollection(tags), isImplicit);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DocumentStart"/> class.
 /// </summary>
 /// <param name="version">The version.</param>
 /// <param name="tags">The tags.</param>
 /// <param name="isImplicit">Indicates whether the event is implicit.</param>
 public DocumentStart(VersionDirective version, TagDirectiveCollection tags, bool isImplicit)
     : this(version, tags, isImplicit, Mark.Empty, Mark.Empty)
 {
 }