Молния для создания XML-запросов?

Как можно создать XML запрос, соответствующий XSD такой, что запрос действителен?

Одним из способов было бы создать весь запрос, а затем проверить его на XSD, Есть ли способ создать запрос во время обхода схемы?

Первая мысль, которая пришла в голову, была о Зиппере, но я действительно не уверен, что их можно использовать здесь.

Может быть, я не совсем понял это, но кажется, что Zipper хорош, если уже определена какая-то структура, и в этой структуре нужно что-то менять. Можно ли использовать молнию для изменения структуры? (Например, добавление последовательности в массив последовательностей?)

3 ответа

Как сказал Томалак в комментарии,

Это все равно что пытаться создать значимые строки, используя регулярные выражения. Это не работает таким образом.

Застежка-молния помогает вам блуждающе пройтись по конструкции, осмотреть детали и при необходимости изменить их; в конце концов, у вас есть возможность "застегнуть" молнию, чтобы получить модифицированную версию оригинала. Есть как минимум две основные проблемы с вашей идеей:

  1. Структура XSD отличается от структуры документов, которые она кодирует, или даже очень похожа на нее. Если бы вы использовали молнию для изменения XSD, чтобы получить XML, действительный в соответствии с этим XSD, вы в конечном итоге полностью его реструктурируете, и система типов не поможет вам сделать это правильно.

  2. Молния - это способ сосредоточиться на части некоторой структуры данных. Прежде чем задуматься о застежке-молнии, подумайте, какую структуру данных вы распаковываете. В зависимости от того, что вы делаете, вы можете или не можете использовать молнию, но молния и ее инварианты всегда будут связаны со структурой и ее инвариантами.

Когда-то была возможность протестировать этот инструмент: camprocessor Он действительно работал и создавал корректные XML-файлы, которые можно было настраивать с использованием данных из баз данных.

В ОАЗИСе есть некоторые рекомендации

Создайте объект XMLHttpRequest

Все современные браузеры (IE7+, Firefox, Chrome, Safari и Opera) имеют встроенный объект XMLHttpRequest.

Синтаксис для создания объекта XMLHttpRequest: xmlhttp=new XMLHttpRequest();

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