private void AddRelativeImports(TaxonomyFile taxonomyFile, XDocument xDocument, Uri fileName)
        {
            var relativeFileNames = ExtractRelativeFilenames(xDocument, fileName);

            foreach (var relativeFileName in relativeFileNames)
            {
                Process(relativeFileName, taxonomyFile);
            }
        }
        private void CollectFiles(TaxonomyFile taxonomyFile, HashSet <TaxonomyFile> files)
        {
            // Only add taxonomy files with relative file names to the archive.
            if (!taxonomyFile.FileName.IsAbsoluteUri)
            {
                files.Add(taxonomyFile);
            }

            foreach (var dependency in taxonomyFile.Dependencies)
            {
                CollectFiles(dependency, files);
            }
        }
        private void AddAbsoluteImports(TaxonomyFile taxonomyFile, XDocument xDocument)
        {
            var xAbsoluteImports = xDocument.Root
                                   .Elements(ImportXNames.Import)
                                   .Where(i => i.Attribute(ImportXNames.SchemaLocation).Value.StartsWith("http:"));

            foreach (var xAbsoluteImport in xAbsoluteImports)
            {
                var namespaceValue             = xAbsoluteImport.Attribute(ImportXNames.Namespace).Value;
                var schemaLocationValue        = xAbsoluteImport.Attribute(ImportXNames.SchemaLocation).Value;
                var targetNamespaceDeclaration = new XAttribute(XNamespace.Xmlns + "ignore", namespaceValue);
                var schema = new Schema(new Uri(schemaLocationValue), targetNamespaceDeclaration);
                taxonomyFile.Add(schema);
            }
        }