xml validation
4 отговора
121 прегледа
xml validation
Pichowe ima li nqkoi, koito da e pisal xml schema validator? Iskam da pitam neshto wajno, swurzano sus specifikaciqta za strukturite.
Re: xml validation
Това, което ти трябва е валидиране на XML спрямо XSD схема. С кое имаш проблем - със съставянето на самата XSD схема или вече си съставил схемата и просто искаш да я валидираш?
Второто зависи от това какъв фреймуърк ползваш. Първото не - даже ако имаш Visual Studio можеш да си създадеш нов XML file - после right-click в коуд-едитора и избираш Generate Scheme от контекстното меню. Схемата не е идеална понеже Студиото не може да хване всички случаи, но е добър starting point.
Ето примерно какво ми генерира Студиото за този XML :
<?xml version="1.0" encoding="utf-8"?>
<Test>
<Entry>
<Item Text="New One">
</Item>
</Entry>
</Test>
XSD:
<?xml version="1.0"?>
<xs:schema id="Test" targetNamespace="[линк]" xmlns:mstns="[линк]" xmlns="[линк]" xmlns:xs="[линк]" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="Test" msdata:IsDataSet="true" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Text" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Второто зависи от това какъв фреймуърк ползваш. Първото не - даже ако имаш Visual Studio можеш да си създадеш нов XML file - после right-click в коуд-едитора и избираш Generate Scheme от контекстното меню. Схемата не е идеална понеже Студиото не може да хване всички случаи, но е добър starting point.
Ето примерно какво ми генерира Студиото за този XML :
<?xml version="1.0" encoding="utf-8"?>
<Test>
<Entry>
<Item Text="New One">
</Item>
</Entry>
</Test>
XSD:
<?xml version="1.0"?>
<xs:schema id="Test" targetNamespace="[линк]" xmlns:mstns="[линк]" xmlns="[линк]" xmlns:xs="[линк]" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="Test" msdata:IsDataSet="true" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Text" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Re: xml validation
Towa, koeto trqbwa da naprawq i prawq w momenta, e da implementna procesor, koito wdiga grafa na schemata kato izpolzwa wrapper-i za wsqka struktura opisana w specifikaciqta za shcema structures, sled koeto po tozi graf se sustwaqt nabor ot awtomati, po koito puk shte se validira xml. Toest towa e validator na xml po schema i az nqmam problemi s pisaneto na xml-i i schema-i, a imam problem s tulkuwaneto na specifikaciqta i ne znam kak e prawilno da bude implementirano.
Re: xml validation
Хмм, доста странно - не се ли предполага, че езика/фреймуърка, който ползваш има вградени механизми за validation? Валидирането на XML според XSD схема ми се струва доста сериозна задачка, за да я правиш сам. В .НЕТ е доста лесно - виж примерно този сайт
[линк]
Модела е event-based - има XmlValidatingReader през който минаваш и при всяка грешка спрямо схемата ти се fire-ва евент който задаваш така:
reader.ValidationEventHandler += new
ValidationEventHandler(MyHandler);
Не знам ти обаче за каква платформа го правиш и най-вече защо мислиш да го правиш сам.
[линк]
Модела е event-based - има XmlValidatingReader през който минаваш и при всяка грешка спрямо схемата ти се fire-ва евент който задаваш така:
reader.ValidationEventHandler += new
ValidationEventHandler(MyHandler);
Не знам ти обаче за каква платформа го правиш и най-вече защо мислиш да го правиш сам.
Re: xml validation
Ne polzwam platforma, a prosto pisha takawa :). Pisha q sam, zashtoto takuw mi e task-a. Tq weche e zawurshena prosto imam edni 6500 testa tuka ot sun i nqkoi ot tqh ne trugwat poradi nekorektno tulkuwane na specifikaciqta moje bi. W twa e celiq problem.