Реферат: Трансформация XML документов

Министерство образования Российской Федерации

Саратовский государственный университет

Имени Н.Г. Чернышевского

Кафедра мат моделирования 

процессов и систем управления

<img src="/cache/referats/14763/image001.gif" v:shapes="_x0000_s1028">ТрансформацияXMLдокументов                                                                                

Наименование курсовой работы

___________________________________________________________________________

прописными буквами

КУРСОВАЯ РАБОТА

Студента        4         курса механико-математическогофакультета

 

_____________________ФрооловаНиколая Васильевича___________________

Фамилия, имя отчество

 

Научный руководитель

Доцент,к.ф.м.н.                                                              Ковалев А.Д.

 Должность, учстепень                                подпись, дата                                         инициалы, фамилия

Зав.Кафедрой

Доцент,к.ф.м.н.                                                        Мозжилкин В.В.

                                                                        подпись, дата                                 

САРАТОВ 2003

Саратовский государственный университет

Имени Н.Г. Чернышевского

УТВЕРЖДЕНО

На заседании кафедры мат моделирования

процессов и систем управления

протокол от              г

ЗАДАНИЕ

НА КУСОВУЮ РАБОТУ

Поспециальности                                                   010200______________                        

                                                                                                                               Шифр

Тема___________ТрансформацияXMLдокументов________________                                                 

Наименование курсовой работы

__________________________________________________

прописными буквами

Студента        4         курса механико-математическогофакультета

 

_____________________ФрооловаНиколая Васильевича___________________

Фамилия, имя отчество

 

Переченьвопросов, подлежащих разработке в курсовой работе:

     1.    МоделированиеXML-документов

    2.    Структура XML-документа

     3.    DocumentsTypeDefinitions(DTD)

     4.    Схемы данных

Датавыдачи             ____________________________________________________ 

                                                                                     Число, месяц

Сроквыполнения             ______________________________________________

                                                                                     Число, месяц

Преподаватель

Доцент,к.ф.м.н.                                                               Ковалев А.Д.

 Должность, учстепень                                подпись, дата                                         инициалы, фамилия

Содержание

1.    Введение

2.    СтруктураXML-документа

    3.    Моделирование XML-документов

     4.   DocumentsTypeDefinitions (DTD)

     5.   Схемы данных

     6.   Иллюстрационный пример

1.<span Times New Roman"">    

Введение.

     За недолгое время своего официальногосуществования язык XML привлек к себе уже достаточно много внимания со стороныразработчиков и пользователей Интернет. Сегодня количество приверженцев этойновой технологии возрастает очень стремительно. Несмотря на то, что XML оченьмолод (международная организация W3C утвердила спецификацию "Extensible Markup Language(XML) 1.0" в начале февраля 1998 г) иотдельные компоненты этого языка находятся еще в стадии доработки, уже сегодняпоявляются новые языки, созданные на основе XML, возникают многочисленныеWeb-сервера, использующие эту технологию для организации хранящейся на нихинформации.

     Когда осенью1991 года Интернет впервые услышал о новой технологии, под названием WWW,почти никто не мог представить себе, что завоевания ее окажутся настолькоглобальными. Сегодня для многих пользователей слово Интернет прочно ассоциируется с WWW и с устспециалистов не сходит тема будущего информационных систем и влияния на этобудущее всемирной сетевой паутины.

      ПопулярностьWorld Wide Web и неотъемлемой ее части, HTML, безусловно, сталапричиной повышенного внимания к системам гипертекстовой разметки документов.Хотя понятие гипертекста было введено В.Бушем еще в 1945 году и, начиная с 60-хгодов стали появляться первые приложения, использующие гипертекстовые данные,всплеск активности вокруг этой технологии начался лишь тогда, когда возниклареальная необходимость в механизме объединения множества информационныхресурсов, обеспечения возможности создания, просмотра нелинейного текста. Ипримером реализации этого механизма послужила паутина WWW.

      Языкразметки документов — это набор специальных инструкций, называемых тэгами,предназначенных для формирования в документах какой-либо структуры иопределения отношений между различными элементами этой структуры. Тэги языка,или, как их иногда называют, управляющие дескрипторы, в таких документахвыделяются относительно основного содержимого документа и служат в качествеинструкций для программы, производящей показ содержимого документа на сторонеклиента. В самых первых системах для обозначения этих команд использовалисьсимволы “<” и “>”, внутри которых помещались названия инструкций и ихпараметры. Сейчас такой способ обозначения тэгов является стандартным.

      Использованиегипертекстовой разбивки текстового документа в современных информационныхсистемах во многом связано с тем, что гипертекст позволяет создавать механизмнелинейного просмотра информации. В таких системах данные представляются не ввиде непрерывного потока текстовой информации, а набором взаимосвязанныхкомпонентов, переход по которым осуществляется при помощи гиперссылок.

      Самыйпопулярный на сегодняшний день язык гипертекстовой разметки – HTML, был созданспециально для организации информации, распределенной в сети Интернет, иявляется одной из ключевых составляющих технологии WWW. С использованиемгипертекстовой модели документа способ представления разнообразныхинформационных ресурсов в сети стал более упорядочен, а пользователи получилиудобный механизм поиска и просмотра нужной информации.

      HTMLявляется упрощенной версией стандартного общего языка разметки — SGML (Standart Generalised Markup Language), который былутвержден ISO в качестве стандарта еще в 80-х годах. Этот язык предназначен длясоздания других языков разметки, он определяет допустимый набор тэгов, ихатрибуты и внутреннюю структуру документа. Контроль над правильностьюиспользования дескрипторов осуществляется при помощи специального набораправил, называемых DTD-описаниями, которые используются программой клиента приразборе документа. Для каждого класса документов определяется свой наборправил, описывающих грамматику соответствующего языка разметки. С помощью SGMLможно описывать структурированные данные, организовывать информацию,содержащуюся в документах, представлять эту информацию в некоторомстандартизованном формате. Но в виду некоторой своей сложности, SGMLиспользовался, в основном, для описания синтаксиса других языков(наиболееизвестным из которых является HTML), и немногие приложения работали с SGML-документами напрямую.

      Гораздо более простой и удобный, чемSGML, язык HTML позволяет определять оформление элементов документа и имеетнекий ограниченный набор инструкций — тэгов, при помощи которых осуществляетсяпроцесс разметки. Инструкции HTML, в первую очередь, предназначены дляуправления процессом вывода содержимого документа на экране программы-клиента иопределяют этим самым способ представления документа, но не его структуру. Вкачестве элемента гипертекстовой базы данных, описываемой HTML, используетсятекстовый файл, который может легко передаваться по сети с использованиемпротокола HTTP. Эта особенность, а также то, что HTML является открытымстандартом и огромное количество пользователей имеет возможность применятьвозможности этого языка для оформления своих документов, безусловно, повлиялина рост популярности HTML и сделали его сегодня главным механизмомпредставления информации в Web.

      Однако современные приложения нуждаютсяне только в языке представления данных на экране клиента, но и в механизме,позволяющем определять структуру документа, описывать содержащиеся в немэлементы. HTML обладает несложным набором команд и вполне успешно справляется сзадачей описания текстовой информации и отображением ее на экране программыпросмотра — браузера. Однако сами отображаемые данные никак не связаны с темитэгами, которые используются для форматирования, поэтому упрограмм-анализаторов нет возможности использовать тэги HTML для поиска нужныхнам фрагментов документа. Т.е. встретив, например, такое описание

<fontcolor="red">rose</font>

программапросмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов<font></font>и, вероятно, отобразит его правильно, но ей абсолютно безразлично, в какомместе документа встретился этот тэг, в какие другие тэги заключен текущийфрагмент, существуют ли вложенные в него фрагменты, правильно ли построеныотношения между объектами. Такое «безразличие» к структуре документаприводит к тому, что поиск или анализ информации внутри него ничем не будетотличаться от работы со сплошным, не разбитым на элементы текстовым файлом. Аэто, как известно, не самый эффективный способ работы с информацией.

      Другим существенным недостатком HTMLможно назвать ограниченность набора его тэгов. DTD-правила для HTML определяютфиксированный набор дескрипторов и поэтому у разработчика нет возможностивводить собственные, специальные тэги. Хотя время от времени появляются новыерасширения языка, но долгий путь их стандартизации, сопровождаемый постояннымиразногласиями между основными производителями браузеров делают практическиневозможной быструю адаптацию языка, его использование для отображенияспециализированной информации(например, мультимедийной, математических,химических формул и т.д.).

      Подводя итог всему сказанному, можноутверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям,предъявляемым современными разработчиками к языкам подобного рода. И ему насмену был предложен новый язык гипертекстовой разметки, мощный, гибкий, и,одновременно с этим, удобный язык XML.

      XML(Extensible MarkupLanguage) — это язык разметки, описывающийцелый класс объектов данных, называемых XML-документами. Этот язык используетсяв качестве средства для описания грамматики других языков и контроля надправильностью составления документов. Т.е. сам по себе XML не содержит никакихтэгов, предназначенных для разметки, он просто определяет порядок их создания.Таким образом, если, например, мы считаем, что для обозначения элемента rose в документе необходимо использовать тэг <flower>; то XML позволяет свободно использоватьопределяемый нами тэг и мы можем включать в документ фрагменты, подобныеследующему:

<flower>rose</flower>

Набор тэговможет быть легко расширен. Если, предположим, мы хотим также указать, чтоописание цветка должно по смыслу идти внутри описания оранжереи, в которой онцветет, то просто задаем новые тэги и выбираем порядок их следования: <conservatory>

 <flower>rose</flower>

</conservatory>

Процесссоздания XML документа очень прост и требует лишь базовых знаний HTML ипонимания тех задач, которые необходимо выполнить, используя XML в качествеязыка разметки. Таким образом, у разработчиков появляется уникальнаявозможность определять собственные команды, позволяющие им наиболее эффективноопределять данные, содержащиеся в документе. Автор документа создает егоструктуру, строит необходимые связи между элементами, используя те команды,которые удовлетворяют его требованиям, и добивается такого типа разметки,которое необходимо ему для выполнения операций просмотра, поиска, анализадокумента.

       Еще одним из очевидных достоинств XML являетсявозможность использования его в качестве универсального языка запросов кхранилищам информации. Сегодня в W3C находится на рассмотрении рабочий вариантстандарта XML-QL(или XQL), который, возможно, в будущем составит серьезнуюконкуренцию SQL. Кроме того, XML-документы могут выступать в качествеуникального способа хранения данных, который включает в себя одновременносредства для разбора информации и представления ее на стороне клиента. В этойобласти одним из перспективных направлений является интеграция Java и XML — технологий, позволяющая использовать мощьобеих технологий при построении машинно-независимых приложений, использующих,кроме того, универсальный формат данных при обмене информации.

      XML позволяет также осуществлять контрольнад корректностью данных, хранящихся в документах, производить проверкииерархических соотношений внутри документа и устанавливать единый стандарт наструктуру документов, содержимым которых могут быть самые различные данные. Этоозначает, что его можно использовать при построении сложных информационныхсистем, в которых очень важным является вопрос обмена информацией междуразличными приложениями, работающими в одной системе. Создавая структурумеханизма обмена информации в самом начале работы над проектом, менеджер можетизбавить себя в будущем от многих проблем, связанных с несовместимостьюиспользуемых различными компонентами системы форматов данных.

      Также одним из достоинств XML являетсято, что программы-обработчики XML-документов не сложны и уже сегодня появилисьи свободно распространяются всевозможные программные продукты, предназначенныедля работы с XML-документами. XML поддерживается в IE5. Было заявлено о его поддержкев последующих версиях Netscape Communicator,СУБД Oracle, DB-2, в приложениях MS-Office.Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XMLстанет основным языком обмена информации для информационных систем, заменив собой,тем самым, HTML. На основе XML уже сегодня созданы такие известныеспециализированные языки разметки, как SMIL, CDF, MathML,XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C,постоянно пополняется.

2.   Структура XML-документа

      Хотя XML, сильно отличается по своимвозможностям и предназначению от языка гипертекстовой разметки, оба эти языкаявляются подмножествами SGML, и, следовательно, наследуют его базовые принципы.

ПростейшийXML-документможетвыглядетьтак:

<?xmlversion=«1.0»?>

<list_of_items>

<first/>Первый

Второй<sub_item>подпункт1</sub_item>

<itemid=«3»>Третий

<itemid=«4»><last/>Последний

</list_of_items>

Этот документ очень похож на обычную HTML-страницу. Также, как и в HTML, инструкции, заключенные в угловые скобки называются тэгами ислужат для разметки основного текста документа. В XML существуют открывающие,закрывающие и пустые тэги (в HTML понятие пустого тэга тоже существует, носпециального его обозначения не требуется).

      Телодокумента XML состоит из элементов разметки(markup) инепосредственно содержимого документа — данных(content). XML — тэги предназначены для определения элементов документа, их атрибутов и другихконструкций языка.

      ЛюбойXML-документ должен всегда начинаться с инструкции <?xml?>,внутри которой также можно задавать номер версии языка, номер кодовой страницыи другие параметры, необходимые программе-анализатору в процессе разборадокумента.

       В общем случае XML-документыдолжны удовлетворять следующим требованиям:

В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация; Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь закрывающий тэг; В XML учитывается регистр символов ; Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки; Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов; Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).

      Если XML-документ не нарушает приведенныеправила, то он называется формально-правильными все анализаторы, предназначенные для разбора XML- документов, смогутработать с ним корректно. Однако кроме проверки на формальное соответствиеграмматике языка, в документе могут присутствовать средства контроля надсодержанием документа, за соблюдением правил, определяющих необходимыесоотношений между элементами и формирующих структуру документа. Для того, чтобыобеспечить проверку корректности XML- документов, необходимо использоватьанализаторы, производящие такую проверку и называемые верифицирующими. Насегодняшний день существует два способа контроля правильности XML-документа: DTD — определения(DocumentType Definition) и схемы данных(SemanticSchema). В отличии от SGML, определениеDTD-правил в XML не является необходимостью.

Конструкцииязыка

СодержимоеXML-документа представляет собой набор элементов, секций CDATA, директиванализатора, комментариев, спецсимволов, текстовых данных.

Элементыданных

Элемент — это структурная единицаXML-документа. Заключая слово rose в в тэги <flower> </flower>, мы определяем непустой элемент, называемый <flower>,содержимым которого является rose. В общем случае вкачестве содержимого элементов могут выступать как просто какой-то текст, так идругие, вложенные, элементы документа, секции CDATA, инструкции по обработке,комментарии, — т.е. практически любые части XML-документа. Любой непустойэлемент должен состоять из начального, конечного тэгов и данных, между нимизаключенных. Например, следующие фрагменты будут являться элементами:

<flower>rose</flower>

<city>Saratov</city>

Наборомвсех элементов, содержащихся в документе, задается его структура, и определяются все иерархическое соотношения. Плоскаямодель данных превращается с использованием элементов в сложную иерархическуюсистему с множеством возможных связей между элементами. Производя в последствиипоиск в этом документе, программа клиента будет опираться на информацию, заложеннуюв его структуру — используя элементы документа. Поиск при этом, естественно,будет гораздо более эффективен, чем нахождение нужной последовательности повсему документу. В XML документе, как правило, определяется хотя бы одинэлемент, называемый корневым и с него программы-анализаторы начинают просмотрдокумента. В некоторых случаях тэги могут изменять и уточнять семантику тех илииных фрагментов документа, по разному определяя одну и ту же информацию и темсамым предоставляя приложению-анализатору этого документа сведения о контекстеиспользования описываемых данных. Например, прочитав фрагмент <city>Holliwood</city> мы можем догадаться, что речь в этой частидокумента идет о городе, а вот во фрагменте <restaurant>Holliwood</restaurant> — о забегаловке. В случае, если элемент не имеет содержимого, т.е. нет данных,которые он должен определять, он называется пустым. Примером пустых элементов вHTML могут служить такие тэги HTML, как <br>,<hr>, <img>.

Комментарии

      Комментариями является любая областьданных, заключенная между последовательностями символов Комментарии пропускаются анализатором и поэтому при разборе структуры документав качестве значащей информации не рассматриваются.

Атрибуты

      Если при определении элементов необходимозадать какие-либо параметры, уточняющие его характеристики, то имеетсявозможность использовать атрибуты элемента. Атрибут — это пара«название» = «значение», которую надо задавать приопределении элемента в начальном тэге. Пример:

<color RGB=«true»>#ff08ff

<color RGB=«false»>white

или

Ivan Petrov

Специальныесимволы

       Для того, чтобы включить в документсимвол, используемый для определения каких-либо конструкций языка (например,символ угловой скобки) и не вызвать при этом ошибок в процессе разбора такогодокумента, нужно использовать его специальный символьный либо числовойидентификатор. Например, <, > " или$(десятичная форма записи),  (шестнадцатеричная) и т.д.Строковые обозначения спецсимволов могут определяться в XML документе припомощи компонентов (entity).

Директивыанализатора

      Инструкции,предназначенные для анализаторов языка, описываются в XML документе при помощиспециальных тэгов — <? и ?>;. Программа клиента используетэти инструкции для управления процессом разбора документа. Наиболее частоинструкции используются при определении типа документа (например, <? Xml version=”1.0”?>) илисоздании пространства имен.

CDATA

      Чтобы задать область документа,которую при разборе анализатор будет рассматривать как простой текст, игнорируялюбые инструкции и специальные символы, но, в отличии от комментариев, иметьвозможность использовать их в приложении, необходимо использовать тэги<![CDATA] и ]]>. Внутри этого блока можно помещать любую информацию,которая может понадобится программе- клиенту для выполнения каких-либо действий(в область CDATA, можно помещать, например, инструкции JavaScript).Естественно, надо следить за тем, чтобы в области, ограниченной этими тэгами небыло последовательности символов ]].

3. Моделирование XML-документов

      Одним из наиболее сильных свойств XML является возможностьсоздавать собственные языки разметки, в которых определяются элементы иатрибуты, наилучшим образом соответствующие инкапсулируемой информации, иснимаются ограничения, вызываемые малопригодным языком общего назначения.Однако пока нельзя определить язык формальным образом, ограничить словарьэлементов и атрибутов поддающимся управлению множеством и управлять грамматикойэлементов. Процесс формального определения языка в XML называется моделированием документов. На сегодняшний день существует дваспособа моделирования документов: определениятипа документа (DTD), которые описывают структурудокумента с помощью декларативных правил, и XMLSchema, описывающую структурудокумента на примере с помощью шаблонов элементов.

     Модель определяет документы, которые можносоздать с помощью языка; или, в рамках терминологии XML, модель документа устанавливает,какие документы согласуются (conform) с языком. Модель документа отвечает на такиевопросы, как «Может ли быть заголовок у данного элемента?» или «Должна ли бытьуказана цена для этого элемента?» Модель является документом особого рода,написанным по правилам синтаксиса, предназначенного для описания языков XML, и явно описываетграмматику и словарь отдельного языка разметки. Иногда язык, который онаописывает, называют типом документа (documenttype) или приложением XML (XMLapplication). Спомощью такой модели можно определить, согласуется ли некоторый документ XML с данным типом документа.

Фактическинаписанные кем-то документы, называемые экземплярамидокумента (documentinstances), могут согласоваться с языком, описанным в моделидокумента или не согласоваться. Согласующиеся документы называют действительными(valid)в контексте языка; другие документы называют недействительными (invalid).

     Модель документа может быть лишним грузом,если надо сопровождать лишь один-два  документа, но если документов много, атребования к качеству высоки, ее создание может окупиться. Вот некоторыеситуации, в которых модель документа в состоянии облегчить жизнь:

    ● Документы создаются людьми иявляются данными для компьютерной программы. Программы особенно привередливы вотношении форматов данных, потому что трудно создавать программы, способныесправляться с отклонениями от формата. Ограничив применяемый шаблонпредсказуемым форматом, намного легче писать программы, а вероятность ошибокуменьшается. Сравнение каждого экземпляра документа с моделью гарантирует, чтовы не столкнетесь с проблемой несоответствия.

    ● В документе обязательно должны бытьполя. Например, в бланке заказа изделия необходимо указать почтовый адрес,чтобы знать, куда отправлять посылку. Применение модели документа обеспечиваетприсутствие всех необходимых  полей.

    ● Вы запрашиваете документы у людей,не знакомых с используемым приложением XML. Так как модель сама является документом, она может бытьоткрытым ресурсом, доступным для загрузки, ссылок и передачи. Модель документаможет выступать в качестве данных в средах создания структурированныхдокументов, например, в редакторе  XML. В такой программередактор может автоматически вставлять необходимые поля и предлагатьразработчику документа списки допустимых групп элементов.

    ● Разработчику нужна надежная структурадля развивающегося языка или семейства языков. Модель документа предоставляетпростой способ создания стандарта, такого, например, как HTMLVersion 4.0. Отслеживаниеновых версий языка жизненно важно для программ XML, поскольку старые программы могутоказаться несовместимыми с более новыми версиями языка. Модели документов можнообъединить для создания составных языков. Например, DocBook используетмодель таблиц CALS, ане пытается определить свою.

     Конечно, могут быть основания и неиспользовать модель документов. Сопровождение модели может оказаться неудобным,особенно в начале, когда язык подвергается тестированию и дальнейшейразработке. Она может замедлить обработку, например, если браузеры XML должны загружать модельдокумента из сети. Наконец, наличие авторитарной модели, указывающей, какиеэлементы можно использовать, а какие – нет, может просто сломать стиль работы.А, кроме того, нужно потратить силы на то, чтобы разработать модель или найтиготовую, отвечающую потребностям. В конечном счете, автор сам решает,использовать модель документа или нет: XML спроектирован так, что позволяет работать в любом случае.

    Некоторые модели документов (а именно, DTD) не очень хорошо работаютс пространствами имен(пространства имен являются способом группировки элементовиз различных источников, например, встраивания уравнений MathML внутрьдокументов HTML). Этосоздает проблемы, если DTDстремятся ограничить применяемые автором элементы предсказуемым конечныммножеством. В  настоящий моментисчерпывающего решения этой дилеммы нет. Невозможно предвидеть все видыпространств имен и объявить их элементы и атрибуты внутри своего DTD – их может бытьбесконечное число.

4.    Documents Type Definitions (DTD)

    В XML-документах DTD определяетнабор действительных элементов, идентифицирует элементы, которые могутнаходиться в других элементах, и определяет действительные атрибуты для каждогоиз них. Синтаксис DTD весьма своеобразен и от автора-разработчика требуютсядополнительные усилия при создании таких документов(сложность DTD являетсяодной из причин того, что использование SGML, требующего определение DTD длялюбого документа, не получило столь широкого распространения как, например,HTML). Как уже отмечалось, в XML использовать DTD не обязательно — документы,созданные без этих правил, будут правильно обрабатыватьсяпрограммой-анализатором, если они удовлетворяют основным требованиям синтаксисаXML. Однако контроль над типами элементов и корректностью отношений между нимив этом случае будет полностью возлагаться на автора документа. До тех пор, покаграмматика нашего нового языка не описана, его может использовать только егоавтор, и для этого применять специально разработанное программное обеспечение,а не универсальные программы-анализаторы. ВDTD для XML используются следующие типы правил: правила для элементов и ихатрибутов, описаниякатегорий(макроопределений), описание форматов бинарных данных. Все ониописывают основные конструкции языка — элементы, атрибуты, символьные константывнешние файлы бинарных данных. Для того, чтобы использовать DTD в документе,можно или описать его во внешнем файле и при описании DTD просто указать ссылкуна этот файл или же непосредственно внутри самого документа выделить область, вкоторой определить нужные правила. В первом случае в документе указывается имяфайла, содержащего DTD-описания:

<?xml version=«1.0»standalone=«yes» ?>

<! DOCTYPE team SYSTEM "team.dtd">

...

Внутри же документа DTD- декларации включаютсяследующим образом:

<! DOCTYPE team [

<! ELEMENT team (coach, player, assistant)>

]>

...

В том случае, если используютсяодновременно внутренние и внешние описания, то программой-анализатором будутсначала рассматриваться внутренние, т.е. их приоритет выше. При проверкедокумента XML-процессор в первую очередь ищет DTD внутри документа. Еслиправила внутри документа не определены и не задан атрибут standalone ="yes", то программа загрузит указанный внешний файл и правила, находящиеся в нем,будут считаны оттуда. Если же атрибут standaloneимеет значение "yes",то использование внешних DTD описаний будет запрещено.

Определение элемента

Элемент в DTD определяется с помощьюдескриптора !ELEMENT, в котором указывается название элемента иструктура его содержимого. Например, для элемента <coach> можно определить следующееправило:

<!ELEMENTcoach PCDATA>

Ключевое слово ELEMENT указывает, что данной инструкцией будет описываться элементXML. Внутри этой инструкции задается название элемента(coach) и тип его содержимого. Вопределении элемента мы указываем сначала название элемента(coach), а затем его модель содержимого — определяем, какие другие элементы или типы данных могут встречаться внутри него.В данном случае содержимое элемента name будет определяться при помощи специального маркера PCDATA(что означает parseable character data — любая информация, с которой может работатьпрограмма-анализатор). Существует еще две инструкции, определяющие типсодержимого: EMPTY,ANY. Перваяуказывает на то, что элемент должен быть пустым(например, <red/>), вторая — на то, что содержимое элементаспециально не описывается. Последовательность дочерних для текущего элементаобъектов задается в виде списка разделенных запятыми названий элементов. Приэтом для того, чтобы указать количество повторений включений этих элементовмогут использоваться символы +,*,?:

<!ELEMENT team(coach+, player*, assistant?)>

В этом примере указывается, что внутриэлемента <team>должны быть определены элементы coach,player и assistant, причем элемент title является обязательным элементом и может встречатьсялишь однажды, элемент playerможет встречаться несколько раз, а элемент assistantявляется опциональным, т.е.может отсутствовать. В том случае, если существует несколько возможныхвариантов содержимого определяемого элемента, их следует разделять при помощисимвола "|":

<!ELEMENTflower (PCDATA | title)*>

Символ * в этом примере указывает

еще рефераты
Еще работы по программированию, базе данных