Генерация форм по xsd
Здравствуйте!
Помогите сделать JS, который по схеме xsd генерирует соответствующую html-форму, после заполнения которой информация записывается в xml-документ. Может, кто-то помочь? Или знает, где взять готовый? |
Ты бы хотяб объяснил что такое xsd.
|
XSD - это язык описания структуры документа XML. Этот язык также называют XML Schema. XSD дает возможность парсерам различать объекты и общую структуру XML документа.
Файл XML: <?xml version="1.0"?> <x:books xmlns:x="urn:books"> <book id="bk001"> <author>Writer</author> <title>The First Book</title> <genre>Fiction</genre> <price>44.95</price> <pub_date>2000-10-01</pub_date> <review>An amazing story of nothing.</review> </book> <book id="bk002"> <author>Poet</author> <title>The Poet's First Poem</title> <genre>Poem</genre> <price>24.95</price> <review>Least poetic poems.</review> </book> </x:books> Файл XSD: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:books" xmlns:bks="urn:books"> <xsd:element name="books" type="bks:BooksForm"/> <xsd:complexType name="BooksForm"> <xsd:sequence> <xsd:element name="book" type="bks:BookForm" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="BookForm"> <xsd:sequence> <xsd:element name="author" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="genre" type="xsd:string"/> <xsd:element name="price" type="xsd:float" /> <xsd:element name="pub_date" type="xsd:date" /> <xsd:element name="review" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:schema> |
ты уверен, что тебе нужна не java и не кроссбраузерное решение
|
Уверен
|
тогда объясняй подробно что на какой стороне (клиент, сервер) должно происходить, что откуда приходит, что и где должно работать, контекст задачи и т.п.
|
Цитата:
|
Вложений: 1
В общем нашел что-то похожее, только осталось разобраться как это работает. Поможете? Нужно чтобы все происходило на стороне клиента.
|
Цитата:
<script src="jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script> <script src="jquery-1.4.4.js" type="text/javascript"></script> Есть какие-нибудь соображения по этому поводу? начинаешь отсюда <form onsubmit="generateXml('sample.xsd', this.processed_xml); return false"> xsdForm.js function generateXml(xsdFile, input_to_set) { var divParent; var field; var requiredField; var div; var divMessageError; var messageError; var submitForm = true; var type; var firstFieldError = null; try { var xml = xmlLoader(xsdFile); var tagRaiz = xml.getElementsByTagNameNS('http://www.w3.org/2001/XMLSchema','schema')[0]; var elemRoot = getNodeByTagName(tagRaiz, 'xs:element'); // elemento raiz validateMandatory(); // adicionar xmlns="..." de acordo com o atributo 'targetNamespace' do // xml schema. var namespace = getValueAttributeByName(tagRaiz,'targetNamespace'); //window.alert('namespace is ' + namespace) var odoc = document.implementation.createDocument("", "", null); var generated = generateXmlFromNode(odoc, namespace, tagRaiz, elemRoot, "xsdform___"); odoc.appendChild(generated); input_to_set.value = ((new XMLSerializer()).serializeToString(odoc)); } catch (myError) { if (myError.name != null) { alert( myError.name + ': ' + myError.message + "\n" + myError); } else { alert(myError); } return false; } } и т.д. |
Доброго времени суток.
С jQuery не сталкивался, залил данный скрипт на локальный веб сервер, и он выкидывает ошибку "TypeError: xml is null". Если в браузере открыть index.html - все нормально. А если зайти на веб сервер-ошибка. Может кто сталкивался? Подскажите решение или куда копать. Заранее спасибо. |
Часовой пояс GMT +3, время: 10:47. |