public static XmlSchemaSet GetManifestSchemaSet(string schemaNamespace)
{
return _manifestSchemaSetCache.GetOrAdd(schemaNamespace, schema =>
{
const string schemaResourceName = "NuGet.Authoring.nuspec.xsd";
string formattedContent;
// Update the xsd with the right schema namespace
var assembly = typeof(Manifest).Assembly;
using (var reader = new StreamReader(assembly.GetManifestResourceStream(schemaResourceName)))
{
string content = reader.ReadToEnd();
formattedContent = String.Format(CultureInfo.InvariantCulture, content, schema);
}
using (var reader = new StringReader(formattedContent))
{
var schemaSet = new XmlSchemaSet();
schemaSet.Add(schema, XmlReader.Create(reader));
return schemaSet;
}
});
}