/// <summary> /// This writes the current state or attributes of this object, /// in the <c>XML</c> format, to the media or storage accessible by the given writer. /// </summary> /// <param name="writer"> /// The <c>XML</c> writer with which the <c>XML</c> format of this object's state /// is written. /// </param> /// <exception cref="ArgumentNullException"> /// If the <paramref name="reader"/> is <see langword="null"/>. /// </exception> public override void WriteXml(XmlWriter writer) { BuildExceptions.NotNull(writer, "writer"); if (!this.IsValid) { return; } writer.WriteStartElement(TagName); // start - TagName writer.WriteAttributeString("name", this.Name); writer.WriteStartElement("propertyGroup"); // start - propertyGroup writer.WriteAttributeString("name", "General"); writer.WritePropertyElement("SourceId", _sourceId); writer.WritePropertyElement("VersionId", _versionId); writer.WritePropertyElement("VersionLabel", _versionLabel); writer.WritePropertyElement("Title", this.Title); writer.WriteEndElement(); // end - propertyGroup if (_content != null) { BuildFilePath filePath = _content.ContentFile; writer.WriteStartElement("content"); writer.WriteAttributeString("type", "Reference"); if (filePath != null && filePath.IsValid) { BuildPathResolver resolver = BuildPathResolver.Resolver; writer.WriteAttributeString("source", resolver.ResolveRelative(filePath)); _content.Save(); } else { _content.WriteXml(writer); } writer.WriteEndElement(); } // Write the user-defined contents... this.WriteContents(writer); // Write the filters... this.WriteFilters(writer); writer.WriteEndElement(); // end - TagName }
protected override void OnWriteContentXml(XmlWriter writer) { if (_topicContent != null) { BuildFilePath filePath = _topicContent.ContentFile; writer.WriteStartElement("content"); writer.WriteAttributeString("type", "Reference"); if (filePath != null && filePath.IsValid) { BuildPathResolver resolver = BuildPathResolver.Resolver; Debug.Assert(resolver != null && resolver.Id == this.Id); writer.WriteAttributeString("source", resolver.ResolveRelative(filePath)); _topicContent.Save(); } else { _topicContent.WriteXml(writer); } writer.WriteEndElement(); } }