Молния для создания XML-запросов?
Как можно создать XML
запрос, соответствующий XSD
такой, что запрос действителен?
Одним из способов было бы создать весь запрос, а затем проверить его на XSD
, Есть ли способ создать запрос во время обхода схемы?
Первая мысль, которая пришла в голову, была о Зиппере, но я действительно не уверен, что их можно использовать здесь.
Может быть, я не совсем понял это, но кажется, что Zipper хорош, если уже определена какая-то структура, и в этой структуре нужно что-то менять. Можно ли использовать молнию для изменения структуры? (Например, добавление последовательности в массив последовательностей?)
3 ответа
Как сказал Томалак в комментарии,
Это все равно что пытаться создать значимые строки, используя регулярные выражения. Это не работает таким образом.
Застежка-молния помогает вам блуждающе пройтись по конструкции, осмотреть детали и при необходимости изменить их; в конце концов, у вас есть возможность "застегнуть" молнию, чтобы получить модифицированную версию оригинала. Есть как минимум две основные проблемы с вашей идеей:
Структура XSD отличается от структуры документов, которые она кодирует, или даже очень похожа на нее. Если бы вы использовали молнию для изменения XSD, чтобы получить XML, действительный в соответствии с этим XSD, вы в конечном итоге полностью его реструктурируете, и система типов не поможет вам сделать это правильно.
Молния - это способ сосредоточиться на части некоторой структуры данных. Прежде чем задуматься о застежке-молнии, подумайте, какую структуру данных вы распаковываете. В зависимости от того, что вы делаете, вы можете или не можете использовать молнию, но молния и ее инварианты всегда будут связаны со структурой и ее инвариантами.
Когда-то была возможность протестировать этот инструмент: camprocessor Он действительно работал и создавал корректные XML-файлы, которые можно было настраивать с использованием данных из баз данных.
В ОАЗИСе есть некоторые рекомендации
Создайте объект XMLHttpRequest
Все современные браузеры (IE7+, Firefox, Chrome, Safari и Opera) имеют встроенный объект XMLHttpRequest.
Синтаксис для создания объекта XMLHttpRequest: xmlhttp=new XMLHttpRequest();