Системы управления знаниями стр.55

Конкретное описание на языке DTD определяет ограничения на структуру XML-документа, для того чтобы можно было проверить его правильность в соответствии с этим конкретным описанием. DTD описывает структуру класса XML-документов. Соглашение по использованию DTD-описаний между различными сторонами позволяет обмениваться документами, которые соответствуют этому DTD. Однако отметим, что только договоренности об особенностях DTD недостаточно для понимания всех правильных XML-документов, так как описывается только структура (разрешенные тэги), но не смысл этих тэгов. Простой DTD, описывающий класс XML-документов, к которому принадлежит документ, показанный в листинге 5.3, приведен в листинге 5.5.

Листинг 5.5

DTD для примера в листинге 5.3

<!ELEMENT сотрудник (имя, должность, датаРожде-ния)>

<!ELEMENT фио (#PCDATA)>

<!ELEMENT должность (#PCDATA)>

<!ELEMENT датаРождения (#PCDATA)>

5.2.2. Язык XML Schema

Точно так же, как и DTD, XML Schema [W3C, «XML Schema Part 0: Primer Second Edition»] используется в качестве языка для описания классов XML-документов. Точно так же, как и DTD, структура XML-документа предписывается схемой. Основное различие между DTD и XML Schema заключается в том, что XML Schema имеет XML-синтаксис, широкий набор (простых) типов данных [W3C, «XML Schema Part 2: Datatypes Second Edition»] и возможность формировать сложные типы данных. Пример XML Schema схемы для класса XML-документов, к которым принадлежит документ, показанный в листинге 5.3, приведен в листинге 5.6.

Листинг 5.6

XML Schema для примера «сотрудник»

<xs:schema

xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="сотрудник">

<xs:complexType>

<xs:sequence>

<xs:element    name="имя"    type="xs:string"/>

<xs:element    name="должность"    type="xs:string"/>

<xs:element    name="датаРождения"    type="xs:date"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Из приведенного примера видно, что определение XML Schema является значительно более многословным, чем DTD для одного и того же класса документов. Если DTD требуется только 5 строк для задания структуры XML-документа, то XML Schema требуется 12 строк. Это происходит потому, что каждый документ с XML Schema также является XML-документом и XML имеет очень многословный синтаксис. Угловые скобки и необходимость в закрывающихся тэгах занимает в записях основное пространство. Далее, способ кодирования атрибутов, при нятый в XML, также очень многословный, так как каждый раз имя атрибута должно быть записано перед заданием его значения. Кроме этого, мы видим в документе, что кроме самих описаний XML-элементов имеется тэг «schema», который указывает, что это XML Schema, а не экземпляр XML-документа. Потребность в элементах «complexType» и «sequence» существует в связи с тем, что XML Schema обеспечивает намного более сложные описания структуры, чем DTD. Сложность языка схем XML Schema по сравнению с DTD и его выразительность являются связанными понятиями. Менее выразительный язык DTD является также менее сложным.

Атрибут «type» в листинге 5.6 обозначает тип данных, содержащихся в элементе. В примере показаны два типа данных, а именно xs:string и xs:date. Префикс xs: указывает, что используются XML Schema типы данных. Этот пример XML Schema уже более выразителен из-за ограничений типа данных xs:date на элемент «датаРождения», что требует дату, закодированную стандартным способом (‘yyyy-mm-dd’). Так как XML Schema также позволяет спецификацию многих типов ограничений, она была бы более подходящим кандидатом для языка онтологий, чем DTD. Основная проблема в том, что XML Schema описывает физическую структуру (синтаксис) XML-документа, а не смысл (семантику) данных.


⇐ назад к прежней странице | | перейти на следующую страницу ⇒

Читайте также:

Яркая жизнь с компьютерными программами

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

Помоги себе сам

Что может быть обыденней интернета в наши дни? Он стал незаменимой частью жизни всех нас. И это можно понять, ведь с его помощью люди работаю во всевозможных сферах деятельности, является очень эффективным. Но очень часто стоит вопрос о том, с помощью чего лучше всего добиваться лучших результатов и делать это более оперативно и с комфортом.

AlgoMusic M51 Galaxy - виртуальный инструмент на основе PD-синтеза

Виртуальный инструмент M51 Galaxy позволяет синтезировать "космические" звуки, обладает завораживающим звучанием. Обычно музыканты не очень жалуют инструменты, созданные с помощью SynthEdit. Однако M51, хоть и относится к их числу, действительно очень хорош. Секрет его звучания кроется в оригинальной архитектуре синтеза. На M51 Galaxy распространяется поговорка, что "все новое - это хорошо забытое старое". Идеи, заложенные в M51, уже были успешно реализованы в 80-х годах XX века.