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); } }