Создать XSD из файла DTD с помощью Visual Studio

Я получил DTD-файл для генерации классов C#, которым должна соответствовать XML-сериализация. Затем я использовал Visual Studio 2017 для преобразования файла DTD в соответствующий файл XSD.

Проблема заключается в том, что файл XSD, созданный самой VS, не может быть скомпилирован XmlDocument и вызывает следующую ошибку. Есть ли альтернативный способ создания файлов XSD с использованием инструментов по умолчанию, предоставляемых VS?

Исключение выдает CheckAgainstXsd: System.Xml.Schema.XmlSchemaException: множественное определение элемента ' http://tempuri.org/:ACCOUNT_NUMBER' приводит к тому, что модель содержимого становится неоднозначной. Модель содержимого должна быть сформирована таким образом, чтобы во время проверки последовательности элементов информации об элементе, частица, содержащаяся прямо, косвенно или неявно в ней, с помощью которой можно попытаться проверить каждый элемент в последовательности, в свою очередь, может быть однозначно определена без изучения содержимого или атрибутов этот элемент, и без какой-либо информации об элементах в оставшейся части последовательности.

Ошибка происходит в следующем коде:

var schema = XmlSchema.Read(File.OpenText(PATH_TO_XSD), null);
var doc = new XmlDocument();

doc.LoadXml(xmlPayload);
doc.Schemas.Add(schema);
doc.Schemas.Compile();   // ERROR HAPPENS HERE
doc.Validate(null);

0 ответов

Другие вопросы по тегам