private static void CheckSchemaVersion(XDocument document)
{
// Get the metadata node and look for the schemaVersion attribute
XElement metadata = GetMetadataElement(document);
if (metadata != null)
{
// Yank this attribute since we don't want to have to put it in our xsd
XAttribute schemaVersionAttribute = metadata.Attribute(SchemaVersionAttributeName);
if (schemaVersionAttribute != null)
{
schemaVersionAttribute.Remove();
}
// Get the package id from the metadata node
string packageId = GetPackageId(metadata);
// If the schema of the document doesn't match any of our known schemas
if (!ManifestSchemaUtility.IsKnownSchema(document.Root.Name.Namespace.NamespaceName))
{
throw new InvalidOperationException(
String.Format(CultureInfo.CurrentCulture,
NuGetResources.IncompatibleSchema,
packageId,
typeof(Manifest).Assembly.GetName().Version));
}
}
}