«xml и его схемы Dtd, Xdr, Xsd - а зачем они нужны

  • Автор темы Reverent
  • Дата начала
R

Reverent

Недавно стал изучать технологию XML. Cкачал книгу из интернета "XML за 21 день". По началу автор предлагает изучить три основные схемы DTD, XDR, XSD. Сами по себе они не сложные и поддаются изучению. Но смысл изучить их я так до сей пор не понял. Как их можно применять??? Вобще я изучал XML что бы затем можно было изучить Ajax. После поверхностного изучения Ajax'а и небольшого штудирование книги, я так и не понял зачем же нужны эти схемы. Ведь и там они тоже не используются. Кто-нибудь может объяснить так зачем же они нужны????
 
N

Natascha

Xml eto nailuchshij Fomat dlja obmena Informatiej mezhdu Bazoj dannyh i kakoj libo Programmoy (c,perl,javascript itd.)

Chem on horosch [xml]--> ego Tagi mogno samim definirowat'
--> Struktura XML-Dokumenta (dlja Basy dannyh ochen udobna :Attributty kakogo libo Taga == Swojstwam Objekta w Baze dannyh itd)



Poprobuj napisat' Parser dlja XML
 
N

NikSoft

Для: Natascha
Xml eto nailuchshij Fomat dlja obmena Informatiej mezhdu Bazoj dannyh i kakoj libo Programmoy
Не только.
Xml находит широкое применение в .NET приложениях, в MS Office(внутренняя структура документов
представлена в виде Xml) и так далее.
 
N

Natascha

Но смысл изучить их я так до сей пор не понял. Как их можно применять???


DTD -Dokument Type Definition --> Tut definirujutsja wse xml-Tagi i ih Struktura kotorye ty budesch ispolsowat' pri napisanii xml-Dokumenta. Etot Dokument tebe nuzhen chtoby kakomy libo Tagu priswoit' kachestwa . /Eto nuzhno dlja dalnejschej interpretatii xml-Dokumenta/


XDR -Xml Data Reduced i XSM -Xml Schema --> Poka ne imela dela s etim !


Moget NikSoft objasnit ? :)
 
P

Pasha

Стандарт XML определяет синтаксис документа, и никак не ограничивает структуру (имена тегов, отношения между ними и типы данных). Структуру можно описать помощью DTD/XSD. Валидация - это проверка на правильность. Валидация XML позволяет определить, является ли текст XML документом. Валидация DTD/XSD позволяет определить, соответствует ли XML документ конкретной схеме.
 
N

NikSoft

Валидация XML позволяет определить, является ли текст XML документом
Все свалил в кучу.
Текст является XML документом, когда он корректно сформирован(well formed).
Валидация XML документа означает, соответсвует ли структура корректно сформированного(well formed) XML документа DTD, XDR, XSD схеме.
Если текст не корректно сформирован, то ни о какой валидации не может быть и речи.
 
N

NikSoft

Для: Natascha
Подробнее о XML можно узнать здесь

,а также из отличной книги Дино Еспозито
Applied XML Programming for Microsoft .NET
ISBN 0-7356-1801-1
 
P

Pasha

Для: NikSoft
<!--QuoteBegin-NikSoft+5:06:2007, 15:59 -->
<span class="vbquote">(NikSoft @ 5:06:2007, 15:59 )</span><!--QuoteEBegin-->Текст является XML документом, когда он корректно сформирован(well formed).
[snapback]68192" rel="nofollow" target="_blank[/snapback]​
[/quote]
Т.е. XML документ well-formed по определению (иначе это кусок текста), и не нужно взеде вписывать
<!--QuoteBegin-NikSoft+5:06:2007, 15:59 -->
<span class="vbquote">(NikSoft @ 5:06:2007, 15:59 )</span><!--QuoteEBegin-->корректно сформированного(well formed) XML документа
[snapback]68192" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не путай людей лишними словами, лучше ответь на вопрос зачем же эти схемы и валидация нужны :)

<!--QuoteBegin-NikSoft+5:06:2007, 16:10 -->
<span class="vbquote">(NikSoft @ 5:06:2007, 16:10 )</span><!--QuoteEBegin-->а также из отличной книги Дино Еспозито
Applied XML Programming for Microsoft .NET
ISBN 0-7356-1801-1
[snapback]68193" rel="nofollow" target="_blank[/snapback]​
[/quote]
А так же из книг:
XML NET Developer's Guide by Adam Sills, Mesbah Ahmed, Frank Boumphrey
ISBN: 1-928994-47-4
by Dinar Dalvi, Joe Gray, Bipin Joshi, Fredrik Normйn, Francis Norton, Andy Olsen and others
ISBN 1861005318
Professional XML for .NET Developers
by Dinar Dalvi, Joe Gray, Bipin Joshi, Fredrik Normйn, Francis Norton, Andy Olsen and others
ISBN 1861005318
XML Programming Bible by Brian Benz, John R. Durant
ISBN: 0-7645-3829-2
XML Programming by R. Allen Wyke, Brad Leupen, Sultan Rehman
Рекомендованных лично NikSoft каждому разработчику под .net.

Кстати, NikSoft, куда ты дел мой минус за кучу книг без линков?
 
E

etc

Для: Pasha
все правильно сказал NikSoft

книги ... книги ... вот:


:)
 
P

Pasha

Дык, я и не спорю что правильно. Просто Reverent не про это спрашивал. Вопрос был не в том, что такое валидация, а зачем она нужна. И книга у него есть уже, и он ее прочитал даже. за 21 день.
 
E

etc

Для: Pasha
вы что то путаете, ведь
<!--QuoteBegin-Reverent+5:06:2007, 09:21 -->
<span class="vbquote">(Reverent @ 5:06:2007, 09:21 )</span><!--QuoteEBegin-->...
три основные схемы DTD, XDR, XSD
...
Как их можно применять???
...
я так и не понял зачем же нужны эти схемы.
...
Кто-нибудь может объяснить так зачем же они нужны????[/quote]
тут нет вопроса
<!--QuoteBegin-Pasha+5:06:2007, 17:21 -->
<span class="vbquote">(Pasha @ 5:06:2007, 17:21 )</span><!--QuoteEBegin-->Вопрос был не в том, что такое валидация, а зачем она нужна.[/quote]
:)
 
P

Pasha

IMHO ответ вроде "схемы нужны для валидации" есть даже в книге "XML за 21 день". Но он вызывает вопрос "а зачем нужна валидация XML в ajax?".

Да и вообще идеи "выучить XML", а тем более "выучить ajax" вызывают недоумение. Примерно как "выучить создание web приложений".
 
R

Reverent

Люди я вижу своим вопросом я вызвал морю комментариев, но наверное я не правильно задал вопрос. :) Что такое схемы Dtd, Xdr, Xsd я уже знаю после изучения книги, но я не понял где они применяться (замечу не зачем применяться, а именно где B) ). Вод допустим я запускаю XML через браузер IE. Он отображает древовидную структуру (если конечно, соблюдены все правила XML - а иначе будет выдано сообщение об ошибке). Теперь я добавлю допустим схему DTD (либо другую не важно). За ранее напишу ее так что она не подходит под мой XML документ. Разве это к чемунебудь приведет???? :( Разве браузер выдаст ошибку, разве JavaScript будет жаловаться??? - работая над различными кодингами я не заметил этой тенденции. Так зачем же всетаки их создали коль они не разу меня не тревожили вызовами: ваша схема не соотвествует структуре xml документа????? :blink:
 
P

Pasha

<!--QuoteBegin-NikSoft+6:06:2007, 06:29 -->
<span class="vbquote">(NikSoft @ 6:06:2007, 06:29 )</span><!--QuoteEBegin-->Открой любую книгу по XML и найди, где валидация XML документа происходит дважды.
[snapback]68243" rel="nofollow" target="_blank[/snapback]​
[/quote]
Я же написал что был неправ. Написать еще раз, чтобы точно дошло?
<!--QuoteBegin-NikSoft+6:06:2007, 06:29 -->
<span class="vbquote">(NikSoft @ 6:06:2007, 06:29 )</span><!--QuoteEBegin-->Верно говорит f7: "Стыдно, очень стыдно".
[snapback]68243" rel="nofollow" target="_blank[/snapback]​
[/quote]Стыдно постить кучу книг, которые ты не читал, да еще и без линков. А ты из явно не читал, потому что после стольки книг невозможно писать такое спагетти, как в твоих постах в разделе .net. И стыдно при этом писать статьи по темам, которые не понимаешь. А еще стыдно снижать другим репутацию в ответ, а потом просить модераторов снять с себя минусы.
 
N

NikSoft

Для: Reverent

но я не понял где они применяться
Пример
Мне нужно иметь след XML документ
<MyDataSet>
<NorthwindEmployees count="2">
<Employee>
<employeeid>1</employeeid>
<firstname>Nancy</firstname>
<lastname>Davolio</lastname>
</Employee>
<Employee>
<employeeid>2</employeeid>
<firstname>Andrew</firstname>
<lastname>Fuller</lastname>
</NorthwindEmployees>
</MyDataSet>

Причем атр count должет принимать только целые значения и никаких тегов кроме NorthwindEmployees Employee я иметь не должен.
Чтобы это реализовать, исползуется DTD, XDR, XSD схема.

Стыдно постить кучу книг, которые ты не читал, да еще и без линков

Почему же?
Найдется программист который посчитает эту книгу полезной для себя

И стыдно при этом писать статьи по темам, которые не понимаешь.
Мне стыдно за твои комментарии к моим статьям
 
P

Pasha

Для: Reverent
Конкретный пример:
Есть две программы A и B.
B умеет обрабатывать данные о некой стране, примерно в таком виде:
Код:
<country>
<name>Название страны, строка</name>
<population>Население, decimal</population>
</country>
И вот создатели B хотят следующего:
1. Как-то описать ожидаемый формат, т.е. XML, корневой элемент country, в нем элементы name и population таких-то типов.
2. Иметь возможность легко проверить валидность пришедшего xml, чтобы определить, есть ли в нем корневой элемент корневой элемент country, в нем элементы name и population таких-то типов. В случае невалидности точно определить, что именно в документе "не так".
И вот они пишут мегасхему, которой проверяют все входящие документы.
Код:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="country" type="Country"/>
<xs:complexType name="Country">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="population" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Создатели A, в свою очередь, не хотят (или не могут) смотреть код B, но им надо быть увренными, что В хотя бы попытается обработать отправленные данные. Они берут схему B, и пишут А так, чтобы та отправляла данные в "подходящем" виде.

<!--QuoteBegin-NikSoft+6:06:2007, 09:13 -->
<span class="vbquote">(NikSoft @ 6:06:2007, 09:13 )</span><!--QuoteEBegin-->Мне стыдно за твои комментарии к моим статьям
[snapback]68270" rel="nofollow" target="_blank[/snapback]​
[/quote]Тогда сделай так, чтобы не было повода для появления комментариев :) Почитай гайдлайны для разработчиков Class Libraries, Шаблоны GOF, "Рефакторинг" Фаулера, Code Complete, а не очередной учебник по C#.

<!--QuoteBegin-NikSoft+6:06:2007, 09:13 -->
<span class="vbquote">(NikSoft @ 6:06:2007, 09:13 )</span><!--QuoteEBegin-->Почему же?
Найдется программист который посчитает эту книгу полезной для себя
[snapback]68270" rel="nofollow" target="_blank[/snapback]​
[/quote]
Потому что предложить 20 книг, без конкретных комментариев и без рейтинга - это тоже самое, что вообще ничего не предложить.
 
N

NikSoft

Тогда сделай так, чтобы не было повода для появления комментариев
Число ссылок на мои статьи говорят лучше всех твоих комментариев
Посмотри мой профиль
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!