private MetadataFileInfo AddSchema(XmlSchema schema)
        {
            MetadataFileInfo metadataFileInfo = null;

            if (schema != null && !this.MetadataFiles.Any(mi => mi.Metadata == schema) /*&& schema.Items.Count > 0*/)
            {
                var sourceUrl = schema.SourceUri;
                var filePath  = AddFilePath(schema.SourceUri, schema.TargetNamespace, ".xsd");

                schema.SourceUri = Path.GetFileName(filePath);
                metadataFileInfo = new SchemaFileInfo(schema, filePath, sourceUrl, schema.Write);
                this.MetadataFiles.Add(metadataFileInfo);

                var unresolvedRefs = UnresolvedReferences.Where(u =>
                                                                (MetadataFileNameManager.UriEqual(u.SchemaExternal?.SchemaLocation, sourceUrl) ||
                                                                 (!string.IsNullOrEmpty(u.Namespace) && u.Namespace == schema.TargetNamespace))).ToList();

                foreach (var unresolvedRef in unresolvedRefs)
                {
                    unresolvedRef.SchemaExternal.SchemaLocation = schema.SourceUri;
                    UnresolvedReferences.Remove(unresolvedRef);
                }
            }
            return(metadataFileInfo);
        }
        private MetadataFileInfo AddXmlDocument(XmlNS.XmlElement document, string dialect)
        {
            MetadataFileInfo metadataFileInfo = null;

            if (document != null && !this.MetadataFiles.Any(mi => mi.Metadata == document))
            {
                var fileName = GetXmlElementFilename(document, dialect);
                var filePath = FileNameMgr.AddFileName(this.DirectoryPath, fileName, ".xml");
                metadataFileInfo = new MetadataFileInfo(document, filePath, null, document.WriteTo);
                this.MetadataFiles.Add(metadataFileInfo);
            }
            return(metadataFileInfo);
        }
        private MetadataFileInfo AddWsdl(WsdlNS.ServiceDescription wsdl)
        {
            MetadataFileInfo metadataFileInfo = null;

            if (wsdl != null && !this.MetadataFiles.Any(mi => mi.Metadata == wsdl))
            {
                var sourceUrl = wsdl.RetrievalUrl;
                var filePath  = AddFilePath(wsdl.RetrievalUrl, wsdl.TargetNamespace, ".wsdl");

                wsdl.RetrievalUrl = Path.GetFileName(filePath);
                metadataFileInfo  = new WsdlFileInfo(wsdl, filePath, sourceUrl, wsdl.Write);
                this.MetadataFiles.Add(metadataFileInfo);

                var unresolvedRefs = UnresolvedReferences.Where(u => MetadataFileNameManager.UriEqual(u.WsdlImport?.Location, sourceUrl)).ToList();
                foreach (var unresolvedRef in unresolvedRefs)
                {
                    unresolvedRef.WsdlImport.Location = wsdl.RetrievalUrl;
                    UnresolvedReferences.Remove(unresolvedRef);
                }
            }
            return(metadataFileInfo);
        }
Example #4
0
 public bool Equals(MetadataFileInfo other)
 {
     return(other != null && (Object.ReferenceEquals(this, other) || this.Equals(other.FilePath)));
 }