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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Reverent, 5 июн 2007.

  1. Reverent

    Reverent Гость

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

    NikSoft Гость

    Для: Reverent
    DTD, XDR, XSD неодходимы для валидации XML документа
     
  3. Natascha

    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
     
  4. NikSoft

    NikSoft Гость

    Для: Natascha
    Не только.
    Xml находит широкое применение в .NET приложениях, в MS Office(внутренняя структура документов
    представлена в виде Xml) и так далее.
     
  5. Natascha

    Natascha Гость

    i tak dalee.....

    Chto znachit
    ?
     
  6. Natascha

    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 ? :)
     
  7. Pasha

    Pasha Гость

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

    NikSoft Гость

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

    NikSoft Гость

    Для: Natascha
    Подробнее о XML можно узнать здесь
    http://msdn2.microsoft.com/en-us/library/aa468558.aspx
    ,а также из отличной книги Дино Еспозито
    Applied XML Programming for Microsoft .NET
    ISBN 0-7356-1801-1
     
  10. Pasha

    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, куда ты дел мой минус за кучу книг без линков?
     
  11. etc

    etc Гость

  12. Pasha

    Pasha Гость

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

    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]
    :)
     
  14. Pasha

    Pasha Гость

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

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

    NikSoft Гость

    Открой любую книгу по XML и найди, где валидация XML документа происходит дважды.

    Верно говорит f7: "Стыдно, очень стыдно".
     
  16. Reverent

    Reverent Гость

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

    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. И стыдно при этом писать статьи по темам, которые не понимаешь. А еще стыдно снижать другим репутацию в ответ, а потом просить модераторов снять с себя минусы.
     
  18. NikSoft

    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 схема.

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

    Мне стыдно за твои комментарии к моим статьям
     
  19. Pasha

    Pasha Гость

    Для: Reverent
    Конкретный пример:
    Есть две программы A и B.
    B умеет обрабатывать данные о некой стране, примерно в таком виде:
    Код (Text):
    <country>
    <name>Название страны, строка</name>
    <population>Население, decimal</population>
    </country>
    И вот создатели B хотят следующего:
    1. Как-то описать ожидаемый формат, т.е. XML, корневой элемент country, в нем элементы name и population таких-то типов.
    2. Иметь возможность легко проверить валидность пришедшего xml, чтобы определить, есть ли в нем корневой элемент корневой элемент country, в нем элементы name и population таких-то типов. В случае невалидности точно определить, что именно в документе "не так".
    И вот они пишут мегасхему, которой проверяют все входящие документы.
    Код (Text):
    <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 книг, без конкретных комментариев и без рейтинга - это тоже самое, что вообще ничего не предложить.
     
  20. NikSoft

    NikSoft Гость

    Число ссылок на мои статьи говорят лучше всех твоих комментариев
    Посмотри мой профиль
     
Загрузка...

Поделиться этой страницей