в чём смысл dtd- и xsl-файлов в XML?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



в чём смысл dtd- и xsl-файлов в XML? Expand / Collapse
Автор
Сообщение
14.05.2007 9:54
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 06.12.2007 15:50
Сообщ.: 63, Visits: 589

в чём смысл dtd- и xsd-файлов в XML?

Извините чайника, но вопрос примитивен и в лоб

Если в контроле формата xml-файлов? то это не совсем так

Например, файл books.dtd описывает в частности тег price

                                                 books.dtd

<!ELEMENT bookstore (book)*>

<!ELEMENT book (title,author*,price)>

<!ATTLIST book genre CDATA #REQUIRED>

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (name | (first-name,last-name))>

<!ELEMENT price (#PCDATA)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT first-name (#PCDATA)>

<!ELEMENT last-name (#PCDATA)>

 

          Файл  books.xml cодержит ссылку на этот dtd

<?xml version="1.0" standalone="no"?>

<!DOCTYPE bookstore SYSTEM "books.dtd">

<!--This file represents another fragment of a book store inventory database-->

<bookstore>

  <book genre="autobiography" publicationdate="1979" ISBN="0-7356-0562-9">

    <title>The Autobiography of Mark Twain</title>

    <Author>

      <first-name>Mark</first-name>

      <last-name>Twain</last-name>

    </Author>

    <pric>7.99</pric>

    <pri>aaa</pri>

  </book>

  <book genre="autobiography" publicationdate="1998" ISBN="0-7876-0823-10">

    <title>Programming C++</title>

    <Author>

      <first-name>William</first-name>

      <last-name>Richi</last-name>

    </Author>

    <price>110.0</price>

  </book>

</bookstore>

 

Обратите внимание в 11 строчке books.xml тег price заменен на price, кроме того добавлен

Тег pri не описанный в dtd.

Тем не менее при просмотре books.xml (при двойном щелчке), последний отображается без ошибок

 Аналогичная ситуация при замене файлов dtd на xsd (схемы).

Сообщ. #913202
14.05.2007 10:20
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
DTD (Document Type Definition) описывает структуру XML документа, теги и атрибуты, а также порядок их применения. MSIE игнорирует наличие DTD и если в XML нет синтаксических ошибок, то он его отобразит. DTD считается устаревшим мехнизмом и вместо него лучше использовать XML Schema.

XSL это файл описывающий преобразование XML в другой вид или формат.

Сообщ. #913203
14.05.2007 11:31
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 06.12.2007 15:50
Сообщ.: 63, Visits: 589
Извините, неточно написал . Имел в виду файлы xsd (схемы) но конечно же не xsl (формат отображения)
Сообщ. #913214
14.05.2007 11:37
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 06.12.2007 15:50
Сообщ.: 63, Visits: 589
Но тогда еще практический вопрос.

1)Я работаю с потоком стандартных xml-документов, сделанных на основе единого dtd. Как тогда контролировать валидность если способ прямого отображения в IExplorer - не подходит.

2)если даже можно контролировать как-то валидность то

чем всё же технология работы с данными основанная на XML -данных будет лучше аналогичной технологии в СУБД ?

(например, закачки данных в БД из дампов или плоских файлов, выгруженных с помощью экспорта из других СУБД)

Сообщ. #913216
14.05.2007 12:44
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Проверять соответствует ли документ DTD или схеме можно програмным путем. Например, парсер MSXML имеет свойство validateOnParse. Если ему присвоить true, то при наличии DTD будет выполняться проверка на соответствие. Насколько мне известно работать с XML Schema парсер MSXML не умеет. Хотя может его последние версии (MSXML6) и научились этому. Точно умеет работать и с DTD и с XML Schema парсер XML из состава .NET Framework.

eugira (14.05.2007)
чем всё же технология работы с данными основанная на XML -данных будет лучше аналогичной технологии в СУБД?

А с какой стати они должна быть лучше/хуже если они решают совершенно разные задачи? XML нужен как универсальный формат для межпрограмного/межмашинного обмена данными.

Сообщ. #913221
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 1:37