Генератор XSD от нескольких XMLs

Я не мог заставить ошибку 'require' уйти, используя любой из вышеперечисленных приемов.

но я обнаружил, что проблема заключалась в том, что мои инструменты машинописи для Visual Studio, где старая версия (1.8.6.0) и последняя версия на сегодняшний день (2.0.6.0)

Вы можете скачать последняя версия инструментов:

https://www.microsoft.com/en-us/download/details.aspx?id=48593

16
задан Community 23 May 2017 в 12:33
поделиться

2 ответа

Транг - именно такой инструмент, написанный знаменитым Джеймсом Кларком. Он может переводить между различными формами определений xml, такими как обычный и компактный синтаксис Relax NG, устаревшее DTD и XML-схема. Он также может выводить схему из одного или нескольких файлов xml.

Если вы запустите ubuntu, trang упакован в репозиторий юниверса, но эта версия кажется немного неработающей, и чистая загрузка по ссылке выше, вероятно, ваш лучший вариант. Предполагая, что trang.jar находится в текущем каталоге:

java -jar trang.jar -I xml -O xsd file1.xml file2.xml definition.xsd

должен делать то, что вы хотите.

16
ответ дан 30 November 2019 в 22:02
поделиться

Это код для создания схемы из одного XML: Пример кода, демонстрирующий, как использовать этот класс (предполагается, что существует член класса «XmlSchemaSet set», накапливающий результаты и уточняющий их от вызова к вызову):

        var si = new XmlSchemaInference();
        var reader = XmlReader.Create(new StringReader(textBox1.Text));
        var en = si.InferSchema(reader, set).Schemas().GetEnumerator();
        en.MoveNext();
        var schema = en.Current as XmlSchema;
        var stream = new MemoryStream();
        if (schema != null)
        {
            schema.Write(stream);
            set.Add(schema);
        }
        stream.Flush();
        stream.Position = 0;
        var streamReader = new StreamReader(stream);
        var str = streamReader.ReadToEnd();
        grid1.Model.LoadSchema(str);
        reader.Close();
        stream.Close();
        streamReader.Close();

Если вы запустите его снова и передадите XMLSchemaInference сгенерированную схему и другой XML, он улучшит схему

0
ответ дан 30 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: