
Xml правильно построен, если он :
Содержит допустимые данные.
Соответствует определенному набору правил.
Он удобен для чтения.
Схема — второй базовый компонент XML-системы.
Другим важным компонентом системы XML является схема, представляющая собой набор правил, устанавливающих пределы возможного и невозможного в различных частях файла данных XML.
Вы используете схему для подтверждения данных. Например, схема помогает убедиться в том, что вы не введете текст в поле, где должны находиться телефонные номера.
Схемы задают правила, которые гарантируют правильность данных.
Пусть вас не пугает это слово. Схема — всего лишь другое название структуры или организации. В XML схема содержит правила, определяющие, что может, а чего не может быть в разных частях файла данных XML.
Важно различать правила, содержащиеся в схеме, и правила построения XML. Правила построения XML диктуют, как разработчик или ИТ-подразделение должны создавать структуру данных, включая соответствующие схемы. Схема — часть XML и, следовательно, она также должна отвечать всем правилам построения XML.
С другой стороны, правила в схеме диктуют, чему разрешено, а чему не разрешено быть в данной структуре данных. Например, схема может задавать, что определенный тег должен содержать только даты, а другой может содержать только цены. Без схемы поле даты в правильно построенном XML могло бы содержать текст, а в поле цены можно было бы ввести дату. Данные XML были бы подобны грамматически правильному, но лишенному смысла предложению.
Схема может содержаться в файле данных или быть отдельным файлом, связанным с файлом данных. В любом случае, когда файл данных используется совместно со схемой, этот файл должен соответствовать своей схеме. При создании отдельного файла схемы этот файл получает расширение .xsd. Файлы данных имеют расширение .xml.
Части XML-схемы
Объявления
Необязательное объявление последовательности (определяет порядок тегов в файле данных)
Тип данных
Схемы могут быть чрезвычайно сложными, и обычно их создают специалисты после выяснения типов данных, в которых нуждаются пользователи, а также порядка работы XML-системы. Понимание структуры схемы поможет пользователю в формировании задания на ее разработку. На иллюстрации показана схема, задающая правила для набора тегов <CAT> ... </CAT> , описываемых в предыдущем уроке.
Эта схема содержит набор объявлений. Объявления определяют типы данных, которые может содержать каждый тег. В данном случае объявление sequence (последовательность) также устанавливает порядок тегов, которые располагаются внутри корневого элемента <CAT>. В любом файле данных, который использует эту схему, теги должны располагаться в данном порядке. Далее объявления type определяют тип данных, который может содержать каждый тег в файле данных: строка символов (string), положительное целое число (positiveInteger) или выбор Да\Нет (boolean). Как и можно предположить, теги в файле данных не могут содержать данных, типы которых отличаются от объявленных в схеме. Именно этот механизм позволяет с помощью схемы контролировать правильность XML-данных.
(Вспомним, что в разделе «Составляющие файла данных XML» также шла речь об объявлениях. Одно из объявлений устанавливало, что управлять содержимым файла данных будет схема. Так что обе эти группы объявлений связаны логически и функционально.)
Так как же все-таки это проявляется в реальной жизни? Если в случае ветеринарной клиники нужно, чтобы файлы содержали дополнительные сведения относительно животных-пациентов, такие как их цвет или порода, ответственное лицо должно добавить XML-теги для этих данных. Добавление этих тегов повлечет также внесение изменений в схему файла. Если не изменить схему, новые теги будут рассматриваться как недопустимые, и система прекратит работу. Простые изменения могут быть внесены в схему очень быстро, но важно помнить, что при любом изменении схемы создается новое правило для данных.
Так как схему можно изменять по мере развития потребностей в вычислениях и данных, XML-файлы могут адаптироваться к новым ситуациям и требованиям без каких-либо радикальных перестроек. Как и теги, схема расширяема.
Схема задает правила построения XML.
Да
Нет
Схема содержит :
Стили.
Узлы.
Объявления
Все XML-системы должны храниться в XSD-файлах.
Да
Нет
Преобразование: третий базовый компонент любой XML-системы.
Третьим важным компонентом типичной системы XML является преобразование. Преобразование дает много разных способов использования одних и тех же данных. Данные XML, которые вы столь аккуратно отсортировали и упорядочили, теперь можно использовать в отчетах, базах данных, веб-страницах и большом количестве других приложений. Именно поэтому использование XML становится таким привлекательным.
Преобразования позволяют автоматизировать обмен данными.
Ранее уже упоминалось, что XML, кроме структурирования и проверки правильности данных, обеспечивает также мощные возможности их конвертации и реорганизации. Механизм выполнения этих процедур называется преобразованием языка расширяемых таблиц стилей (XSLT) или, если проще, преобразованием. (Поэтому файлы преобразований имеют расширение .xsl.)
Преобразование задает набор правил для преобразования данных, описанных одним набором тегов, в данные, описанные другим набором тегов.
Например, допустим коммерческий отдел хранит данные в рабочих книгах Excel, но бухгалтерии требуется, чтобы эта информация была импортировала в базу данных. Преобразование позволит записать данные из ячеек, предварительно выбранных в электронной таблице, в нужные поля базы данных.
Независимо от того, как должны использоваться данные, преобразование поможет в этом.
В зависимости от определенных в них шагов, преобразования действуют как процессоры данных. Например, данные XML могут быть записаны из хранилища в электронную таблицу или документ в сортированном или отфильтрованом виде.
Таким образом, можно, например, опубликовать информационный бюллетень, в котором будут перечислены регионы размещения новых деловых партнеров, но опущены их точные адреса. Либо использовать XML-данные инвентарного учета продуктов для создания веб-каталога, не показывая в нем цены поставщиков, или при построении отчета организации отсортировать продавцов по регионам или менеджерам.
Более того, преобразования могут управлять визуальным отображением данных. Например, посредством преобразования можно распечатать данные по продажам таким образом, чтобы они вроде бы исходили из электронной таблицы, даже если это не так, или наоборот.
Кроме создания веб-страниц, имеется возможность использовать преобразования для развертывания нескольких версий веб-узла. Все данные при этом будут храниться в одном месте, а набор преобразований обеспечит их правильное отображение в любых известных веб-обозревателях. Когда посетители заходят на веб-узел, система определит тип их обозревателя и направит их к соответствующей версии содержимого. Таким образом, появляется возможность прекратить наполнение и поддержку отдельного веб-содержимого для каждого типа обозревателя, что, безусловно, позволит сэкономить время и деньги.
А так как все больше компаний, школ и правительственных учреждений внедряет XML, разработчики программного обеспечения предоставляют наборы преобразований, которые работают с их программами. В будущем можно будет быстро найти и загрузить преобразования, которые либо сразу удовлетворят потребности пользователей, либо могут быть легко настроены под конкретные нужды. Это означает, что отдача от инвестиций в XML будет неуклонно расти.
Один набор тегов строит таблицу в веб-странице
Одно объявление переносит в таблицу XML-данные
В каждой ячейке таблицы отображается определенная часть данных
Подобно схемам, преобразования представляют собой XML-файлы, которые также должны удовлетворять правилам построения XML. Преобразования также могут быть чрезвычайно сложны, и написание их — дело специалистов. Опять же, однако, понимание основ преобразований поможет в достижении нужных результатов за счет правильного планирования и постановки задачи. На иллюстрации показана часть преобразования, которое записывает данные из файла <CAT>, обсуждаемого в предыдущих уроках, в таблицу веб-страницы.
В этом примере показан только один из способов написания преобразования. Преобразование, используемое для генерации из данных конкретного документа или диаграммы, содержало бы теги, специфичные для программы и требованиям отображения.
Для интересующихся: язык расширяемых таблиц стилей — это не язык, отдельный от XML, это — словарь XML. А преобразование — всего лишь еще один XML-документ.