Утилита 'xsd.exe' создаст исходный код класса c #, который по-разному соответствует информации в файле схемы xsd.
Итак, я загружаю файл схемы 'XMLSchema.xsd', расположенный по адресу "http://www.w3.org/2001/XMLSchema" - это схема для самих файлов xsd.
Я создаю класс C #, соответствующий'схема для схем', используя:
xsd.exe /classes /namespace:w3c XMLSchema.xsd
Пока все хорошо. Я получаю файл "XMLSchema.cs", содержащий "схему" класса C #, и другие вещи в пространстве имен "w3c", которые яперейти к добавлению в проект C #, который также содержит следующее:
try
{
XmlSerializer loader = new XmlSerializer(typeof(w3c.schema));
//never here!! previous line throws!
FileStream fs = new FileStream(
@"M:\src\Interfaces\MyClass1.xsd", FileMode.Open, FileAccess.Read
);
object fromXml = loader.Deserialize(fs);
w3c.schema MyClass1Schema = (w3c.schema)fromXml;
}
catch(Exception e)
{
}
К сожалению, в первой строке блока try выдается следующая ошибка:
Элемент XML'аннотация' из пространства имен 'http://www.w3.org/2001/XMLSchema' уже присутствует в текущей области. Используйте атрибуты XML, чтобы указать другое имя XML или пространство имен для элемента.
Кто-нибудь сталкивался с этой ошибкой?
Я бы предпочел не вносить никаких изменений в сгенерированный файл 'XMLSchema.cs'.
Я также (изначально) попытался:
xsd /classes XMLSchema.xsd
(и в пространстве теста C # нет пространства именкод) с тем же результатом.