private void PrintToXml(Namespace globalNamespace)
        {
            var settings = new XmlWriterSettings
            {
                Indent = true,
                WriteEndDocumentOnClose = true,
                Encoding = Encoding.UTF8,
            };

            using (var writer = XmlWriter.Create(this.output, settings))
            {
                writer.WriteStartDocument();
                writer.WriteDocType("Assembly", null, null, MainResources.AssemblyDtdString);
                writer.WriteStartElement("Assembly");

                var entityIdPrinter     = new EntityIdPrinter(writer);
                var namespaceXmlPrinter = new NamespaceXmlPrinter(writer, entityIdPrinter);
                foreach (var nameSpace in globalNamespace.InnerNamespaces.Values)
                {
                    namespaceXmlPrinter.PrintNamespace(nameSpace);
                }

                writer.WriteEndElement();
                writer.Flush();
            }
        }
 public NamespaceXmlPrinter(XmlWriter writer, EntityIdPrinter entityIdPrinter)
 {
     this.writer          = writer;
     this.entityIdPrinter = entityIdPrinter;
 }