Esempio n. 1
0
        /// <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
        }
Esempio n. 2
0
        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();
            }
        }