Есть ли класс для создания образца XML-документа из схемы XSD в .NET - PullRequest
7 голосов
/ 03 сентября 2008

В Visual Studio вы можете создать шаблон XML-документа из существующей схемы. Новый XML Schema Explorer в пакете обновления 1 (SP1) VS2008 позволяет продвинуться дальше и может создать образец XML-документа с данными. Есть ли в .NET библиотека классов, чтобы сделать это автоматически без использования Visual Studio? Я нашел статью XmlSampleGenerator на MSDN, но она была написана в 2004 году, так что, может быть, в .NET уже есть что-то для этого сейчас?

Ответы [ 3 ]

7 голосов
/ 29 октября 2008

требуется некоторая работа, но вы можете загрузить xsd в объект DataSet, выполнить итерации по таблицам и добавить несколько строк в каждую, вызвав вызов NewRow () для каждой, а затем добавить эти строки обратно в соответствующие таблицы. затем сохраните набор данных в файл:

DataSet ds = new DataSet();
ds.ReadXmlSchema("c:/xsdfile.xsd");

foreach(DataTable t in ds.Tables)
{
var row = t.NewRow();
t.Rows.Add(row);
}

ds.WriteXml("c:/example.xml");

P.S. Немного дополнительной работы, но вместо того, чтобы просто перебирать каждый тип таблицы и добавлять пустые строки, вы можете создать красивую форму win, которая позволит вам добавить некоторые данные для каждой строки. Я построил нечто подобное примерно час назад несколько недель назад.

1 голос
/ 17 октября 2011

Вы пробовали http://xsd2code.codeplex.com/????

Это сработало для меня, оно может работать на вас.

0 голосов
/ 06 октября 2008

Непосредственно, я не могу придумать ничего, кроме сторонних дополнений. Вы можете использовать инструмент определения схемы xsd , чтобы взять свой XSD и создать объект / класс .NET, как только вы это получите, вы можете процитировать связанную страницу:

XSD to Classes: генерирует классы времени выполнения из файла схемы XSD. Сгенерированные классы могут использоваться вместе с System.Xml.Serialization.XmlSerializer для чтения и записи кода XML, соответствующего схеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...