2014-01-24 1 views
48

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

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

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

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

+2

Я склонен иметь лучшую структуру данных и сериализовать хороший xml, а не проверять XML впоследствии. Но если вы можете добавить код и понять, как использовать молнии, это поможет. –

+4

Посмотрите пакет HaXML. Он имеет XsdToHaskell для создания кода хекеля из схемы XSD. Не совсем то, что вы просите, но может помочь. –

+1

@YogeshSajanikar Akshat не просит, как проверить, но может ли он генерировать действительный XML непосредственно при ходьбе XSD. Предположительно, это займет застежку-молнию и немного пойдет по ней, так как скан просматривает список, выводя материал по мере его поступления. –

ответ

1

Как сказал Томалак в comment,

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

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

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

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

0

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

Существует некоторые рекомендации по этому вопросу на OASIS

-1

Создать учетную Объект XMLHttpRequest

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

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

Смежные вопросы