Генерация форм по 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, время: 17:25. |